2013-08-09 3 views
-2

Когда у меня есть 1 комментарий в таблице, он ничего не показывает. Когда у меня есть 2 комментария в таблице, она показывает только вторую. Я думаю, почему-то он пропустил первый, может ли кто-нибудь помочь? Высокую оценку :)Как отладить мой PHP-код

require_once('config.php'); 
      if(!isset($_GET['NewComment'])) { 
      echo "<a style='float:right;' href='?NewComment' class='btn btn-primary'> New Comment </a> <br /><br />"; 
      $per_page = 4; 
      $start = 1; 
      if(!isset($_GET['page'])) { 
      $page = 1; 
      } else { 
      $page = $_GET['page']; 
      } 
      if($page <= 1) { 
      $start = 1; 
      $page = 1; 
      } else { 
      $start = $page * $per_page - $per_page; 
      } 
      $next = $page+1; 
      $previous = $page-1; 
      $GetAllComments = $con->query("SELECT * FROM comments LIMIT $start, $per_page"); 
      $num_rows = $GetAllComments->num_rows; 
      $num_pages = $num_rows/$per_page; 
      while($GAC = $GetAllComments->fetch_object()) { 
      echo "<div class='well' style='overflow:auto;'> <h3>". $GAC->Title. "</h3> 
      ". $GAC->Content. " <hr /> <em> Posted By ". $GAC->PosterName ." </em> 
      </div>"; 
      } 
      for($i = 1; $i <= $num_pages; $i++) { 
       $pagen = $page+1; 
       $pagep = $page-1; 
        echo " 
        <div class='pagination'> 
        <ul> 
        "; 
        if($page > 1) { 
        echo " 
        <li><a href='?page=$previous'>".$pagep."</a> </li> 
        "; 
        } 
        echo " 
        <li class='disabled'><a href='#'>$page</a></li> 
        "; 

        echo " 
        <li> <a href='?page=$next'>" . $pagen . "</a></li> 
        </ul> 
        </div> 
        "; 
        } 
        } 
         elseif(isset($_GET['NewComment'])) { 
          echo " 
          <form action='' method='post'> 
          <h4>First Name:</h4><input type='text' name='fname' placeholder='First Name'> 
          <h4>Title:</h4><input type='text' name='title' placeholder='Comment Title'> 
          <textarea name='editor1'>&lt;p&gt;&lt;/p&gt;</textarea> 
          <script> 
          CKEDITOR.replace('editor1'); 
          </script><br /> 
          <input type='submit' name='post' value='Post' class='btn btn-success'> 
          </form> 
             "; 
             if(isset($_POST['post'])) { 

        $FirstName = $_POST['fname']; 
        $Title = $_POST['title']; 
        $Comment = $_POST['editor1']; 
        $addcomment = $con->prepare("INSERT INTO comments (PosterName, Title, Content) VALUES ('$FirstName','$Title','$Comment')"); 
$addcomment->execute(); 

             } 
} 
     ?> 
+2

Еще один «пожалуйста отлаживать код для меня» вопрос ... –

+0

я пытался отладки, к сожалению никакого успеха :( –

+1

Ну, вы должны спросить «как отлаживать PHP код» вопрос, то –

ответ

0

Отладка очень простая вещь, в некотором смысле. Все, что вам нужно для этого, это 2 вещи:

  • понимание, что делает ваш код и почему. Это неотъемлемая часть.
  • визуальное представление каждой переменной, значения или результата, возвращаемых каждым утверждением или функцией.

С этими двумя вы можете легко сравнить их.

Скажем, у вас есть PHP-программа для построения SQL-запроса. Вы проверили результат этой программы?
Пока вы должны.

Таким образом, вы должны повторить результат из:

echo "SELECT * FROM comments LIMIT $start, $per_page" 

, если запрос все в порядке, и он возвращает правильный результат в консоли - ну, теперь мы должны проверить очень следующую переменную, $num_rows :

var_dump($num_rows); 

Скажет 1 или 2?

... и так далее, для каждый значение или заявка.

Кроме того, разбиение на страницы разбито, так как для этого требуется несколько записей. Вот прямо pagination example

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