簡體   English   中英

foreach內的while循環中獲取行值…?

[英]foreach inside a while loop in getting row value…?

這是我的代碼:

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

但是,如果我這樣做,它將打印所有值。

您正在數組上使用explode()。 Explode用於從字符串創建數組。 您不必執行此操作,請參閱手冊http://php.net/explode進行了解。 更改下面的行

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

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

根據您的編輯,我想您的字段名稱包含前導空格。 您應該使用$i變量的var_dump()進行檢查,並可以通過修整它來解決它:

$i = trim($i);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM