phppaginationinfinite

Pagination System


I made this script for my website.

It works and everything but there is one small problem.

You can go forward infinitely

You can just click Next Page in an endless loop

And for some reason when i echo $num_pages I get 1 0_0

How can I fix the "infinie nexting" - my weird definition for the problem :)

<?php
    $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'> <h3>". $GAC->Title. "</h3>
    ". $GAC->Content. " <hr /> <em> Posted By ". $GAC->PosterName ." </em>
    </div>";
    }
    $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>
    ";

Solution

  • I would put the display in a for loop:

    for($i = 1; $i <= $num_pages; $i++)
    {
        enter code here
    }
    

    That way it will repeat for as many pages are in num_pages and not anymore.