php - 获取多个表的列名并插入到另一个表+ PHP MySQL

标签 php mysql select

我有这个代码:

$createFields="CREATE TABLE temp_field (fld text NOT NULL, tablename char(50) NOT NULL)";   
mysql_query($createFields);

$fields=array();

$campaign=mysql_query("SELECT campaignid FROM campaign ORDER BY campaignid");

while($row=mysql_fetch_array($campaign)){

    $table="'campaign_".$row['campaignid']."'";

    $temp_field="SELECT COLUMN_NAME,TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=".$table;

    $temp_fieldquery = mysql_query($temp_field);

    while($rowL=mysql_fetch_array($temp_fieldquery)){

        $fields[]="'".$rowL['COLUMN_NAME']."'";

    }
$field=implode(",",$fields);

$insertFields='INSERT INTO temp_field (fld,tablename) VALUES ("'.$field.'","'.$table.'")';

    mysql_query($insertFields);

我需要这样的输出:

fld                       | tablename
=====================================
fld1,fld2,fld3,fld4...    |  table1
fld1,fld2,fld3,fld4...    |  table2

但我得到的是:

fld                                          | tablename
========================================================
fld1,fld2,fld3,fld4...                       |  table1
fld1,fld2,fld3,fld4,fld1,fld2,fld3,fld4...   |  table2

第二个表获取第一个表的值

我的代码做错了什么,请帮忙

最佳答案

只需在 while 循环之前初始化您的 $fields 数组即可。

$fields = array();
while($rowL=mysql_fetch_array($temp_fieldquery)){
  $fields[]="'".$rowL['COLUMN_NAME']."'";
}
$field=implode(",",$fields);

您的代码中发生的情况是,由于 $fields[]$fields 数组继续为每个后续表添加新字段,因此重置为新数组应该修复它。

关于php - 获取多个表的列名并插入到另一个表+ PHP MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7550154/

相关文章:

mysql - 使用 select 和 where 更新表

mysql - 同时进行 SELECT 和 UPDATE - 锁定以防止并发问题

php - 如何拆分数组以将其插入另一个数组以进行 SQL 查询?

php - Zend Framework with ZFDebug,如何获取数据库适配器

php - Laravel 延迟服务提供者 `provides` 未被调用

mysql - 使用内连接 2 查询结果不准确

sql - 选择带别名和不带-oracle 11g 有什么区别

php - 从七个质量列表中查找具有*一个或多个*质量的数据库行的有效方法

php - 尝试使用 Php-MySQL 从数据库检索视频 URL 并将其显示在浏览器上

mysql - grails 不允许导致数据修改的查询