-1

这是我得到的:

 $pagecount=0;
while($row = $result->fetch_assoc()){
 echo '<div style="background-image:url(images/paper.jpg);">';
    while ($pagecount < 3) {
    while($row = $result->fetch_assoc()){
        echo '<div class="content"><div class="name">'  . $row['victim'] . '</div><div class="cod">'  . $row['cod'] . $pagecount . '</div></div>';
        $pagecount++;
        }
    }
$pagecount=0;
echo '</div>';
}

问题是当它运行时,它会打印出 $victim、$cod 和 $pagecount。我从不希望 pagecount 高于 3,所以我放入了 while 语句,所以当它达到 3 时它应该退出循环,然后 pagecount 应该回到 0,然后再次开始增加。但是,当它运行时,pagecount 只会越来越高,并且不会达到 3,然后又回到 0。任何人都可以帮忙吗?我的条件或循环有什么问题吗?

也只是在一边,谁能告诉我而不是使用第一个$row = $result->fetch_assoc(),我可以用什么来检查结果是否为空,因为目前,它会跳过 mysql db 中的第一个条目。

干杯伙计们!

编辑:到目前为止测试了每个人的解决方案,他们都为我工作。它只是显示了您可以通过多种不同的方式来做一件事!

谢谢大家,你们都非常非常有帮助。非常感激。:) 我最终要做的是完全while从内部循环中删除整个语句。

然而,由于第$row = $result->fetch_assoc()一个数据库条目仍然被跳过。有什么办法吗?

4

4 回答 4

1

尝试这个 :

$pagecount=0;
while($row = $result->fetch_assoc()){
    echo '<div style="background-image:url(images/paper.jpg);">';
    while($pagecount < 3 && $row = $result->fetch_assoc()){
       echo '<div class="content"><div class="name">'  . $row['victim'] . '</div><div class="cod">'  . $row['cod'] . $pagecount . '</div></div>';
       $pagecount++;
    }
    $pagecount=0;
    echo '</div>';
}
于 2013-10-31T10:26:11.243 回答
0
while ($pagecount < 3) {
    while($row = $result->fetch_assoc()){
        echo '<div class="content"><div class="name">'  . $row['victim'] . '</div><div class="cod">'  . $row['cod'] . $pagecount . '</div></div>';
        $pagecount++;
        }
    }

只要它可以 fetch_assoc,您的内部 while 就会一直循环,因为您不检查页数。

将条件移到内部 while:

    while($pagecount < 3 && $row = $result->fetch_assoc()){
        echo '<div class="content"><div class="name">'  . $row['victim'] . '</div><div class="cod">'  . $row['cod'] . $pagecount . '</div></div>';
        $pagecount++;
        }
于 2013-10-31T10:26:07.070 回答
0
$pagecount++;

应该移出内循环,即

while($row = $result->fetch_assoc()){
    echo '<div class="content"><div class="name">'  . $row['victim'] . '</div><div     class="cod">'  . $row['cod'] . $pagecount . '</div></div>';
    //moved 1 level: $pagecount++;
    }
$pagecount++;
}

缩进你的代码可能有帮助:)

于 2013-10-31T10:27:42.000 回答
0

$row = $result->fetch_assoc()在循环中使用 using会使$row = $result->fetch_assoc()结果指针过于向前。我建议您在执行循环之前将所有对象存储在一个数组中。

于 2013-10-31T10:24:55.487 回答