分页在php中无法正常工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分页在php中无法正常工作相关的知识,希望对你有一定的参考价值。

我试图按照我想要的方式进行分页。目前,它工作正常但所有数字都在显示。加上总数是固定的。我想以适当的方式实现分页。我想让它充满活力。意味着它应该计算数据库中可用的最后一个日期的总页数。码

        $joursParPage = 3;
        $joursTotales = '45';
        $pagesTotales = ceil($joursTotales/$joursParPage);
        if(isset($_GET['page']) AND !empty($_GET['page']) AND $_GET['page'] > 0 AND $_GET['page'] <= $pagesTotales) {
           $_GET['page'] = intval($_GET['page']);
           $pageCourante = $_GET['page'];
        } else {
           $pageCourante = 1;
        }
        $depart = ($pageCourante-1)*$joursParPage;



        for($i=$depart;$i<=$pageCourante*3;$i++) {
    ?>

        <h4 class="block-title">
            <span style="margin-right: 0px;">Actualités du <?php echo utf8_encode(strftime('%A %d %B %Y', strtotime('-'.$i.' day'))); ?></span>
        </h4>
        <?php 
        $date = strftime('%Y-%m-%d', strtotime('-'.$i.' day'));
        $videoDer = $bdd->prepare('SELECT * FROM videos WHERE date_video = ? ORDER BY id DESC');
        $videoDer->execute(array($date));
        while($vD = $videoDer->fetch()) { ?>

    <?php }
        $articleDer = $bdd->prepare('SELECT * FROM articles WHERE date_article = ? ORDER BY id DESC');
        $articleDer->execute(array($date));
    while($aD = $articleDer->fetch()) { ?>

    <?php } ?>
    <?php } ?>
    <div class="lien_page">
    <span class="page_titre"> Pages  </span>
 <?php
  for($l=1;$l<=$pagesTotales;$l++) {
     if($l == $pageCourante) {
        echo '<span class="pageActuelle">'.$l.'</span>';
     } else {
        echo ' <a href="index.php?page='.$l.'" class="lien_page">'.$l.'</a> ';
     }
  }
  ?>
答案

嗯,你正在以沉重的方式做

最好的方法是使用limit子句而不是for循环来访问特定的no记录,就像你正在做的那样。

$recordsPerPage = 5;
$currentPage    = (isset($_GET['page]) && $_GET['page'] > 0)?$_GET['page]:1;
if($currentPage == 1){
    $startRecord = 1;
}else{
    $startRecords   = (($currentPage - 1) * $recordsPerPage) + 1 
    // it will be 6 in case of Page=2
    // it will be 11 in case of Page 3
}

$date           = strftime('%Y-%m-%d', strtotime('-'.$i.' day'));
$videoDer       = $bdd->prepare('SELECT * FROM videos WHERE date_video = ? ORDER BY id DESC limit '.$startRecords.', '.$recordsPerPage);
$videoDer->execute(array($date));


// your query looks like
select *
from videos
where date_video = ''
order by id desc
limit 6,5;

以上是关于分页在php中无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

数据表过滤器在应用SQL Server 2008分页代码时无法正常工作

如何在 iOS 中使用分页在 Scrollview 中进行下一个或上一个

PHP 视频多个页面无法正常工作

Wordpress 分页在搜索结果中不起作用

如何让分页在 WordPress 中为 get_posts() 工作?

一个组件中的多个材料分页在 Angular 中不起作用