-2

テーブルに 1 つのコメントがある場合、何も表示されません。テーブルに 2 つのコメントがある場合、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();

                                        }
 }
        ?>
4

1 に答える 1

0

デバッグは、ある意味で非常に単純なことです。これに必要なのは 2 つのことだけです。

  • コードの機能とその理由。これは不可欠な部分です。
  • すべてのステートメントまたは関数によって返されるすべての変数、値、または結果の視覚的表現。

この2つがあれば、簡単に比較できます。

たとえば、SQL クエリを作成するための PHP プログラムがあるとします。このプログラムの結果を確認しましたか? いいえ
、そうすべきです。

したがって、結果をエコーアウトする必要があります。

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

クエリに問題がなく、コンソールに正しい結果が返された場合は、次の変数を確認する必要があります$num_rows

var_dump($num_rows);

1または2と言いますか?

...など、関連するすべての値またはステートメントについて。

また、これには多くのすべてのレコードが必要なため、ページネーションが壊れています。これは正しいページネーションの例です

于 2013-08-09T08:46:15.230 に答える