这是我的代码:如何在每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等...
谢谢
这是我的代码:如何在每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等...
谢谢
你可以保持循环次数(每次增加一个变量)。
比较值模数5.如果结果为0输出的
$rowCounter = 1;
while($row = mysql_fetch_assoc($query)) {
echo $row["bookname"]." - ";
if($rowCounter % 5 == 0) {
echo "<hr />";
}
$rowCounter++;
}
一个简单的办法是有一个计数器增量...并检查它的MOD(%)与5
所以
if (i % 5 == 0) echo $row["bookname"];
$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++;
}
较短版本的迈克尔代码:
$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 />';
}
}
michaels代码的优化版本! :)
$rowCounter = 0;
$possibleHR = array("","","","","<hr/>");
while($row = mysql_fetch_assoc($query)) {
echo $row["bookname"]." - ".$possibleHR[($rowCounter++) % 5];
}
你想开始你的第二个例子为零,因为你在评估它之前递增它。 – 2010-04-19 05:56:14
@Michael:不是,请查看http://ideone.com/goPDH为0,http://ideone.com/sTiq1为1. =)前/后增量操作符有时可能会非常棘手。 – 2010-04-19 07:26:09