$sql = mysql_query("SELECT * FROM comments WHERE user = 1");
$i = 1;
while ($row = mysql_fetch_assoc($sql)) {
<p>$i. <?php echo $row['comment'] ?></p>
<div class="border"></div>
$i++;
}
如何在最后一条评论下输出<div class="border"></div>
?
答案 0 :(得分:23)
$sql = mysql_query("SELECT * FROM comments WHERE user = 1");
$number = mysql_num_rows($sql);
$i = 1;
while ($row = mysql_fetch_assoc($sql)) {
echo '<p>' . $i . $row['comment'] . '</p>';
if ($i < $number)
{
echo '<div class="border"></div>';
}
$i ++;
}
使用WebDevHobo的建议。
答案 1 :(得分:8)
$sql = mysql_query("SELECT * FROM comments WHERE user = 1");
$output = array ();
while ($row = mysql_fetch_assoc($sql)) {
$output[] = $row['comment'];
}
echo join('<div class="border"></div>', $output);
答案 2 :(得分:4)
$number = mysql_num_rows($sql);
这将告诉您将返回多少行。基于此,您可以确保最后一个没有DIV。
答案 3 :(得分:1)
$sql = mysql_query("SELECT * FROM comments WHERE user = 1");
$i = 1;
while ($row = mysql_fetch_assoc($sql)) {
$out_data[] = "<p>$i {$row['comment']} </p>";
$i++;
}
$divider = '<div class="border"></div>';
$output = implode ($divider, $out_data);
echo $output;
答案 4 :(得分:0)
$rslt = mysql_query("SELECT * FROM comments WHERE user = 1");
$i = 1;
if ($row = mysql_fetch_assoc($rslt)) {
echo '<p>'. $i . ' '. $row['comment'] . '</p>';
$i++;
while ($row = mysql_fetch_assoc($rslt)){
echo '<div class="border"></div>';
echo '<p>'. $i . ' ' . $row['comment'] . '</p>';
$i++;
} // end while
} // end if
避免需要知道行数。 仅执行一次if语句而不是每个循环。 HTML和PHP有点混乱和不一致,所以我只是假设整个块都在php标签内。显然,打开并关闭你认为合适的php标签。
这在很大程度上是一个样式问题,但我认为变量名$ sql有点误导,因为它经常用于保存要执行的sql语句的字符串,因此我将变量名更改为$的rslt。
答案 5 :(得分:0)
对这类问题的一般回答,并使用Javascript,因为它很容易扔进控制台并玩:
var count = 0;
var foo = 3;
while( count < 3 ) {
console.log("Header - " + count);
console.log("Body - "+ count);
console.log("Footer - " + count);
count++;
}
这将打印:
标题 - 0
身体 - 0
页脚 - 0
标题 - 1
身体 - 1
页脚 - 1
标题 - 2
身体 - 2
页脚 - 2
请求的案例基本上是&#34;在除最后一个元素之外的所有元素上打印页脚。&#34;
如果您认为第二次循环迭代只是第一次循环的延续,您可以看到如何执行此操作而无需查找记录总数 - 例如无需对count进行第二次查询。更简洁:当你试图弄清楚如何使用循环(或递归)做某事时,你应该尝试实际写出你的循环所做的事情,但没有实际循环 - 例如复制并粘贴循环块至少三次。
不是在这里这样做,我只是要完成答案,并将推导留给读者:〜)
var count = 0;
var foo = 3;
while( count < 3 ) {
if( count > 0 ) {
console.log("Footer - " + (count - 1));
}
console.log("Header - " + count);
console.log("Body - "+ count);
count++;
}