2017-09-13 21 views
-3

私は自分のプロジェクトにコメントシステムを作成しています。投稿された質問のそれぞれにコメントを付けたい私はコメントを投稿することができましたが、すべてのコメントをそれぞれの回答に表示する際に問題が発生しています。私は1行だけを表示できましたが、コメントの行は表示できませんでした。 whileループを使用して、それぞれの質問をエコーし​​ますが、ハングします。私はそれが各質問のコメントの最初の行だけを表示する場合、私は使用します。私はwhileループをwhileループの中で使うことができますwhileループwhile PHP

私の質問はどのように表示するのですか?

<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(); 
     ?> 

これは私がifを使用する場合、それは1行のみエコー表示

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

      } 

ハング作ら部分です。

+2

私が見ているのは 'php'コードですが、' JavaScript'はありません! – Deano

+2

実際に表示されているJavaScriptやPHPの答えは「はい」です。 while()ループにエスケープ手段があることを確認してください(これは一般的に、while()がテストしている変数をインクリメントするカウンタです)。また、内部ループを記述する際に、外部ループ内の変数名を上書きしないようにしてください。 –

+3

2番目の 'while'ループが表示されません。これまでに何を試しましたか? –

答えて

2

代わりの

while($row){ 

あなたは

while($row = mysqli_fetch_assoc($query)){ 

上記whileループの中で、あなたが今それを持って道をやっているだけのようにそれを行う、$rowは変えていないので、いつもと評価さありませんtrue、あなたはあなたのループに立ち往生しています。

関連する問題