项目结构:
运行效果:
========================================
conn.php
1 <?php 2 $conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误"); 3 mysql_select_db("form", $conn); 4 mysql_query("set names 'GBK'"); //使用GBK中文编码; 5 //替换空格,回车键 6 function htmtocode($content) { 7 $content = str_replace("\n", "<br>", str_replace(" ", " ", $content)); 8 return $content; 9 } 10 ?>
page.php
1 <?php 2 3 function _PAGEFT($totle, $displaypg = 20, $url = '') { 4 5 global $page, $firstcount, $pagenav, $_SERVER; 6 7 $GLOBALS["displaypg"] = $displaypg; 8 9 if (!$page) 10 $page = 1; 11 if (!$url) { 12 $url = $_SERVER["REQUEST_URI"]; 13 } 14 15 //URL分析: 16 $parse_url = parse_url($url); 17 $url_query = $parse_url["query"]; //单独取出URL的查询字串 18 if ($url_query) { 19 $url_query = ereg_replace("(^|&)page=$page", "", $url_query); 20 $url = str_replace($parse_url["query"], $url_query, $url); 21 if ($url_query) 22 $url .= "&page"; 23 else 24 $url .= "page"; 25 } else { 26 $url .= "?page"; 27 } 28 $lastpg = ceil($totle / $displaypg); //最后页,也是总页数 29 $page = min($lastpg, $page); 30 $prepg = $page -1; //上一页 31 $nextpg = ($page == $lastpg ? 0 : $page +1); //下一页 32 $firstcount = ($page -1) * $displaypg; 33 34 //开始分页导航条代码: 35 $pagenav = "显示第 <B>" . ($totle ? ($firstcount +1) : 0) . "</B>-<B>" . min($firstcount + $displaypg, $totle) . "</B> 条记录,共 $totle 条记录"; 36 37 //如果只有一页则跳出函数: 38 if ($lastpg <= 1) 39 return false; 40 41 $pagenav .= " <a href='$url=1'>首页</a> "; 42 if ($prepg) 43 $pagenav .= " <a href='$url=$prepg'>前页</a> "; 44 else 45 $pagenav .= " 前页 "; 46 if ($nextpg) 47 $pagenav .= " <a href='$url=$nextpg'>后页</a> "; 48 else 49 $pagenav .= " 后页 "; 50 $pagenav .= " <a href='$url=$lastpg'>尾页</a> "; 51 52 //下拉跳转列表,循环列出所有页码: 53 $pagenav .= " 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n"; 54 for ($i = 1; $i <= $lastpg; $i++) { 55 if ($i == $page) 56 $pagenav .= "<option value='$i' selected>$i</option>\n"; 57 else 58 $pagenav .= "<option value='$i'>$i</option>\n"; 59 } 60 $pagenav .= "</select> 页,共 $lastpg 页"; 61 } 62 63 64 include("conn.php"); 65 66 $result=mysql_query("SELECT * FROM `test`"); 67 $total=mysql_num_rows($result); 68 //调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。 69 _PAGEFT($total,5); 70 echo $pagenav; 71 72 $result=mysql_query("SELECT * FROM `test` limit $firstcount,$displaypg "); 73 while($row=mysql_fetch_array($result)){ 74 75 echo "<hr><b>".$row[name]." | ".$row[sex]; 76 77 } 78 ?>
list.php
1 <?php 2 include("conn.php"); 3 4 $pagesize=5; 5 $url=$_SERVER["REQUEST_URI"]; 6 $url=parse_url($url); 7 $url=$url[path]; 8 9 10 $numq=mysql_query("SELECT * FROM `test`"); 11 $num = mysql_num_rows($numq); 12 13 if($_GET[page]){ 14 $pageval=$_GET[page]; 15 $page=($pageval-1)*$pagesize; 16 $page.=','; 17 } 18 if($num > $pagesize){ 19 if($pageval<=1)$pageval=1; 20 echo "共 $num 条". 21 " <a href=$url?page=".($pageval-1).">上一页</a> <a href=$url?page=".($pageval+1).">下一页</a>"; 22 } 23 $SQL="SELECT * FROM `test` limit $page $pagesize "; 24 $query=mysql_query($SQL); 25 while($row=mysql_fetch_array($query)){ 26 27 echo "<hr><b>".$row[name]." | ".$row[sex]; 28 29 } 30 ?>
分页公式:(当前页数-1)*每页条数,每页条数
sql语句:select * from test_table limit ($page-1)*$pageSize,$pageSize;