十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
办法就是一次性全查询出来,然后用PHP程序来处理,优点是减少数据库连接查询次数,提高效率,缺点就是,有可能会多写一部分php代码。总的来说php的处理速度要比循环查询要效率高。
我们提供的服务有:成都网站制作、做网站、微信公众号开发、网站优化、网站认证、河池ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的河池网站制作公司
这当然是不行的了,上面的告诉你的也是错误的,因为原因在于你循环的时候进行了数据库的查询,所以每次都是新的数据,指针当然要从第一条开始了。
所以不是你的循环的错误,而是你数据库查询代码位置的错误
要这样写
$num=mysql_query("select
*
from
china_city
where
parentid=0");
$n=
mysql_num_rows
($num);
for($i=1;$i=$n;$i++){
${"row".$i}=mysql_fetch_array($num);
echo
$i."
".${"row".$i}['city']."
";
}
一般都是用foreach或while写的
foreach(mysql_fetch_array($num)
as
$key=$value){}
while($row
=mysql_fetch_array($num)){}
为什么不用while,那你可以去框架里面找一个写好的方法,直接能返回所有查询结果的数组,
function fetch_all($sql, $id = '') {
$arr = array();
$query = $this-query($sql);
while($data = $this-fetch_array($query)) {
$id ? $arr[$data[$id]] = $data : $arr[] = $data;
}
return $arr;
}
类似这种的 但是他里面还有其他方法,你不能直接调用,总之就是这个意思了。