博客列表 >数据分页封装

数据分页封装

无耻的鱼
无耻的鱼原创
2018年05月02日 22:11:07744浏览

封装其实很简单,就是把你写的代码拿出来,替换掉关键字,传入相应的参数即可使用

下边看看我的代码以及效果

1.png

实例

<?php
/**
 * User: Z先生
 * Date: 2018/5/2
 * 数据分页
 */

require "func_select.php";


/**数据库连接**/  -----这个可以用封装到函数
$pdo = new PDO("mysql:dbname=".'php','root','root') or die("连接数据库失败!");


$sum = isset($_GET['p']) ? $_GET['p'] : 1; //获取数据

$func = fenye('php',$sum);
$numb = $func[0];
$rows = $func[1];

/**总页数-----这个可以用封装到函数

$number = $pdo->prepare("SELECT COUNT(*) FROM aaa");

$number->execute();

list($total) = $number->fetch();

$numb = ceil($total / 3);
 **/


/**数据查询 -----这个可以用封装到函数
$sql = "SELECT * FROM aaa LIMIT {$offset}, 3";

$stmt = $pdo->prepare($sql);

$stmt->execute();

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
 **/



/****/
$sum= ($sum > $numb) ? $numb : $sum;
$sum= ($sum == 0) ? 1 : $sum;
//echo 1;

?>

<table border="1" align="center" cellpadding="10" cellspacing="0" width="80%" >
    <caption><h2>员工信息表</h2></caption>
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>工资</th>
    </tr>
    <?php foreach ($rows as $row): ?>
        <tr align="center">
            <td><?php echo $row['id']; ?></td>
            <td><?php echo $row['name']; ?></td>
            <td><?php echo $row['age']; ?></td>
            <td><?php echo $row['money']; ?></td>
        </tr>
    <?php endforeach;?>
</table>


<style>
    li{
        margin-top: 20px;
        margin-right: 5px;
        display: inline-block;
        list-style: none;
        border:1px solid rgba(0, 0, 0, 0.4);
        padding: 2px;
    }
    a{
        text-decoration:none ;
    }
    form{
        display: inline;
    }
    form select{
        display: inline;
    }
</style>
<ul style="width: 80%; margin: auto; ">

    <?php if($sum != 1): ?>
    <li><a href="<?php echo $_SERVER['PHP_SELF']."?p=1";?>">首页</a></li>
    <li><a href="<?php echo $_SERVER['PHP_SELF']."?p=".(($sum-1)==0?1 :($sum-1));?>">上一页</a></li>
    <?php endif; ?>

    <!--实现页面的快速跳转-->
    <li><form action="" method="get">
        第
        <select name="p" id="">
            <?php for($i=1; $i<=$numb; $i++): ?>
                <!-- 循环输出全部页码,并锁定当前页-->
                <option value="<?php echo $i; ?>" <?php if($_GET['p']==$i){echo 'selected';} ?>><?php echo $i; ?></option>
            <?php endfor; ?>
        </select>
        页

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


    <?php if($sum != $numb): ?>
    <li><a href="<?php echo $_SERVER['PHP_SELF']."?p=".(($sum+1) > $numb ? $numb:($sum+1));?>">下一页</a></li>
    <li><a href="<?php echo $_SERVER['PHP_SELF']."?p=$numb";?>">末页</a></li>
    <?php endif; ?>
</ul>

运行实例 »

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


实例

<?php
/**
 * User: Z先生
 * Date: 2018/5/2
 */

function fenye($php,$sum){



/**数据库连接**/
$pdo = new PDO("mysql:dbname=".'php','root','root') or die("连接数据库失败!");


/**总页数**/

$number = $pdo->prepare("SELECT COUNT(*) FROM aaa");

$number->execute();

list($total) = $number->fetch();

$numb = ceil($total / 3);



/**数据查询**/
$offset =($sum-1)*3;

$sql = "SELECT * FROM aaa LIMIT {$offset}, 3";

$stmt = $pdo->prepare($sql);

$stmt->execute();

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

return [0=>$numb,1=>$rows];
}

运行实例 »

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

代码谢了那么多,其实就是需要多写,熟练,不然真的忘记的很快!!!


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议