2010-04-07 70 views
0
$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 

行的ROOMNAME 107缺少.... 有人告訴我這是什麼問題,而重新輸入環路...PHP mysql_fetch_array

+0

正在運行可能有助於 – SeanJA 2010-04-07 05:05:31

+1

是查詢的例子這種混淆的PHP代碼比賽? (我真的希望如此) – 2010-04-07 05:05:46

+1

我注意到輸出缺少
...我發現令人不安 – SeanJA 2010-04-07 05:07:11

回答

2

$i成爲6你讀取行,但做沒有。因爲在$i<=5檢查之前進行提取,所以提取的行會被跳過。

更改while循環中的條件順序。

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

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

這裏如果正在檢查從$ 0 I < = 5條件,使得陣列的統計信息,所以數據庫從101102值統計,.. 106,所以它會6層的元件。

$ i < = 5條件如果($ i%5 == 0)回顯「
」,則在保持條件的情況下移除此條件;它會起作用

2

爲了跟進我的評論,這段代碼可以寫得更清晰,如下所示。 (假設你的意思是放在一個<br>每5條記錄後,現在你6後這樣做,但我認爲這可能是一個錯誤)

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

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