如何调试我的PHP代码

时间:2013-08-09 08:33:37

标签: php mysql mysqli pagination paging

当我在表格中有1条评论时,它没有显示任何内容。 当我在表中有2条评论时,它只显示第二条评论。我想由于某种原因它跳过第一个,有人可以帮忙吗? 非常感谢:)

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

                                        }
 }
        ?>

1 个答案:

答案 0 :(得分:0)

在某种程度上,调试是非常简单的事情。你需要的只是两件事:

  • 理解,你的代码做了什么,以及为什么。这是必不可少的部分。
  • 每个语句或函数返回的每个变量,值或结果的直观表示。

有了这两个,你可以很容易地比较它们。

说,你有PHP程序来构建一个SQL查询。 您是否检查过此计划的结果?号码 虽然你应该。

所以,你必须回应结果:

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

如果查询是正确的,并且它在控制台中返回正确的结果 - 那么,现在我们必须检查下一个变量$num_rows

var_dump($num_rows);

是说1还是2?

......等等,涉及每个值或声明。

此外,您的分页已被破坏,因为您需要许多所有记录。这是一个正确的pagination example