Maison >développement back-end >tutoriel php >php foreach循环问题
本人是做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 是对数组的第一维进行循环的
你 $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){ 姓名:<?php echo $val['name'];?>; 年龄:<?php echo $val['age'];?>;}
$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){ 姓名:<?php echo $val['name'];?>; 年龄:<?php echo $val['age'];?>;}
foreach 只能循环数组
你可以用 for 循环
$result = mysql_query($query);for(; $val=mysql_fetch_array($result); ){ ?> 姓名:<?php echo $val['name'];?>; 年龄:<?php echo $val['age'];?>;<?php }
foreach 只能循环数组
你可以用 for 循环
$result = mysql_query($query);for(; $val=mysql_fetch_array($result); ){ ?> 姓名:<?php echo $val['name'];?>; 年龄:<?php echo $val['age'];?>;<?php }
foreach 只能循环数组
你可以用 for 循环
$result = mysql_query($query);for(; $val=mysql_fetch_array($result); ){ ?> 姓名:<?php echo $val['name'];?>; 年龄:<?php echo $val['age'];?>;<?php }
$rows=mysql_fetch_array($result); 只拿到一行??,foreach只是循??一行??的每一?字段?容,?不是循?每一???。
所以mysql_fetch_array($result); 必?放在循??中,才能?取到所有??。