请教PHP分页的问题

作者&投稿:潭寿 (若有异议请与网页底部的电邮联系)
php分页请教~

你这两句的意思是:
如果$amount不是$page_size的整数倍,那么$page_count的值就设置为$amount/$page_size的整数部分+1。

程序写得很怪,应该用下面的一个语句实现:
$page_count=ceil($amount/$page_size);

ceil函数就能实现如果不是刚好整除,就把商加1的功能。

//获取当前页数
if(isset($_GET['page'])){
$page = intval($_GET['page']);
}
else {
$page=1;
}
$PageSize = 1; //每页的记录数量
// 获取总数量
$sql = "select count(*) from blog";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$amount = $row[0];
$PageCount = ceil($amount/$PageSize);//总页数=总数量除以每页数量 如果有小树,则进位
if($Page>$PageCount|$page==0){// 如果当前页数大于总页数
echo "不能发现此页!";
exit();
}

//翻页链接
$PageOut = '';
if($page==1){//如果页数只有一页
$PageOut .= '第一页|上一页';
}
else{
$PageOut .= '第一页& lt;/a>|上一页|';
}
if($page==$PageCount||$PageCount==0){//如果当前页等于总也数
$PageOut .= '下一页|尾页';
}
else{
$PageOut .= '下一页|尾页';
}
//获取数据
if($amount){
$sql="select * from blog limit ".($page-1)*($PageSize).",$PageSize";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){//此段代码只是示例
$blogs[] = array('bid'=>$row['bid'],'title'=>$row['title']);
foreach ($blogs as $blog){
$title=$blog['title'];
}
$output = "删除".
"编辑".
"查看";
include("template/default/blog.tpl.php");
echo $PageOut;
}
for($i=1;$i<=$PageCount;$i++){//数字分页
$Pageshow = ($i!=$page)?"$i":"$i";
echo $PageShow;
}
echo $amount.'条记录,每页'.$PageSize.'条,共'.$PageCount.'页';
}

这是摘自你的代码末尾的:
$result=mysql_query("SELECT * FROM `test`");
$total=mysql_num_rows($result);
//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。
_PAGEFT($total,5);
echo $pagenav;
?>
//============这是显示新闻的代码=============
<?php
$result=mysql_query("SELECT * FROM `news` limit $firstcount,$displaypg ");
while($row=mysql_fetch_array($result)){
echo "<hr><b>".$row[title]." | ".$row[keyword];
}
?>
================================
改成:
$result=mysql_query("SELECT * FROM `news` limit $firstcount,$displaypg ");
while($row=mysql_fetch_array($result)){
echo "<hr><b>".$row[title]." | ".$row[keyword];
}
$result=mysql_query("SELECT * FROM `test`");
$total=mysql_num_rows($result);
//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。
_PAGEFT($total,5);
echo $pagenav;
?>
================================

<?php
/*
作者:遥远的期待
QQ:15624575
主页:
使用方法:参数1:当前页数,参数2:每页显示数据条数,参数三:分页sql;参数四:查询当前条件下记录总数sql,参数5:表单提交的参数,字符串形式,默认为空
*/
class page{
//动态设置分页数目
public function index($page,$page_size,$sql,$sql_total,$param_str=""){
$off=($page-1)*$page_size;
$off_size=$page*$page_size;
$total_all=mysql_num_rows(mysql_query($sql_total));
$page_count=ceil($total_all/$page_size);
$param_str=trim($param_str);//去掉参数两端空格
if($page<=$page_count&&$page+5<=$page_count&&$page-4>0){
$total = $page+5;
$n = $page-4;
}elseif($page<=$page_count&&$page+5>$page_count&&$page-4>0){//往后自动翻页超出界限
$total = $page_count;
if($total-9>0){
$n = $total-9;
}else{
$n = 1;
}
}elseif($page<=$page_count&&$page+5>$page_count&&$page-4<=0){//往后自动翻页超出界限
$total = $page_count;
$n = 1;
}elseif($page<=$page_count&&$page+5<=$page_count&&$page-10<=0&&$page_count>=10){//往前自动翻页超出界限
$total = 10;
$n = 1;
}elseif($page<=$page_count&&$page+5<=$page_count&&$page-10<=0&&$page_count<=10){//往前自动翻页超出界限
$total = $page_count;
$n = 1;
}elseif($page_count=="1"){
$total = 1;
$n = 1;
}elseif($page==1&&$page<$page_count){
$total = 10;
$n = 1;
}
//动态设置分页数目完毕
foreach ($_GET as $key=>$value){
if("$key"!="page"){
$param[$key] = $value;
}
}

if(count($param)){
foreach ($param as $key=>$value){
$str.=$key."=".$value."&";
}
$str=substr($str,0,-1);
$url = "".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?".$str;
}elseif($param_str){
$url = "".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?".$param_str;
}else{
$url = "".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
}

//分页开始

if($str){//如果url带参数
$page_arr[]="<a href='".$_SERVER['SCRIPT_NAME']."?$str'>首页</a>";
if($page>1)$page_arr[] ="<a href='$url&page=".($page-1)."'>上一页</a>";
if($page_count>1){
for($n;$n<=$total;$n++){
if($page==$n){
$page_arr[] = "<a href='$url&page=$n'><span id='link_background'>$n </span></a>";
}else{
$page_arr[] = "<a href='$url&page=$n'>[$n] </a>";
}
}
}
if($page<$page_count&&$page_count>1)$page_arr[] ="<a href='$url'>下一页</a>";
}elseif($param_str){//如果有提交的参数
$page_arr[]="<a href='".$_SERVER['SCRIPT_NAME']."'>首页</a>";
if($page>1)$page_arr[] ="<a href='$url&page=".($page-1)."'>上一页</a>";
if($page_count>1){
for($n;$n<=$total;$n++){
if($page==$n){
$page_arr[] = "<a href='$url&page=$n'><span id='link_background'>$n </span></a>";
}else{
$page_arr[] = "<a href='$url&page=$n'>[$n] </a>";
}
}
}
if($page<$page_count&&$page_count>1)$page_arr[] ="<a href='$url&page=".($page+1)."'>下一页</a>";
}else{//如果url不带参数
$page_arr[]="<a href='".$_SERVER['SCRIPT_NAME']."'>首页</a>";
if($page>1)$page_arr[] ="<a href='$url?page=".($page-1)."'>上一页</a>";
if($page_count>1){
for($n;$n<=$total;$n++){
if($page==$n){
$page_arr[] = "<a href='$url?page=$n'><span id='link_background'>$n </span></a>";
}else{
$page_arr[] = "<a href='$url?page=$n'>[$n] </a>";
}
}
}
if($page<$page_count&&$page_count>1)$page_arr[] ="<a href='$url?page=".($page+1)."'>下一页</a>";
}

return $page_arr;
//分页结束
}

}
//调用举例
include("page.class.php");
$page_nvi=new page();
$page=empty($_REQUEST['page'])?1:$_REQUEST['page'];
$sql_page="SELECT * FROM `product` LIMIT $off , $page_size ";
$sql_total="SELECT * FROM `product` ";
$key=$_REQUEST['key'];
$page_arr=$page_nvi->index($page,'3',$sql_page,$sql_total,'key='.$key);
foreach ($page_arr as $value){
echo $value;
}
?>
<form method="POST" action="page.php">
<input name="key" value="2">
<input type="submit" value="搜索">
</form>


用thinkphp3.2.3做同一页面两个分页时遇到的问题
给你一个分页函数 看下 他翻页的关键词是 $_get['p'] 这个参数 你没改 那就是谁先获取到 谁就翻页了 注意修改翻页页码参数p function page($model,$map=array(),$order='',$field=array()){if(is_string($model)){$model = M($model);}$limit=$_REQUEST['r']?$_...

thinkphp分页时 怎么取得 上一页下一页的传递变量 就是我想不用原来的...
public function index() {\/\/把图标改一下样式就可以了 $user = M('User'); import('ORG.Util.Page'); $count = $user->count(); $listRows = 5; $page = new Page($count, $listRows); $list = $user->limit("{$page->firstRow},{$page->listRows}")->s...

文章内容太长在php中如何做分页
在编辑器中插入分页符号 例如 ##分页 使用PHP 的explode方法 分割 pages = explode("##分页##",$html);获得总页数 count=count($pages);获取第一页 html = $pages[0];

php分页中,如何使修改后跳转到的页面还是停留在此页面,而不是跑到分...
他跳哪里去还是得你控制啊。你不要留空,留空可能就是跳到第一页去,你跳转时记录,并传递给服务器是第几页就行。post和get都行。

thinkphp 分页查询 只能显示第一页,点击第二页就什么也没有,跳转到sear...
你这个主要是靠的post来传值的吧,而分页是a标签,没办法传个post数据过去,这样的话$searchtext就没值,那么判断$count肯定会到else那里。

用PHP如何实现分页并能够实现上一页,下一页,跳转到()页的功能?
分页示例(php <?php pagesize=10; \/\/设定每一页显示的记录数 conn=mysql_connect("localhost","root","jrq");mysql_select_db("sj",$conn);rs = mysql_query( "select * from `dw_newsdata`",$conn); \/\/这里有第二个可选参数,指定打开的连接 \/\/---\/\/ \/...

phpweb单页如何分页php怎么实现分页
如何实现php分页功能?PHP本身没有分页的概念。分页是指url传递参数,然后通过mysql查询语句从数据库获取数据,然后实现分页。URL上的参数可以通过PHP的$_GET获得。现在市面上的PHP框架基本上都有PHP分页类。参考文档直接给他们打电话就行了。如果想看实现过程,可以下载一个TP框架,然后打开里面的分页类...

在thinkphp中我设置了分页的格式,(上一页,下一页等)但...
你把$show这个变量dump一下看看是不是没有发生变化,如果发生变化了,就是缓存的问题,清除一下缓存,如果数据没有变化,那就是调用分页类的时候,一些数据筛选的查询语句写的有问题,一行一行排除。

php 百万数据分表后怎么做分页
需要请求时携带页码参数,也就是客户端get或者post请求时携带的页码参数。剩余的功能与做页面时分页一样。如果需要数据库查询的话,limit实现。比如:query($sql);略

使用php分页技术后,点击第一页的按钮页面可顺利跳转,但是点击第二页或者...
看了这个代码,发现没有获取当前页码的代码,所以我改了一下,加了个获取当前页码的代码 function showpagelink($pagesize,$result,$currentpage,$pageleft,$pageright,$phpfile)\/\/分页显示函数,参数分别为每页记录数,数据集,当前页,左偏移页面数量,右偏移页面数量,链接页面{$totalpage=ceil($total...

会泽县17642217301: PHP分页问题. 望大虾开示 -
包帘加味: 1、$_GET[page]从何而来.访问该页面的地址应该是形如$url?page=111的,$_GET表示的就是地址后面所带的变量名称和值,具体到$_GET[page]就是上面的111.2、逗号什么意思.其实这里的逗号并不是在这里立即用到的东西,真正用它...

会泽县17642217301: php中怎么分页 -
包帘加味: <html> <head> <title>分页显示</title> </head> <script language="javascript"> function confirmDel() { var confirm=window.confirm("您确定要删除吗?"); if(confirm) return true; else return false; } </script> <body bgcolor="cce8cf"> <...

会泽县17642217301: php分页怎么弄? -
包帘加味: 原理:1.设定每页显示数$num = 15;2.获取数据总数计算总页数3.通过get方法获取页码,无获取值页码为1,超过最大页数为最大页面数$page = $_GET['page'] ? $_GET['page'] : 1;4.通过页码来计算当前显示起始记录$start = $page*$num-1;5.通过sql语句查询 query("select * from tablename limit $start,$num"); 然后输出就行了 页面上可以循环输出1~总页数 这些数字来实现翻页,也可以用其他方法 比较方便的方法是,可以去找一个分页类

会泽县17642217301: php分页的问题,忘高手解答
包帘加味: 楼上正解 比如 href="?page=$page&数据库搜索字段=$杭州店&bumen=$bumen"

会泽县17642217301: 请教一个PHP分页中的问题, 希望大虾赐教. -
包帘加味: 就是这样,问号后面是参数.不用其他符号.

会泽县17642217301: php分页请教 -
包帘加味: 你这两句的意思是: 如果$amount不是$page_size的整数倍,那么$page_count的值就设置为$amount/$page_size的整数部分+1.程序写得很怪,应该用下面的一个语句实现: $page_count=ceil($amount/$page_size);ceil函数就能实现如果不是刚好整除,就把商加1的功能.

会泽县17642217301: php怎么做分页 -
包帘加味: /** * 获取分页的HTML内容 * @param integer $page 当前页 * @param integer $pages 总页数 * @param string $url 跳转url地址 最后的页数以 '&page=x' 追加在url后面 * * @return string HTML内容; */ public static function getPageHtml($page, $...

会泽县17642217301: php接口实现分页 怎么弄 -
包帘加味: 如果总共只有10条、20条,那么一般最佳办法是:全部都输出到页面上,可以没5条一个DIV,只显示其中一个,把其它的隐藏了,通过按钮点击显示不同的DIV出来.如果总共数据成千上万条,那么页面一次就只输出5条,通过给PHP一个参数显示第几页,每次从总数据清单里面不同的位置开始显示5条.

会泽县17642217301: PHP分页显示的问题 -
包帘加味:$sum = 50;总页数 $show = 5;要显示的连接数 $first = $_GET['page']; if (isset($_GET['page'])&&$_GET['page']!=1){ $last = $page - 1; echo "last";//上一页 } if (isset($_GET['page'])&&$_GET['page']>1){ echo "..."; } for ( $i = 0;$iif(isset($_...

会泽县17642217301: 请教:PHP一个页面两个分页,如何实现不互相影响.拜大神求答案. -
包帘加味: 1、使用AJAX来处理数据,可能数据处理起来比较麻烦;2、使用iframe来把两个分页部分分开;3、设置分页类有识别参数,(比如第一个分页参数为?page=1,另一个可以设置为?count=1),这样去区别两个参数就可以了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网