$n=mysql_num_rows($rs);
$i=0;
while($n>0)
{
while(($row=mysql_fetch_array($rs))&&$i<=5)
{
echo $row['room_name'];
$i=$i+1;
//echo $n."<br>";
}
echo "<br>";
//echo "n1=".$n;
$n=$n-5;
//
$i=0;
}
Output:101102103104105106
108109110roomname 107的行丢失....任何人请告诉我在重新进入循环时有什么问题……
发布于 2010-04-07 13:07:54
当$i变为6时,您将获取一行,但不执行任何操作。因为读取发生在$i<=5检查之前,所以会跳过读取的行。
更改while循环中条件的顺序。
while(($row=mysql_fetch_array($rs))&&$i<=5)至
while($i<=5 && ($row=mysql_fetch_array($rs)))发布于 2010-04-07 13:23:38
为了跟上我的评论,这整段代码本可以写得更清楚,如下所示。(假设您打算在每5个记录之后添加一个<br>,现在您在6个记录之后执行此操作,但我认为这可能是一个错误)
$rownum = 1;
while ($row = mysql_fetch_array($rs))
{
echo $row['room_name'];
if ($rownum % 5 == 0)
echo '<br>';
$rownum++;
}发布于 2010-04-07 13:12:47
这里如果我们检查$i<=5条件,所以从0开始数组统计,所以你的数据库值是从101,102,..106开始的,所以它是6个元素。
$i<=5条件删除中的此条件,同时保留条件if($i%5==0) echo“
";它会起作用的
https://stackoverflow.com/questions/2590145
复制相似问题