在一段时间内获取行值...

时间:2013-03-14 03:16:35

标签: php mysql foreach while-loop

这是我的代码:

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

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

2 个答案:

答案 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);