[英]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.