在php+mysql中要实现分页相对很简单,只要获取page再X 每页几条记录然后再利用limit n,M就可以完美的实现分页了,本实例讲述的很清楚有需要的同学参考下。
项目结构:
运行效果:
数据库连接代码立即学习“PHP免费学习笔记(深入)
”;
代码如下复制代码$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误"); mysql_select_db("form", $conn);mysql_query("set names 'GBK'"); //使用GBK中文编码;//替换空格,回车键function htmtocode($content){$content = str_replace("n", "", str_replace(" ", " ", $content));return $content;}?>这里是个比较重要的分享核心函数了代码如下复制代码function _PAGEFT($totle, $displaypg = 20, http://pic4.phprm.com/2012/04/19/http://pic4.phprm.com/2012/04/19/$url.jpg.jpg = '') {global $page, $firstcount, $pagenav, $_SERVER;$GLOBALS["displaypg"] = $displaypg;if (!$page)$page = 1;if (!$url) {$url = $_SERVER["REQUEST_URI"];}//URL分析:$parse_url = parse_url($url);$url_query = $parse_url["query"]; //单独取出URL的查询字串if ($url_query) {$url_query = ereg_replace("(^|&)page=$page", "", $url_query);$url = str_replace($parse_url["query"], $url_query, $url);if ($url_query)$url .= "&page";else$url .= "page";} else {$url .= "?page";}$lastpg = ceil($totle / $displaypg); //最后页,也是总页数$page = min($lastpg, $page);$prepg = $page -1; //上一页$nextpg = ($page == $lastpg ? 0 : $page +1); //下一页$firstcount = ($page -1) * $displaypg;//开始分页导航条代码:$pagenav = "显示第" . ($totle ? ($firstcount +1) : 0) . "-" . min($firstcount + $displaypg, $totle) . "条记录,共 $totle 条记录";//如果只有一页则跳出函数:if ($lastpg return false;$pagenav .= "首页";if ($prepg)$pagenav .= "前页";else$pagenav .= " 前页 ";if ($nextpg)$pagenav .= "后页";else$pagenav .= " 后页 ";$pagenav .= "尾页";//下拉跳转列表,循环列出所有页码:$pagenav .= " 到第n";for ($i = 1; $i if ($i == $page)$pagenav .= "$in";else$pagenav .= "$in";}$pagenav .= "页,共 $lastpg 页";}include("conn.php");$result=mysql_query("SELECT * FROM `test`");$total=mysql_num_rows($result);//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。_PAGEFT($total,5);echo $pagenav;$result=mysql_query("SELECT * FROM `test` limit $firstcount,$displaypg ");while($row=mysql_fetch_array($result)){echo "".$row[name]." | ".$row[sex];}?>list.php数据库查询记录并生成sql查询语句代码如下复制代码include("conn.php");$pagesize=5; 5 $url=$_SERVER["REQUEST_URI"];$url=parse_url($url);$url=$url[path];$numq=mysql_query("SELECT * FROM `test`");$num = mysql_num_rows($numq);if($_GET[page]){$pageval=$_GET[page];$page=($pageval-1)*$pagesize;$page.=',';}if($num > $pagesize){if($pagevalecho "共 $num 条". 21 "上一页下一页";}$SQL="SELECT * FROM `test` limit $page $pagesize ";$query=mysql_query($SQL);while($row=mysql_fetch_array($query)){echo "".$row[name]." | ".$row[sex];}?>分页公式:(当前页数-1)*每页条数,每页条数代码如下复制代码sql语句:select * from test_table limit ($page-1)*$pageSize,$pageSize;总结:不管是在什么程序开发中分开都是一个原是从X条开始取N条,这样就只读几条了,而在mysql中有http://www.phprm.com函数来操作,如 limit 1,5 就是从第一条取5条了。
再来介绍下核心代码,这里获取分页码,再Xpagesize代码如下代码如下复制代码if($_GET[page]){$pageval=$_GET[page];$page=($pageval-1)*$pagesize;$page.=',';}if($num > $pagesize){if($pageval在mysql+php做分成相对要简单很多了,因为有了limit
本文地址:
转载随意,但请附上文章地址:-)
