PHP mysql_fetch_array

时间:2010-04-07 05:03:32

标签: php mysql

    $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
108109110

房间名称107的行丢失了.... 任何人请再次重新进入循环时告诉我有什么问题...

3 个答案:

答案 0 :(得分:2)

$i变为6时,您会获取一行但不执行任何操作。因为在$i<=5检查之前发生了提取,所以跳过了提取的行。

更改while循环中的条件顺序。

while(($row=mysql_fetch_array($rs))&&$i<=5)

while($i<=5 && ($row=mysql_fetch_array($rs)))

答案 1 :(得分:2)

为了跟进我的评论,这整段代码可以更清楚地写成如下。 (假设你打算在每5条记录之后输入一个<br>,现在你在6之后就做了,但我认为这可能是一个错误)

$rownum = 1;
while ($row = mysql_fetch_array($rs))
{
    echo $row['room_name'];

    if ($rownum % 5 == 0)
        echo '<br>';
    $rownum++;
}

答案 2 :(得分:0)

这里如果正在检查$ i&lt; = 5条件,那么数组统计数据从0开始,所以你的数据库值统计数据来自101,102,... 106,所以它将是6个元素。

$ i&lt; = 5条件在保持条件的同时删除此条件if($ i%5 == 0)echo“
”;它会起作用