2016-12-28 4 views
-1

enter image description here Я работаю над проектом CMS с php и одним из моих , а петли не работает, и я не могу найти причину.Хотя цикл на php не работает, почему?

Я эхо на (td) внутри цикла и ничего не отображается на странице, но когда я эхо вне цикла while, он работает очень хорошо. У меня есть комментарий, чтобы увидеть вас. Можете ли вы мне помочь, когда у меня возникла проблема?

<table class="table table-bordered table-hover"> 
    <thead> 
     <tr> 
      <th>Id</th> 
      <th>Author</th> 
      <th>Comment</th> 
      <th>Email</th> 
      <th>Status</th> 
      <th>In Response to</th> 
      <th>Date</th> 
      <th>Approve</th> 
      <th>Unapprove</th> 
      <th>Delete</th> 
     </tr> 
    </thead> 
    <tbody> 

<?php  
     $query = "SELECT * FROM comments "; 
     $select_comments = mysqli_query($connection, $query); 

     while($row = mysqli_fetch_assoc($select_comments)) { 
      $comment_id = $row['comment_id']; 
      $comment_post_id = $row['comment_post_id']; 
      $comment_author = $row['comment_author']; 
      $comment_content = $row['comment_content']; 
      $comment_email = $row['comment_email']; 
      $comment_status = $row['comment_status']; 
      $comment_date = $row['comment_date']; 


      echo "<tr>"; 

      echo "<td>$comment_id</td>"; 
      echo "<td>$comment_author</td>"; 
      echo "<td>$comment_content</td>"; 
/
      echo "<td>$comment_email</td>"; 
      echo "<td>$comment_status</td>"; 

      //THIS IS THE LOOP DOESN'T WORK 
      $query = "SELECT * FROM posts WHERE post_id = $comment_post_id"; 

      $select_post_id_query = mysqli_query($connection, $query); 

      while($row = mysqli_fetch_assoc($select_post_id_query)) { 
       $post_id = $row['post_id']; 
       $post_title = $row['post_title']; 

      echo "<td><a href='../post.php?p_id=$post_id'>$post_title</a></td>"; 
      } 


      echo "<td>$comment_date</td>"; 
      echo "<td><a href='comment.php?approve=$comment_id'>Approve</a></td>"; 
      echo "<td><a href='comment.php?unapprove=$comment_id'>Unapprove</a></td>"; 
      echo "<td><a href='comment.php?delete=$comment_id'>Delete</a></td>"; 

      echo "</tr>"; 

     } 
?> 

    </tbody>  
</table> 






<?php 

//approve posts 
if(isset($_GET['approve'])){ 

$the_comment_id = $_GET['approve']; 

    $query = "UPDATE comments SET comment_status = 'approved' WHERE comment_id = $the_comment_id "; 
    $approve_comment_query = mysqli_query($connection, $query); 
    header("Location: comment.php"); 
} 


//unapprove posts 
if(isset($_GET['unapprove'])){ 

$the_comment_id = $_GET['unapprove']; 

    $query = "UPDATE comments SET comment_status = 'unapproved' WHERE comment_id = $the_comment_id "; 
    $unapprove_comment_query = mysqli_query($connection, $query); 
    header("Location: comment.php"); 
} 

//delete posts 
if(isset($_GET['delete'])){ 

$the_comment_id = $_GET['delete']; 

    $query = "DELETE FROM comments WHERE comment_id = {$the_comment_id} "; 
    $delete_query = mysqli_query($connection, $query); 
    header("Location: comment.php"); 
} 



?> 
+0

Вам нужно закрыть инструкции SQL в mysqli? '$ query =" SELECT * FROM comments ";' if so отсутствует ';'. – Torxed

+0

Строка 37, что делает '/'? Комментарий '//'. –

+1

Нет установленной базы данных. $ connection должно быть инициализировано – emir

ответ

0

У меня есть недостающая часть моего db с соединением.

THNX все, что вы, друзья: D

3

Вы переписываете переменную $row во второй цикл. Вы должны изменить его, например. до $subRow, чтобы избежать такой ситуации.

+1

Не лучшая практика, но это, безусловно, не нарушает ничего. OP никогда больше не использует '$ row', и он будет переназначен на следующей итерации цикла на следующий результирующий набор –

+0

. Я попытался изменить переменную, но я не понимаю, почему echo не работает – albdev

+0

@albdev' echo' должен работать нормально, но, возможно, что-то не так с вашим запросом? Теперь вы игнорируете ошибки, поэтому сначала нужно изменить. Проверьте, возвращает ли 'mysqli_query'' false' и, если это так, значение журнала из 'mysqli_error'. –

Смежные вопросы