使用PHP与MySQL实现分页功能的代码

实现功能:

(1)study数据库中有一个t_student表,要求实现每页输出5条记录,用户可以点击“首页”、“下一页”、“上一页”、“末页”来选择性显示相应页数的学生姓名。

(2)假设php文件名是s_01.php,当直接访问s_01.php没有给定page页数时,默认为第一页;当给定页数小于1时,按第一页输出;当给定页数大于最大页数时,按最后一页输出。

(3)如果当前在第一页,只可以点击“下一页”、“末页”;如果当前在最后一页,只可以点击“首页”、“上一页”;如果当前不是第一页,也不是最后一页,则可以点击“首页”、“上一页”、“下一页”、“末页”。

实现代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>使用PHP与MySQL实现分页功能的代码</title>
</head>
<body>
<?php
    // 连接数据库
    $conn = mysql_connect('localhost', 'root', '');
    mysql_select_db('study', $conn);
    // 设置编码为utf8,防止乱码
    mysql_query('set names utf8', $conn);
    // 获取一共有多少条记录
    $sqlall = 'select * from t_student';
    $resultrows = mysql_query($sqlall);
    $rowsnum = mysql_num_rows($resultrows);
    // 使用@来控制当没有给定page值时,不显示错误提示
    $page = @ $_GET['page'];
    // 给定每页显示记录条数为5条,算出一共有多少页
    $pagesize = 5;
    $maxpage = ceil($rowsnum / $pagesize);
    // 当没有给定page值或者是page小于1,都认为是第一页
    if ($page == '' || $page <= 1) {
        $page = 1;
    }
    // 当给定的page值大于最大页数,则认为是最后一页
    if ($page > $maxpage) {
        $page = $maxpage;
    }
    $limitstart = ($page - 1) * $pagesize;
    $sql = "select * from t_student limit $limitstart, $pagesize";
    $results = mysql_query($sql, $conn);
    while ($result = mysql_fetch_array($results)) {
        // 获取每条记录中name字段的值并输出
        echo $result['name']. '<br />';
    }
    // 关闭数据库连接
    mysql_close($conn);
    
    $homepage = '<a href="s_01.php?page=1">首页</a> ';
    $prepage = '<a href="s_01.php?page='. ($page -1). '">上一页</a> ';
    $nextpage = '<a href="s_01.php?page='. ($page + 1). '">下一页</a> ';
    $lastpage = '<a href="s_01.php?page='. $maxpage. '">末页</a>';
    switch($page) {
        // 当当前在第一页时,只可以点击下一页、末页
        case 1 :
            echo $nextpage, $lastpage;
            break;
        // 当当前在最后一页时,只可以点击首页、上一页
        case $maxpage :
            echo $homepage, $prepage;
            break;
        // 当当前页不是第一页、也不是最后一页,则可以点击首页、上一页、下一页、末页
        default :
            echo $homepage, $nextpage, $prepage, $lastpage;
            break;
    }
?>
</body>
</html>

今天在书上看到一道类似的练习题,就随便写了写,基本上可以实现上述功能,功能比较简单,可能代码写的有些啰嗦了,如果大家有更好的方法,希望能够在这里提出来,一起交流学习。

本文标题:使用PHP与MySQL实现分页功能的代码

本文链接:http://yedward.net/?id=25

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章