PHP中如何分页? you can use 'limit' in your mysql database 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参看一下这两个:http://www.pconline.com.cn/pcedu/empolder/wz/php/10305/164933.htmlhttp://www.pconline.com.cn/pcedu/empolder/wz/php/10209/88055.html 如果是作项目,可以用php 的adodb 的开发包,里面封装了很多常见的数据库,分页等等这些都比较简单了,而且如果升级不同数据库,这样代码不需要重写。多多交流 :) ! <?php/** * 一个用于Mysql数据库的分页类 * * @author Avenger <[email protected]> * @version 1.0 * @lastupdate 2003-04-08 11:11:33 * * * 使用实例: * $p = new show_page; //建立新对像 * $p->file="ttt.php"; //设置文件名,默认为当前页 * $p->pvar="pagecount"; //设置页面传递的参数,默认为p * $p->setvar(array("a" => '1', "b" => '2')); //设置要传递的参数,要注意的是此函数必须要在 set 前使用,否则变量传不过去 * $p->set(20,2000,1); //设置相关参数,共三个,分别为'页面大小'、'总记录数'、'当前页(如果为空则自动读取GET变量)' * $p->output(0); //输出,为0时直接输出,否则返回一个字符串 * echo $p->limit(); //输出Limit子句。在sql语句中用法为 "SELECT * FROM TABLE LIMIT {$p->limit()}"; * */class show_page { /** * 页面输出结果 * * @var string */ var $output; /** * 使用该类的文件,默认为 PHP_SELF * * @var string */ var $file; /** * 页数传递变量,默认为 'p' * * @var string */ var $pvar = "p"; /** * 页面大小 * * @var integer */ var $psize; /** * 当前页面 * * @var ingeger */ var $curr; /** * 要传递的变量数组 * * @var array */ var $varstr; /** * 总页数 * * @var integer */ var $tpage; /** * 分页设置 * * @access public * @param int $pagesize 页面大小 * @param int $total 总记录数 * @param int $current 当前页数,默认会自动读取 * @return void */ function set($pagesize=20,$total,$current=false) { global $HTTP_SERVER_VARS,$HTTP_GET_VARS; $this->tpage = ceil($total/$pagesize); if (!$current) {$current = $HTTP_GET_VARS[$this->pvar];} if ($current>$this->tpage) {$current = $this->tpage;} if ($current<1) {$current = 1;} $this->curr = $current; $this->psize = $pagesize; if (!$this->file) {$this->file = $HTTP_SERVER_VARS['PHP_SELF'];} if ($this->tpage > 1) { if ($current>10) { $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-10).($this->varstr).' title="前十页"><<<</a> '; } if ($current>1) { $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-1).($this->varstr).' title="前一页"><<</a> '; } $start = floor($current/10)*10; $end = $start+9; if ($start<1) {$start=1;} if ($end>$this->tpage) {$end=$this->tpage;} for ($i=$start; $i<=$end; $i++) { if ($current==$i) { $this->output.='<font color="red">'.$i.'</font> '; //输出当前页数 } else { $this->output.='<a href="'.$this->file.'?'.$this->pvar.'='.$i.$this->varstr.'">['.$i.']</a> '; //输出页数 } } if ($current<$this->tpage) { $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+1).($this->varstr).' title="下一页">>></a> '; } if ($this->tpage>10 && ($this->tpage-$current)>=10 ) { $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+10).($this->varstr).' title="下十页">>>></a>'; } } } /** * 要传递的变量设置 * * @access public * @param array $data 要传递的变量,用数组来表示,参见上面的例子 * @return void */ function setvar($data) { foreach ($data as $k=>$v) { $this->varstr.='&'.$k.'='.urlencode($v); } } /** * 分页结果输出 * * @access public * @param bool $return 为真时返回一个字符串,否则直接输出,默认直接输出 * @return string */ function output($return = false) { if ($return) { return $this->output; } else { echo $this->output; } } /** * 生成Limit语句 * * @access public * @return string */ function limit() { return (($this->curr-1)*$this->psize).','.$this->psize; }} //End Class?> 谢谢allkill,xizi2002(☆☆戏☆子☆☆) ,我用的是mysql! 很基础的问题,望解答 template 循环的数据重复出现怎么解决? FC5下php5不能链接MYSQL5 ●●●如何修改PHP.ini的SMTP端口?●●● 表单的问题 php+mysql ,时间字段time,如果取最近1星期的数据 依旧是Windows下php5下如何连接oracle数据库的问题 用form提交后,按IE的后退会出现网页过期页面。怎样解决这个问题? 数组操作问题 微信JS-SDK分享功能突然不好使了 有没有这样的源代码?上传一个文本文件到mysql数据表中!在线等待!! 求救!重定向和Session问题
http://www.pconline.com.cn/pcedu/empolder/wz/php/10305/164933.htmlhttp://www.pconline.com.cn/pcedu/empolder/wz/php/10209/88055.html
/**
* 一个用于Mysql数据库的分页类
*
* @author Avenger <[email protected]>
* @version 1.0
* @lastupdate 2003-04-08 11:11:33
*
*
* 使用实例:
* $p = new show_page; //建立新对像
* $p->file="ttt.php"; //设置文件名,默认为当前页
* $p->pvar="pagecount"; //设置页面传递的参数,默认为p
* $p->setvar(array("a" => '1', "b" => '2')); //设置要传递的参数,要注意的是此函数必须要在 set 前使用,否则变量传不过去
* $p->set(20,2000,1); //设置相关参数,共三个,分别为'页面大小'、'总记录数'、'当前页(如果为空则自动读取GET变量)'
* $p->output(0); //输出,为0时直接输出,否则返回一个字符串
* echo $p->limit(); //输出Limit子句。在sql语句中用法为 "SELECT * FROM TABLE LIMIT {$p->limit()}";
*
*/
class show_page { /**
* 页面输出结果
*
* @var string
*/
var $output; /**
* 使用该类的文件,默认为 PHP_SELF
*
* @var string
*/
var $file; /**
* 页数传递变量,默认为 'p'
*
* @var string
*/
var $pvar = "p"; /**
* 页面大小
*
* @var integer
*/
var $psize; /**
* 当前页面
*
* @var ingeger
*/
var $curr; /**
* 要传递的变量数组
*
* @var array
*/
var $varstr; /**
* 总页数
*
* @var integer
*/
var $tpage; /**
* 分页设置
*
* @access public
* @param int $pagesize 页面大小
* @param int $total 总记录数
* @param int $current 当前页数,默认会自动读取
* @return void
*/
function set($pagesize=20,$total,$current=false) {
global $HTTP_SERVER_VARS,$HTTP_GET_VARS; $this->tpage = ceil($total/$pagesize);
if (!$current) {$current = $HTTP_GET_VARS[$this->pvar];}
if ($current>$this->tpage) {$current = $this->tpage;}
if ($current<1) {$current = 1;} $this->curr = $current;
$this->psize = $pagesize; if (!$this->file) {$this->file = $HTTP_SERVER_VARS['PHP_SELF'];} if ($this->tpage > 1) {
if ($current>10) {
$this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-10).($this->varstr).' title="前十页"><<<</a> ';
}
if ($current>1) {
$this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-1).($this->varstr).' title="前一页"><<</a> ';
} $start = floor($current/10)*10;
$end = $start+9; if ($start<1) {$start=1;}
if ($end>$this->tpage) {$end=$this->tpage;} for ($i=$start; $i<=$end; $i++) {
if ($current==$i) {
$this->output.='<font color="red">'.$i.'</font> '; //输出当前页数
} else {
$this->output.='<a href="'.$this->file.'?'.$this->pvar.'='.$i.$this->varstr.'">['.$i.']</a> '; //输出页数
}
} if ($current<$this->tpage) {
$this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+1).($this->varstr).' title="下一页">>></a> ';
}
if ($this->tpage>10 && ($this->tpage-$current)>=10 ) {
$this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+10).($this->varstr).' title="下十页">>>></a>';
}
}
} /**
* 要传递的变量设置
*
* @access public
* @param array $data 要传递的变量,用数组来表示,参见上面的例子
* @return void
*/
function setvar($data) {
foreach ($data as $k=>$v) {
$this->varstr.='&'.$k.'='.urlencode($v);
}
} /**
* 分页结果输出
*
* @access public
* @param bool $return 为真时返回一个字符串,否则直接输出,默认直接输出
* @return string
*/
function output($return = false) {
if ($return) {
return $this->output;
} else {
echo $this->output;
}
} /**
* 生成Limit语句
*
* @access public
* @return string
*/
function limit() {
return (($this->curr-1)*$this->psize).','.$this->psize;
}} //End Class
?>