我可以使用while循环在另一个while循环在PHP中

时间:2017-09-13 19:40:59

标签: php

我正在我的项目中创建一个评论系统。我希望每个发布的问题都有评论。我能够发表评论,但我有一个问题,显示所有评论它的相应答案。我只能显示一行但不能显示评论的行。我尝试使用一个while循环嵌套在while的echo每个问题,但它挂起。当我使用时,如果它只显示每个问题的评论的第一行。

所以我的问题是我怎样才能展示它们?

<div class="answer">
     <?php
     include 'db.php';
       $sql = "select * from answers where questionrid IN(select id from question where id='$qid')";
       $result = mysqli_query($con,$sql);
       if($result){
     while($ro = mysqli_fetch_assoc($result)){
     ?>

     <div class="a_view">
    <pre>
     <?php

       echo $ro["answer"];
       ?>
     </pre>
       </div>

      <div class="ans_comment">
          <?php
          if($ro["id"]){
          $id = $ro["id"];
          $sqli = "SELECT * FROM comments WHERE answerid='$id'";
          $query = mysqli_query($con,$sqli);
         $row = mysqli_fetch_assoc($query);
          $num = mysqli_num_rows($query);
          while($row){
            ?>
            <div><?php echo $row["comments"];?></div>
            <?php

          }
          }
          ?>
      </div>
      <div class="add"><div class="coment">add a comment</div> <div id="coment">
      <form class="cform" method="post" action="acomment.php">
      <textarea type="text" name="comment" class="tcomment" placeholder="add your comment here,your is 
      required to give correction or more information about the problem"></textarea><br><br>
      <input type="hidden" value="<?php echo $ro["id"]; ?>" name="userid">
        <input type="submit" value="Post your comment">
   </form>
   </div></div>
       <?php
       }
       }else{
          echo "no record";
       }
       ?>

      <?php
       $con->close();
      ?>

这是使其挂起的部分

 while($row){
            ?>
            <div><?php echo $row["comments"];?></div>
            <?php

          }

当我使用if时,它只会回显一行。

1 个答案:

答案 0 :(得分:2)

而不是

while($row){

就像你在上面的while循环

中做的那样
while($row = mysqli_fetch_assoc($query)){

现在你的方式,$row永远不会改变,因此总是评估为true,让你陷入困境。