php数据库分页显示 php分页查询功能实现

PHP显示很多数据库信息,如何自动分页呢?代码

这是我以前学php写的 哈哈 你可以看看

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的坡头网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

?php

/**

* 分页类

* 1.实例化分页类,例:mypage new page("SQL语句","每页显示记录条数");

* 2.调用类中的 genpage() 方法,返回分页生成的SQL语句;

* 3.执行新生成的SQL语句;

* 4.调用 showpage_1() 或 showpage_2() 方法显示分页的翻页(可也以自定义返回显示的方式)

* 实例:

* $page = new page("select * from ly",2);

* $sql=$page-genpage();

* $ar=mysql_query($sql);

* while($nu=mysql_fetch_array($ar)){

* echo $nu[0].'br';

* }

* $page-showpage_2();

*/

class page{

private $totalnum; //总记录数

private $pagecount; //总页数

private $f_pagenum; //当前页的第一条记录

private $sql;

private $page; //当前页

private $page_size; //每页显示数量

private $pagesql;

private $total;

private $url; //当前页url

private $beforepage; //上一页

private $nextpage; //下一页

function __construct($sql,$page_size){ //传入sql语句和每页显示条数

$this-sql=$sql;

$this-page_size=$page_size;

$this-page=is_numeric($_GET[page]);

$this-page=substr($this-page,0,10);

$this-page=mysql_real_escape_string($this-page);

if(ereg("^[0-9]*[1-9][0-9]*$",$this-page)!=1){

$this-page=1;

}

if($this-page99999999){

$this-page=1;

}

}

function genpage(){

//

// if(!$this-page){

// $this-page=1;

// }

$this-pagesql = strstr($this-sqlcz," from ");

$this-pagesql = "select count(*) as ids ".$this-pagesql;

$this-total=mysql_query($this-sql);

$this-totalnum=mysql_num_rows($this-total); //总记录数

$this-pagecount=ceil($this-totalnum/$this-page_size); //总页数

$this-f_pagenum=$this-page_size*($this-page-1); //当前页的第一条记录

$this-sql .=" limit $this-f_pagenum,$this-page_size ";

return $this-sql;

}

//替换url中的page的页数

function replace_page($npage){

$this-url=$_SERVER["REQUEST_URI"]; //获取当前url

$check = strpos($this-url, 'page='); //判断url中是否有page分页参数

if($check==false){ //如果没有page分页参数

if(strpos($this-url, '?')==false){ //判断是否url是否有“ ?”号,

$this-url=$this-url."?page=1"; //如果没有“ ?”号,说明之前url没有参数

}else{

$this-url=$this-url."page=1"; //如果有“ ?”号,说明有参数,追加参数要改用符号

}

}

$npage="page=".$npage; //跳转到的页

$zz='[page=\d*]';

return preg_replace($zz,$npage,$this-url); //正则替换掉url中的page参数,实现分页

}

//显示总页数

function show_all_page(){

return $this-pagecount;

}

//显示当前页

function show_current_page(){

return $this-page;

}

//显示首页和上一页

function show_firstAndup_page(){

if($this-page==1){

return "首页|上一页";

}else{

$this-beforepage=$this-page-1;

return "a href=".$this-replace_page(1)."首页/a|a href=".$this-replace_page($this-beforepage)."上一页/a";

}

}

//显示下一页和最后页

function show_lastAnddown_page(){

if(($this-page==$this-pagecount)||($this-pagecount==0)){

return "下一页|尾页";

}else{

$this-nextpage=$this-page+1;

return "a href=".$this-replace_page($this-nextpage)."下一页/a|a href=".$this-replace_page($this-pagecount)."尾页/a";

}

}

//循环显示页数

function show_loop_page(){

$shownum =10/2;

$startpage = ($this-page$shownum)?$this-page-$shownum:1;

$endpage = ($this-page+$shownum=$this-pagecount)?$this-page+$shownum:$this-pagecount;

for($i=$startpage;$i=$endpage;$i++)

{

if($i==$this-page) {

$a= " b[".($i)."]/b ";

}else{

$a= " a href=".$this-replace_page($i)."".($i)."/a ";

}

$b=$b.$a;

}

return $b;

}

//整体显示第一种方案

function showpage_1(){

return "共".$this-show_all_page()."页nbsp"."当前第".$this-show_current_page()."页nbsp".$this-show_firstAndup_page()."nbsp"

.$this-show_loop_page()."nbsp".$this-show_lastAnddown_page();

}

//整体显示第二种方案

function showpage_2(){

return $this-show_firstAndup_page()."nbsp".$this-show_loop_page()."nbsp".$this-show_lastAnddown_page();

}

}

?

php分页显示问题

对于MYSQL应用,分页的核心就是SELECT ... LIMIT $start_no, $page_len

其中的$start_no=$page * $page_len,$page是当前页号(0开始),$page_len是每页显示的数量

遇到问题的时候,echo 一下$sql等内容,你就知道问题出在哪里了

php mysql查询结果分页显示

?php

$mysql_server_name="localhost";

$mysql_username='root';

$mysql_password='';

$mysql_database='hp';

$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password);

@mysql_connect("localhost","root","") or die("数据库连接失败");

@mysql_select_db("hp") or die("数据库不存在");

mysql_query("set names utf8");

$pagesize = $_GET['pagesize']  0 ? $_GET['pagesize'] : 10; //默认情况下每页显示10条数据

$pagenum = $_GET['pagenum']  0 ? $_GET['pagenum'] : 0;

$query_start = $pagesize * $pagenum;

if($_POST['submit']){

$strsql_add = '';

$strsql_add .=$_POST['idc'] ? " and idc='$_POST[idc]' ":"";

$strsql_add .=$_POST['jiguihao'] ? " and jiguihao='$_POST[jiguihao]' ":"";

$strsql_add .=$_POST['neicun'] ? " and neicun='$_POST[neicun]' ":"";

$strsql_add .=$_POST['yingpan'] ? " and yingpan='$_POST[yingpan]' ":"";

$strsql_add .=$_POST['xinghao'] ? " and xinghao='$_POST[xinghao]' ":"";

$strsql_add .=$_POST['cpu'] ? " and cpu='$_POST[cpu]' ":"";

$strsql_add .=$_POST['guishu'] ? " and guishu='$_POST[guishu]' ":"";

$strsql_add .=$_POST['ip'] ? " and ip='$_POST[ip]' ":"";

}

$strsql="select * from zichan where 1=1 $strsql_add limit $query_start, $pagesize";

$result=mysql_db_query($mysql_database,$strsql,$conn);

$row=mysql_fetch_row($result);

$nextpage_num = $pagenum++;

$lastpage_num = ceil(count($row)/$pagesize);

echo 'font face="verdana"';

echo 'table border="1" cellpadding="1" cellspacing="2"';

// 显示字段名称

echo "/btr/b";

for ($i=0; $imysql_num_fields($result); $i++)

{

echo 'td bgcolor="#00FF00"b'.

mysql_field_name($result, $i);

echo "/b/td/b";

}

echo "/tr/b";

// 定位到第一条记录

mysql_data_seek($result, 0);

// 循环取出记录

while ($row=mysql_fetch_row($result))

{

echo "tr/b";

for ($i=0; $imysql_num_fields($result); $i++ )

{

echo 'td bgcolor="#00FF00"';

echo $row[$i];

echo '/td';

}

echo 'tda href=\'xiugai.php?id='.$row[0].'\'修改/a';

echo '/td';

echo 'tda href="javascript:void(0)" onclick="if(window.confirm(\'确认删除?\')){window.location.href=\'del.php?id='.$row[0].'\'}"删除/a';

echo '/td';

echo "/tr/b";

}

echo "/table/b";

echo "/font";

// 释放资源

mysql_free_result($result);

// 关闭连接

mysql_close($conn);

?

html页面要增加的参数:

首页 增加 pagenum=0 或者 不加

下一页 pagenum= $nextpage_num

尾页 pagenum= $lastpage_num

php分页功能怎么实现

php本身是没有分页概念的,分页是URL传参,然后通过mysql查询语句到数据库获取数据,然后实现的分页,url上的参数,通过PHP的$_GET都是可以获取到的。

现在市面上的PHP框架基本都有PHP分页类,参照文档直接调用就好了,如果想看实现过程,可以去下载一个TP框架,然后打开里面的分页类查看里面的源代码。

PHP中查找数据库的数据然后在php页面分页显示,只能显示第一页的数据

你的页面跳转, 要把原来有的get参数一同传递下去!

因为, 如果你第一页就是根据相关get参数查询的数据库, 而你在下一页没有提供这个参数, 当然会查询不到!

get参数是在当前页面有效的, 一般, get参数是url提供, 你url有就有, 没有就没有, 不是你提供一次, 人家就会给你保存一辈子!

例外, 你这个php文件, 功能其实很简单对吧?但你有没有觉得, 代码密密麻麻呢?

如果让你写一个大型网站, 那你的代码岂不是要用东风牌大卡车来装呢?

怎么做php数据库调取数据分页显示,要php的

?php

include("connection.php");

$perNumber=10; //每页显示的记录数

$page=$_GET['page']; //获得当前的页面值

$count=mysql_query("select count(*) from user"); //获得记录总数

$rs=mysql_fetch_array($count);

$totalNumber=$rs[0];

$totalPage=ceil($totalNumber/$perNumber); //计算出总页数

if (!isset($page)) {

$page=1;

} //如果没有值,则赋值1

$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录

$result=mysql_query("select * from user limit $startCount,$perNumber"); //根据前面的计算出开始的记录和记录数

while ($row=mysql_fetch_array($result)) {

echo "user_id:".$row[0]."br";

echo "username:".$row[1]."br"; //显示数据库的内容

}

if ($page != 1) { //页数不等于1

?

a href="fenye.php?page=?php echo $page - 1;?"上一页/a !--显示上一页--

?php

}

for ($i=1;$i=$totalPage;$i++) { //循环显示出页面

?

a href="fenye.php?page=?php echo $i;?"?php echo $i ;?/a

?php

}

if ($page$totalPage) { //如果page小于总页数,显示下一页链接

?

a href="fenye.php?page=?php echo $page + 1;?"下一页/a

?php

}

?

================================

这个是很简单的..而且也写了注释..不知道合不合你的意..


网站栏目:php数据库分页显示 php分页查询功能实现
本文路径:http://scyanting.com/article/doosecs.html