Maison >développement back-end >tutoriel php >php开发_分页
项目结构:
运行效果:
========================================
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 else24 $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 else45 $pagenav .= " 前页 ";46 if ($nextpg)47 $pagenav .= " <a href='$url=$nextpg'>后页</a> ";48 else49 $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 else58 $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;