php数据库获得数据分页,数据库的分页

用PHP从数据库里获得用户表后,怎样在每一页限制显示数量,然后分为不同页来显示的

一般都是用mysql 的limit 功能来实现分页。

成都创新互联公司专业为企业提供临桂网站建设、临桂做网站、临桂网站设计、临桂网站制作等企业网站建设、网页设计与制作、临桂企业网站模板建站服务,10年临桂做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

select * from table limit $begin,$end

$begin=0;

$end=10;

即显示开始0-10个数据。

怎么用PHP获取SQL表数据记录分页显示

?php

class Page {

private $total; //数据表中总记录数

private $listRows; //每页显示行数

private $limit;

private $uri;

private $pageNum; //页数

private $config=array('header'="个记录", "prev"="上一页", "next"="下一页", "first"="首 页", "last"="尾 页");

private $listNum=8;

/*

* $total 

* $listRows

*/

public function __construct($total, $listRows=10, $pa=""){

$this-total=$total;

$this-listRows=$listRows;

$this-uri=$this-getUri($pa);

$this-page=!empty($_GET["page"]) ? $_GET["page"] : 1;

$this-pageNum=ceil($this-total/$this-listRows);

$this-limit=$this-setLimit();

}

private function setLimit(){

return "Limit ".($this-page-1)*$this-listRows.", {$this-listRows}";

}

private function getUri($pa){

$url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], '?')?'':"?").$pa;

$parse=parse_url($url);

if(isset($parse["query"])){

parse_str($parse['query'],$params);

unset($params["page"]);

$url=$parse['path'].'?'.http_build_query($params);

}

return $url;

}

private function __get($args){

if($args=="limit")

return $this-limit;

else

return null;

}

private function start(){

if($this-total==0)

return 0;

else

return ($this-page-1)*$this-listRows+1;

}

private function end(){

return min($this-page*$this-listRows,$this-total);

}

private function first(){

if($this-page==1)

$html.='';

else

$html.="nbsp;nbsp;a href='javascript:setPage(\"{$this-uri}page=1\")'{$this-config["first"]}/anbsp;nbsp;";

return $html;

}

private function prev(){

if($this-page==1)

$html.='';

else

$html.="nbsp;nbsp;a href='javascript:setPage(\"{$this-uri}page=".($this-page-1)."\")'{$this-config["prev"]}/anbsp;nbsp;";

return $html;

}

private function pageList(){

$linkPage="";

$inum=floor($this-listNum/2);

for($i=$inum; $i=1; $i--){

$page=$this-page-$i;

if($page1)

continue;

$linkPage.="nbsp;a href='javascript:setPage(\"{$this-uri}page={$page}\")'{$page}/anbsp;";

}

$linkPage.="nbsp;{$this-page}nbsp;";

for($i=1; $i=$inum; $i++){

$page=$this-page+$i;

if($page=$this-pageNum)

$linkPage.="nbsp;a href='javascript:setPage(\"{$this-uri}page={$page}\")'{$page}/anbsp;";

else

break;

}

return $linkPage;

}

private function next(){

if($this-page==$this-pageNum)

$html.='';

else

$html.="nbsp;nbsp;a href='javascript:setPage(\"{$this-uri}page=".($this-page+1)."\")'{$this-config["next"]}/anbsp;nbsp;";

return $html;

}

private function last(){

if($this-page==$this-pageNum)

$html.='';

else

$html.="nbsp;nbsp;a href='javascript:setPage(\"{$this-uri}page=".($this-pageNum)."\")'{$this-config["last"]}/anbsp;nbsp;";

return $html;

}

private function goPage(){

return 'nbsp;nbsp;input type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value'.$this-pageNum.')?'.$this-pageNum.':this.value;setPage(\''.$this-uri.'page=\'+page+\'\')}" value="'.$this-page.'" style="width:25px"input type="button" value="GO" onclick="javascript:var page=(this.previousSibling.value'.$this-pageNum.')?'.$this-pageNum.':this.previousSibling.value;setPage(\''.$this-uri.'page=\'+page+\'\')"nbsp;nbsp;';

}

function fpage($display=array(0,1,2,3,4,5,6,7,8)){

$html[0]="nbsp;nbsp;共有b{$this-total}/b{$this-config["header"]}nbsp;nbsp;";

$html[1]="nbsp;nbsp;每页显示b".($this-end()-$this-start()+1)."/b条,本页b{$this-start()}-{$this-end()}/b条nbsp;nbsp;";

$html[2]="nbsp;nbsp;b{$this-page}/{$this-pageNum}/b页nbsp;nbsp;";

$html[3]=$this-first();

$html[4]=$this-prev();

$html[5]=$this-pageList();

$html[6]=$this-next();

$html[7]=$this-last();

$html[8]=$this-goPage();

$fpage='';

foreach($display as $index){

$fpage.=$html[$index];

}

return $fpage;

}

}

php mysql 怎样通过一次数据库查询获得所需分页数据

我觉得你可以这样。你可以在相关表中添加一个字段,比如limit,当然这个limit可以在配置文件中自由设置。然后可以这样 select count(id) as count,limit from tablename。

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

PHP代码如下:

/*

Author:默默

Date :2006-12-03

*/

$page=isset($_GET['page'])?intval($_GET['page']):1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。

$num=10; //每页显示10条数据

$db=mysql_connect("host","name","pass"); //创建数据库连接

$select=mysql_select_db("db",$db); //选择要操作的数据库

/*

首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是

总数据数除以每页显示的条数,有余进一。

也就是说10/3=3.3333=4 有余数就要进一。

*/

$total=mysql_num_rows(mysql_query("select id from table")); //查询数据的总数,id是数据库中的一个自动赋值的字段

$pagenum=ceil($total/$num); //获得总页数

//假如传入的页数参数大于总页数,则显示错误信息

If($page$pagenum || $page == 0){

Echo "Error : Can Not Found The page .";

Exit;

}

$offset=($page-1)*$num; //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。

$info=mysql_query("select name from table limit $offset,$num"); //获取相应页数所需要显示的数据,name是数据里的一个字段

While($it=mysql_fetch_array($info)){

Echo $it['name']."

";

} //显示数据

For($i=1;$i=$pagenum;$i++){

$show=($i!=$page)?"$i":"$i";

Echo $show." ";

}

/*显示分页信息,假如是当页则显示粗体的数字,其余的页数则为超连接,假如当前为第三页则显示如下

1 2 3 4 5 6

*/

?

php 查询数据库 分页

说明你点下一页的时候,查询条件没有获取到,下一页的是连接,所以接受数据参数的时候需要用$_GET 来接收,提交的时候也需要用get方法提交,这样才能保证参数不会丢失,点击下一页的时候限制条件保持一致

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

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

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

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

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

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


分享名称:php数据库获得数据分页,数据库的分页
URL分享:http://myzitong.com/article/hojsoo.html