Blogger Information
Blog 55
fans 0
comment 1
visits 42106
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
分页函数并封装查询操作(4-27)-2018年5月4日17点00分
旺小舞的博客
Original
991 people have browsed it

效果图:

4-27.jpg

注意点:

1,连接数据库  $db = mysqli_connect('localhost','root','root','php');

2,分页参数的实现 $page = isset($_GET['p']) ? $_GET['p'] : 1;,

3,总页数的获取:获取总记录数,.再除以每次的显示数量,结果向上取整  ceil() 向上取整

4,上一页下一页的判断:(($page-1)==0)? 1 : ($page-1)/(($page+1)>$pages)?$pages:($page+1)

5,中间页使用循环输出       页数高亮用.active属性。

6,函数封装时判断是否存在

func_page.php  封装函数

<?php
/**
 *
 */
if (!function_exists('func_page'))
{
    function func_page($db,$table,$page=1,$num=5)
    {
        $offset = ($page-1)*$num;
        $sql = "SELECT * FROM {$table} LIMIT {$offset}, {$num};";
        $res = mysqli_query($db,$sql);
        $rows = mysqli_fetch_all($res,MYSQLI_ASSOC);

    //获取总页数分2步:1.获取总记录数,2.再除以每次的显示数量,结果向上取整
        $number = mysqli_query($db,"SELECT COUNT(*) FROM {$table}");
        list($total) = mysqli_fetch_row($number); //总记录数保存到变量$total中
        $pages = ceil($total / $num);  //获取到总页数 $pages

        //返回当前分页数据与总页数
        return ['rows'=>$rows, 'pages'=>$pages];
    }
}

demo.php

<!doctype html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>权限控制</title>
    <style>
        table,th,td {
            border: 1px solid black;
        }
        table th {
            background-color: lightskyblue;
        }
        table {
            border-collapse: collapse;
            width: 70%;
            margin: 30px auto;
            text-align: center;
        }
        h3 {
            text-align: center;
        }
        h3 a {
            text-decoration: none;
            margin-left: 10px;
            border: 1px solid black;

            display: inline-block;
            height: 20px;
            min-width: 20px;
            padding: 0 10px;
            background-color: lightgreen;
        }
        h3 a:hover, .active {
            background-color: orange;
            color: white;
        }
        form {
            display: inline;
        }
    </style>
</head>
<body>
<?php
//连接数据库获取到全部的记录
//导入分页函数库
require 'lib/func_page.php';

$db = mysqli_connect('127.0.0.1','root','root','php');
$page = isset($_GET['p']) ? $_GET['p'] : 1;
$num = 8;
$table = 'perm';

//调用分页函数
$data = func_page($db,$table,$page,$num);
$rows = $data['rows'];  //当前分页数据
$pages = $data['pages'];  //总页数

/********要添加以下代码**********/
//如果当前变成为了0,则强制修改为1,否则就是当前页数
$page = ($page == 0) ? 1 : $page;
//如果大于总页数,则强制修改为总页数,否则就是当前页数
$page = ($page > $pages) ? $pages : $page;
?>

<table>
    <caption><h2>权限控制表</h2></caption>
    <tr>
        <th>ID</th>
        <th>部门</th>
        <th>功能</th>
    </tr>
    <?php foreach ($rows as $row): ?>
        <tr>
            <td><?php echo $row['id']; ?></td>
            <td><?php echo $row['name']; ?></td>
            <td><?php echo $row['value']; ?></td>
        </tr>
    <?php endforeach;?>
</table>



<h3>
    <!--    当前是第一页的时候,上一页和首页链接应该不显示-->
    <?php if($page != 1): ?>
        <a href="http://www.php.io/mysql/0427/demo6-1.php?p=1"><<</a>
        <a href="http://www.php.io/mysql/0427/demo6-1.php?p=<?php echo $page-1; ?>"><</a>
    <?php endif; ?>


    <!--生成中间页码-->
<?php for($i=1;$i<=$pages;$i++):?>
        <a class="<?php if($page==$i) echo 'active';?>" href="http://www.php.io/mysql/0427/demo6-1.php?p=<?php echo $i?>"><?php echo $i?></a>       
<?php endfor;?>

    <!--当前已经是最后一页的时候,下一页和最后一页也应该不显示-->
    <?php if($page != $pages) :?>
        <a href="http://www.php.io/mysql/0427/demo6-1.php?p=<?php echo $page+1; ?>">></a>

        <a href="http://www.php.io/mysql/0427/demo6-1.php?p=<?php echo $pages; ?>">>></a>
    <?php endif; ?>

    <!--实现页面的快速跳转-->
    <form action="" method="get">
        第
        <select name="p" id="">
                <?php for($i=1;$i<=$pages;$i++):?>
                <option value="<?php echo $i ?>"<?php if($page ==$i) echo 'selected' ?>><?php echo $i ?></option>
                <?php endfor;?>
            </select>
        页

        <button>跳转</button>
    </form>

</h3>


</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例




Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post