0

这是我的代码:

$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'];
    }

但如果我这样做,它将打印所有值。

4

2 回答 2

4

您在数组上使用 explode() 。Explode 用于从字符串创建数组。您不必这样做,请参阅手册http://php.net/explode了解。更改下面的行

$inv = array('field1','field2','field3','field4');
$item = explode(',',$inv);

$item = array('field1','field2','field3','field4');
于 2013-03-14T03:20:30.373 回答
0

根据您的编辑,我猜您的字段名称包含前导空格。您应该使用其中的一个var_dump()变量来检查它$i,您可以通过修剪它来解决它:

$i = trim($i);
于 2013-03-14T04:06:25.240 回答