PHP mysql jquery分页修改

I have a problem with my pagination, I need your help please. I have 53 records but with this pagination, I can get 50 records only, I can't see the 3 others

I want to change this code to get all records please, and if I want to make the pagination easy to navigate for big records. Like this (for exp):

<< 1 2 3 4 5 ...... 184 185 >>

Thanks

   <?php

include("db.php"); //include config file

//sanitize post value
$page_number = filter_var($_POST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH);

//validate page number is really numaric
if(!is_numeric($page_number)){die('Invalid page number!');}

//get current starting point of records
$position = ($page_number * $item_per_page);

//Limit our results within a specified range. 
$results = mysqli_query($db,"SELECT id,name,message FROM paginate ORDER BY id ASC LIMIT $position, $item_per_page");

//output results from database

while($row = mysqli_fetch_array($results))
{


echo' <ul class="page_result">
                    <li class="page_result_img"><img src="images/pic1.jpg" class="img-responsive" alt=""/></li>
                    <li class="page_result_desc" id="item_'.$row["id"].'">
                      <h3><a href="#">'.$row["id"].'.'.$row["name"].'</a></h3>
                        <p>'.$row["message"].'</p>
                    </li>
                    <p class="no">'.$row["id"].'<br><span>projet</span></p>
                    <div class="clearfix"> </div>
                </ul>';
}

?>

projet.php

        <?php
include("db.php");

$results = mysqli_query($db,"SELECT COUNT(*) FROM paginate");
$get_total_rows = mysqli_fetch_array($results); //total records

//break total records into pages
$pages = ceil($get_total_rows[0]/$item_per_page);   

//create pagination
if($pages > 1)
{
    $pagination = '';
    $pagination .= '<ul class="paginate">';
    for($i = 1; $i<$pages; $i++)
    {
        $pagination .= '<li><a href="#" class="paginate_click" id="'.$i.'-page">'.$i.'</a></li>';
    }
    $pagination .= '</ul>';
}

?>



    .
    .
    .
    .
        <div class="approach" id="app">
                <div class="container">
                     <div class="gallery-head text-center">
                      <h3>Nos projets</h3>
                      <p>Trouvez ici tout les projets</p>
                      <span> </span>
                </div>

            <ul id="results"></div>
            <?php echo $pagination; ?>
                </div>

            </div>

For correct LIMIT in SQL query must be value of $page_number for the first page equal to 0. But your pagination starts from 1. Then you never get $position = 0 and SQL query skips first $item_per_page records.

Try modify $position calculation:

$position = (($page_number - 1) * $item_per_page);

Second problem is in projet.php. For 53 records (and $item_per_page = 10) is value of $pages = 6. But for cycle stops on 5. It should be:

for($i = 1; $i <= $pages; $i++)

I like to work this way .. So try this code hope it help

    $results = mysqli_query($db,"SELECT * FROM paginate");
    $get_total_rows = mysqli_num_rows($results); //total records
    $item_per_page = 10;
    //break total records into pages
    $pages = ceil($get_total_rows/$item_per_page);   
    //create pagination
if($pages > 1)
{
?>
      <ul class="paginate">
    <?php
    for($i = 1; $i<$pages; $i++)
    {
    if($pages <= 5){
    ?>
        <li><a href="#" class="paginate_click" id="<?php echo $i; ?>-page"><?php echo $i; ?></a></li>
    <?php
     }elseif($pages >= $pages - 5){
     ?>
        <li><a href="#" class="paginate_click" id="<?php echo $i; ?>-page"><?php echo $i; ?></a></li>
    <?php
     }
    }
    ?>
      </ul>
    <?php
}