我有这个代码:
$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/