2010-04-19 48 views
4

這是我的代碼:如何在每5個結果後插入<br/>?

$query = mysql_query("SELECT * FROM books ORDER BY id") or die(mysql_error()); 
while($row = mysql_fetch_assoc($query)) { 
echo $row["bookname"]." - "; 
} 

如何使僅5中的每一行顯示的書籍,在開始插入
如果行是5或10或15等...

謝謝

回答

7

你可以保持循環次數(每次增加一個變量)。

比較值模數5.如果結果爲0輸出的

$rowCounter = 1; 

while($row = mysql_fetch_assoc($query)) { 
    echo $row["bookname"]." - "; 

    if($rowCounter % 5 == 0) { 
     echo "<hr />"; 
    } 

    $rowCounter++; 
} 
2

一個簡單的辦法是有一個計數器增量...並檢查它的MOD(%)與5

所以

if (i % 5 == 0) echo $row["bookname"]; 
1
$query = mysql_query("SELECT * FROM books ORDER BY id") or die(mysql_error()); 
$counter=1; 
while($row = mysql_fetch_assoc($query)) { 
echo $row["bookname"]." - "; 
if($counter%5==0){echo "<br/>";} 
$counter++; 
} 
0

較短版本的邁克爾代碼:

$rowCounter = 0; 

while ($row = mysql_fetch_assoc($query)) { 
    echo $row["bookname"] . ' - '; 

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

又一替代:

$rowCounter = 1; // not sure if this should be 1 or 0 
// 1 is correct, check comments 

while ($row = mysql_fetch_assoc($query)) { 
    echo $row["bookname"] . ' - '; 

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

你想開始你的第二個例子爲零,因爲你在評估它之前遞增它。 – 2010-04-19 05:56:14

+0

@Michael:不是,請查看http://ideone.com/goPDH爲0,http://ideone.com/sTiq1爲1. =)前/後增量操作符有時可能會非常棘手。 – 2010-04-19 07:26:09

1

michaels代碼的優化版本! :)

$rowCounter = 0; 
$possibleHR = array("","","","","<hr/>"); 

while($row = mysql_fetch_assoc($query)) { 
    echo $row["bookname"]." - ".$possibleHR[($rowCounter++) % 5]; 
} 
相關問題