就是将查询出来的数据显示,要求每页显示5行,希望能有比较简单的分页函数
解决方案 »
- 修改xml文件值的问题
- linux下php如何连接远程的sql server2005数据库
- 点击按钮实现弹出网站,如何实现?
- phpMyadmin字符显示乱码!!!
- 如果获取用户IP,$_SERVER['REMOTE_ADDR']无法解决!
- 初学折提问,一小段代码,不知道为什么实现不了功能?
- 求PHP+javascript四级联动菜单(数据库版)源码(已有非数据库版的源码,怎样修改?),谢谢!
- php读取nfs的文件失败是怎么回事儿
- 请教:header()能否让页面定向在原来iframe中??
- 求csdn博客blog上的代码高亮插件
- 为什么不用addslashes 或者htmlspecialchars
- PHP在数据库插入记录后获取自增列ID
$coon = mysql_connect("localhost","root","admin");
mysql_select_db("book2");
mysql_query("set names 'gbk'");
$pagesize = 5; //分页的页数
$off = ($p-1)*$pagesize;//分页的起始
$p = $_GET["p"]?$_GET["p"]:1;
$s1 = mysql_query("select *from msg order by id limit $off,$pagesize");//分页查询SQL语句
while($row = mysql_fetch_array($s1)){
echo "<table border='1' align='center'><tr><td>";
echo "你的名字:".$row["name"]."<br />" ; //将结果输出
echo "</td></tr></table>";
}
//$count_result = mysql_query("select count(*) as count from msg");//查询有多少条数据
$a = mysql_num_rows(mysql_query("select *from msg")); //同上,查询有多少条数据
//$count_array = mysql_fetch_array($count_result);
$pagenum = ceil($a/$pagesize);
echo "当前一共有".$a."留言";
if($pagenum >1){
for($i=1;$i<=$pagenum;$i++){
if($i==$p){
echo "[".$i."]";
}else{
echo "<a href=?p=".$i.">". $i ."</a>";
}
}
}
?>
<?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
?>调用<?php
require('../lib/my_page_class.php');
// 方法调用:
$p = new show_page; //建立新对像
$p->file="list.php?l_id=".$l_id; //设置文件名,默认为当前页
$p->pvar="page"; //设置页面传递的参数,默认为p
$p->setvar(array("a" => '1', "b" => '2')); //设置要传递的参数,要注意的是此函数必须要在 set 前使用,否则变量传不过去
$p->set($m_page,$count,""); //设置相关参数,共三个,分别为'页面大小'、'总记录数'、'当前页(如果为空则自动读取GET变量)'
$p->output(0); //输出,为0时直接输出,否则返回一个字符串echo $p->limit(); //输出Limit子句。在sql语句中用法为 "SELECT * FROM TABLE LIMIT {$p->limit()}";
?>
$start = ($page -1)*$per_counts;
$sql = "select * from $table limit $start , $per_counts" ;
$query = mysql_query($sql);
$flag =0;
while($row=mysql_fetch_array($query)){
$html.="<form method='post' action='./common/modify.php'>";
for($i=0 ;$i<(count($row)/2);$i++){
$html.="<input name='$i' value='".$row[$i]."'/> ";
}
$html.="<input type='hidden' value='$page' name='page'/>
<input type='hidden' value='$per_counts' name='per_counts'/>
<input type='hidden' value='$table' name='table'/>
<input type='submit' value='修改'/>
<a href='./common/delete.php?table=$table&id=$row[id]&page=$page&per_counts=$per_counts'>删除</a></form>";
}
$sql1 = "select * from $table";
$query1= mysql_query($sql1);
while($row1=mysql_fetch_array($query1)){
$arrrr[] = $row1;
}
$total_page = (int)(count($arrrr)/$per_counts )+ 1;
$before_page =$page -1;
$next_page =$page + 1;
$html.="<br/><br/>
<a href='?table=$table&page=1&per_counts=$per_counts'><<</a>
<a href='?table=$table&page=$before_page&per_counts=$per_counts'><</a>
<a href='?table=$table&page=$next_page&per_counts=$per_counts'>></a>
<a href='?table=$table&page=$total_page&per_counts=$per_counts'>>></a> ";
return $html;
}
带删除和修改按钮,不需要的话,删掉即可,
很烂,呵呵
参考:
php分页的实现