【问题标题】:PHP mysql jquery pagination modificationPHP mysql jquery 分页修改
【发布时间】:2015-03-01 17:22:30
【问题描述】:

我的分页有问题,我需要你的帮助。 我有 53 条记录,但是通过这个分页,我只能得到 50 条记录,我看不到其他 3 条记录

我想更改此代码以获取所有记录,如果我想让分页易于浏览大记录。像这样(exp):

>

谢谢

   <?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>

【问题讨论】:

  • 什么是 $get_total_rows[0] ??
  • 对不起,我又贴了代码

标签: php jquery mysql pagination


【解决方案1】:

对于 SQL 查询中的正确 LIMIT,第一页的 $page_number 值必须等于 0。但是您的分页从 1 开始。然后您永远不会得到 $position = 0 并且 SQL 查询会跳过第一个 $item_per_page 记录。

尝试修改$position计算:

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

第二个问题在 projet.php 中。对于 53 条记录(并且 $item_per_page = 10)的值是 $pages = 6。但是对于 5 的循环停止。它应该是:

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

【讨论】:

  • 我一直得到相同的结果(50 条记录)
  • 我已经修改了答案。
  • 谢谢,但是不行.. 总是 5 页
【解决方案2】:

我喜欢这样工作..所以试试这个代码希望它帮助

    $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
}

【讨论】:

  • 它根本不起作用,我有 5 页 10 条记录,我必须得到 6 页 3 条记录,但我可以看到它。这是我的问题
  • 我希望我可以让它更灵活,像这样:> ,我去网上看看也许我可以轻松修改
  • @SaidBularouk 我用 if 语句更新了我的答案,看看并尝试一下
猜你喜欢
  • 2014-08-22
  • 2011-11-23
  • 1970-01-01
  • 2011-02-06
  • 2013-05-25
  • 2018-01-12
  • 2011-04-14
  • 2011-03-06
  • 1970-01-01
相关资源
最近更新 更多