林阿三

php实现分页
摘要刚好自学了几天php就拿来写一些啦,使用php+mysql实现分页效果,我用的是mysqli方法,当然了你自己...
扫描右侧二维码阅读全文
28
2019/05

php实现分页

摘要

刚好自学了几天php就拿来写一些啦,使用php+mysql实现分页效果,我用的是mysqli方法,当然了你自己要是会PDO方法也可以自行修改代码

代码

1、首先是两个最主要的mysql查询语句

(1)、从哪查到哪的语句【limit后面两个数字,第一个数字是从0开始,第二数字是往后面查询10个,desc是降序 按最新的查询,asc是升序 按最旧的查询】

SELECT * FROM setgg ORDER BY id desc LIMIT 0,10

(2)、统计总页码的语句

select count(*) id from setgg

2、setgg.php

<?php
//计算总数量
function allNum(){
    require ("../includes/common.php"); //连接数据库
    $pagenum=$db->query("select count(*) id from setgg");
    foreach ($pagenum as $row){ //循环数量
        $nums=$row['id'];
    }
    return $nums; //返回数量
}
$allnums=allNum(); //定义一个变量得到循环的总数
$pageSize=10; //设置分页的数量 每一页的数量=10
$pageNum = empty($_GET["page"])?1:$_GET["page"]; //page如果=1就是分页1  否则就是其他值 
$endPage = ceil($allnums/$pageSize); //总页数 总数量除分页的数量  例如总数量是20 分页的数量是10  20/10=2 2页 以此类推
?>

3、数据渲染 and 结果显示

<?php
 $sql="SELECT * FROM setgg LIMIT ". (($pageNum - 1) * $pageSize) . "," . $pageSize; //pageNum如果是1 1-1=0 0*10=1 就显示第一页的 以此类推   1,10  10是自己设置的数量
 $rows=$db->query($sql); //循环输出
 foreach ($rows as $row):?>
<tbody>
    <tr role="row" class="odd">
        <td class="sorting_1">
            <font style="vertical-align: inherit;">
                <font style="vertical-align: inherit;">
                    <?php echo $row["id"]; ?>
                </font>
            </font>
        </td>
        <td>
            <font style="vertical-align: inherit;">
                <font style="vertical-align: inherit;">
                    <?php echo $row["ggtitle"]; ?>
                </font>
            </font>
        </td>
        <td>
            <font style="vertical-align: inherit;">
                <font style="vertical-align: inherit;">
                    <?php echo $row["ggcontent"]; ?>
                </font>
            </font>
        </td>
        <td>
            <font style="vertical-align: inherit;">
                <font style="vertical-align: inherit;">
                    <?php echo $row["ggtime"]; ?>
                </font>
            </font>
        </td>
        <td>
            <a href="?type=bj&id=<?php echo $row[" id"]; ?>">
                <button type="button" name="<?php echo $row[" id"]; ?>" class="btn btn-outline-primary ">
                    <font style="vertical-align: inherit;">
                        <font style="vertical-align: inherit;">编辑</font>
                    </font>
                </button>
            </a>
            <a href="?type=det&id=<?php echo $row[" id"];?>">
                <button class="btn btn-outline-primary">
                    <font style="vertical-align: inherit;">
                        <font style="vertical-align: inherit;">删除</font>
                    </font>
                </button>
            </a>
        </td>
    </tr>

</tbody>
<?php  endforeach;?>

4、页码

<?php if ($pageNum!=$endPage||$pageNum==$endPage): ?>
<li class="paginate_button page-item next " id="order-listing_next">
    <a href="?page=1" aria-controls="order-listing" data-dt-idx="2" tabindex="0" class="page-link">
        <font style="vertical-align: inherit;">
            <font style="vertical-align: inherit;">首页</font>
        </font>
    </a></li>
<?php endif;?>
<li class="paginate_button page-item next " id="order-listing_next">
    <a href="?page=<?php echo $pageNum==1?1:($pageNum-1)?>" aria-controls="order-listing" data-dt-idx="2" tabindex="0" class="page-link">
        <font style="vertical-align: inherit;">
            <font style="vertical-align: inherit;">上一页</font>
        </font>
    </a></li>
<?php
$pagenums=$db->query(" SELECT  ROUND(COUNT(*)/$pageSize) id FROM setgg;"); //总数量除页数量 在四余五入 取整
foreach ($pagenums as $row): 
for ($num=1;$num<=$row['id'];$num++):
?>
<li class="paginate_button page-item next" id="order-listing_next">
    <a href="?page=<?php echo $num;?>" aria-controls="order-listing" data-dt-idx="2" tabindex="0" class="page-link">
        <font style="vertical-align: inherit;">
            <font style="vertical-align: inherit;">
                <?php echo $num;?>
            </font>
        </font>
    </a></li>
<?php  endfor; endforeach;?>
<li class="paginate_button page-item next " id="order-listing_next">
    <a href="?page=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>" aria-controls="order-listing" data-dt-idx="2" tabindex="0" class="page-link">
        <font style="vertical-align: inherit;">
            <font style="vertical-align: inherit;">下一页</font>
        </font>
    </a></li>
<?php if ($pageNum==$endPage): ?>
<li class="paginate_button page-item next " id="order-listing_next">
    <a href="?page=<?php echo $endPage?>" aria-controls="order-listing" data-dt-idx="2" tabindex="0" class="page-link">
        <font style="vertical-align: inherit;">
            <font style="vertical-align: inherit;">尾页</font>
        </font>
    </a></li>


<?php endif;?>

5、结果显示

这边我上一页和下一页没有加,可以自行加上去

QQ图片20190528183423.png

最后修改:2019 年 05 月 28 日 06 : 44 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论