PHP for 循环运行超过它应该的

标签 php mysql

<分区>

我正在为我的网站制作一个 ajax 评论系统,我在我的数据库中查询某个字段的任何评论。然后我查看返回结果的数量是否大于3,或者小于/等于3(我有3的特定原因)。如果它大于 3,我设置一个变量 = 3,但如果它小于/等于 3,我将变量设置为等于返回的行数 (mysql_num_rows())。然后我在循环之前回显一些文本,然后我在循环中回显内容,然后在循环之后我回显更多内容。出于某种原因,我的 for 循环运行的时间超过了给定的时间。非常奇怪的是,在移动到下一条评论并重复 3 次之前,它重复了 3 次相同的评论。 for 循环后,我总共有 9 个评论。这不适用于我的设计,因为我只能在放置它们的位置放置 3 条评论。我的for循环嵌套了一段时间,因为我需要多次查询才能根据我发送给php的信息获取我需要的信息(具体原因也是如此)。另一件事,仅当返回结果的数量大于 3 时,PHP 才回显注释 9 次,如果小于 3,则工作正常。我已经检查了这段代码 50 次,但我不能找不到任何东西。也许你们可以。这是我正在使用的代码:


                $comments = mysql_query("SELECT * FROM comments WHERE profid = '".$row['id']."'");
                $numComments = mysql_num_rows($comments);
                $totalCommComments = 0;
                if ($numComments > 0) {
                    if (mysql_num_rows($comments) > 3) {
                        $totalCommComments = 3;
                        echo '
        <div class="comments">
            <div class="commContainer">
                <ul class="'.$totalCommComments.'Comm">';
                        while ($get1 = mysql_fetch_array($comments)) {
                        for ($l = 1;$l<$totalCommComments;$l++) {
                            echo 'STUFF IS ECHOED HERE';
                        }
                        }  
                        echo '
                 </ul>
            </div>
       </div>';

我知道变量 $totalCommComments设置为 3 因为我可以在 <ul> 中看到类.

附言。这不是完整代码,只有相关代码。其他一切都是在不同的数据库中查询进行此查询所需的其他信息。


非常感谢

最佳答案

$comments = mysql_query("SELECT * FROM comments WHERE profid = {$row['id']}");
$numComments = mysql_num_rows($comments);
if ($numComments > 0) { ?>
   <div class="comments">
       <div class="commContainer">
           <ul class="shortComments">
               <?php $i = 0;
               while ($i++ < 3 && $get1 = mysql_fetch_assoc($comments)) { ?>
                   <li class='comment'><?=$get1['comment']?></li>
               <?php } ?>
           </ul>
       </div>
   </div>
<?php } ?>

试试吧。你那里有很多冗余代码

有很多不同的方法我可以继续编辑这个,如果你让我们知道你想做什么,我可以更新这个代码

关于PHP for 循环运行超过它应该的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10127188/

相关文章:

php - 更改为无限循环 while 循环

php - 如何在php中正确输出mysql数据库的数据

php - laravel 5.1 使用延迟预加载用法

mysql - 在 Spring boot 中使用 .sql 文件中的初始数据填充 MySql DB

MySQL 记录 UPDATE 应该会失败,但实际上却没有。为什么?

php - 在 Woocommerce 结帐中添加弹出窗口和基于国家/地区的自定义消息

php - Page.php 不显示 wordpress 中的更改

mysql - 当 HAVING COUNT(*) = 1 时,MySQL 能否确信函数依赖?

mysql - 如何在SQL中定义从出生日期开始的派生列年龄?

mysql - 使用单个列对多个表进行内连接,对结果值产生 'multiplier' 影响