这是我的代码:
$inv = array('field1','field2','field3','field4');
$sql = "select * from table1 where id='1'";
$result = mysql_query($sql);
if(!$result){
print mysql_error();
}else{
while($row = mysql_fetch_array($result)){
foreach($inv as $i){
print $row[$i];
}
}
}
table1由以下字段名称组成:field1,field2,field3,field4,field5,field6,field7
$ inv = explode(',',$ item)其中$ item = table2 $ row [value]返回逗号分隔的字符串,该字符串可以包含'field1,field2,field5'或'field3,field4,field6' ...等等。
为什么只打印field1的值?这段代码出了什么问题?
while($row = mysql_fetch_array($result)){
print $row['field1'];
print $row['field2'];
print $row['field3'];
print $row['field4'];
}
但是,如果我这样做,它将打印所有的值。
答案 0 :(得分:4)
您在数组上使用explode()。爆炸用于从字符串创建数组。您无需执行此操作,请参阅手册http://php.net/explode以了解相关信息。更改下面的行
$inv = array('field1','field2','field3','field4');
$item = explode(',',$inv);
到
$item = array('field1','field2','field3','field4');
答案 1 :(得分:0)
根据您的编辑,我猜您的字段名称包含前导空格。您应该使用var_dump()
个$i
变量进行检查,然后通过修改它来解决它:
$i = trim($i);