本人是做C#的,閑的時候學學php,可是老是出現問題,比如foreach迴圈,明明用mysql_fetch_array讀取
到了數組,可是foreach迴圈結果不對,但是while迴圈可以,請高手指點迷津,以下是簡單的代碼
$query = "SELECT * FROM mytable";
$result = mysql_query($query);
$rows=mysql_fetch_array($result);
foreach($rows as $val)
{
姓名:;
年齡:;
}
回複討論(解決方案)
mysql_fetch_array 返回的是一維數組,那樣遍曆自然是不對的。你print_r($rows); 看看就知道了。
mysql_fetch_array 返回的是一維數組,那樣遍曆自然是不對的。你print_r($rows); 看看就知道了。
這樣啊,foreach讀取數組還分一維和二維數組嗎?
foreach 是對數組的第一維進行迴圈的
你 $rows=mysql_fetch_array($result); 後 $rows 就是一個一維數組
foreach($rows as $val) 中 $val 是值,而不是數組。不存在 $val['name'] 等
猜測你是想這樣:
while($row=mysql_fetch_array($result)){ $rows[] = $row;}foreach($rows as $val){ 姓名:; 年齡:;}
$rows=mysql_fetch_array($result);
返回的是一維數組吧,不是二維數組,所以這樣遍曆出問題了
foreach 是對數組的第一維進行迴圈的
你 $rows=mysql_fetch_array($result); 後 $rows 就是一個一維數組
foreach($rows as $val) 中 $val 是值,而不是數組。不存在 $val['name'] 等
哦哦,謝謝,我又明白了一些
猜測你是想這樣:
while($row=mysql_fetch_array($result)){ $rows[] = $row;}foreach($rows as $val){ 姓名:; 年齡:;}
我想用foreach迴圈出資料,用foreach還要用while兩個迴圈啊,麻煩
foreach 只能迴圈數組
你可以用 for 迴圈
$result = mysql_query($query);for(; $val=mysql_fetch_array($result); ){ ?> 姓名:; 年齡:;
foreach 只能迴圈數組
你可以用 for 迴圈
$result = mysql_query($query);for(; $val=mysql_fetch_array($result); ){ ?> 姓名:; 年齡:;
那就是while了。
foreach 只能迴圈數組
你可以用 for 迴圈
$result = mysql_query($query);for(; $val=mysql_fetch_array($result); ){ ?> 姓名:; 年齡:;
感謝您的指導,我懂了,這個問題困擾了好久呢,哈哈 $rows=mysql_fetch_array($result); 只拿到一行??,foreach只是循??一行??的每一?欄位?容,?不是循?每一???。
所以mysql_fetch_array($result); 必?放在循??中,才能?取到所有??。