从数据查询数据后..得到的结果:$result = mysql_query($query);然后是判断 :if(mysql_num_rows($result)>0){
//........在这,一般都是用 while循环遍历mysql_fetch_xxx($result)的..
有什么办法可以直接使用foreach来遍历呢?
当查询数量比较多的时候,while的效率肯定会比foreach低很多..
}这问题想了半天,都不知道该怎么实现,请高手解惑啊....
//........在这,一般都是用 while循环遍历mysql_fetch_xxx($result)的..
有什么办法可以直接使用foreach来遍历呢?
当查询数量比较多的时候,while的效率肯定会比foreach低很多..
}这问题想了半天,都不知道该怎么实现,请高手解惑啊....
$num=mysql_num_rows($result);
for($i=0;$i<=$num;$i++){
$rs=mysql_fetch_array($result);
if ( !isset($rs) ) break; //貌似可以不要
something...
}
不过如果你想使用foreach,我暂时还没有想到办法,foreach用于遍历数组的,可惜$result并非数组。
$res_array=array();
for ($i=0;$row=$result->fetch_assoc();$i++)
{
$res_array[$i]=$row;
}
foreach($res_array as $line)
{
}没办法吧,只有先把result中的每一行扔到一个数组里去吧。
这是你程序设计的问题,不要归纳于循环的问题另外 用while($a=mysql_fetch_xxx($result)) 和 for($i=0;$i<=$num;$i++){$a=mysql_fetch_xxx($result)}
其实讨论的就是 php的类型转换 和 php运算 那个更加快,你要多少数据量的级别才体现出这2者之间的运算差别呢?foreach 比 while 快,是因为操作的内容是数组时,foreach直接引用的是php的内置数组索引地址,所以比while快,但是在你这里不适用,当你把所有内容都取出来成为一个数组时,foreach比while提高的时间,已经可以忽略不计了