>백엔드 개발 >PHP 튜토리얼 >小弟我的分页,但是有异常,帮忙看看

小弟我的分页,但是有异常,帮忙看看

WBOY
WBOY원래의
2016-06-13 10:26:49978검색

我的分页,但是有错误,帮忙看看
这是我写的分页。但是有错误哦,比如我点末页后再点上一页,她还是在这一页,我点了首页再点下一页之后也是这个情况,求教!

$sql = "select * from pl_transaction_sun";
$query = mysql_query($sql);
$num = mysql_num_rows($query);

$pagesize = 3; 
$start = $_GET['start']; 
$flag = $_GET['flag']; 

//判断$start是否有值 
if ($start == null) { 
$start = 0; 


//判断$flag是否有值 
if ($flag == null) { 
$flag = 0; 


$sql1 = "select * from pl_transaction_sun limit $start, $pagesize";
$query1 = mysql_query($sql1);
//$num1 = mysql_num_rows($query1);

//判断标志位以确定$start的值 
if ($flag == 1 and $start+$pagesize $start = $start+$pagesize; 

if ($flag == 2 and $start+$pagesize > 0){ 
$start = $start-$pagesize; 
}

//最后一页START标识 
if (($num % $pagesize) != 0){ 
$lastpage = $num - ($num % $pagesize); 
}else{ 
$lastpage = $num - $pagesize; 

 
//判断页数以及当前页代码 
$pagenum = ceil($num / $pagesize); 

if ($start == 0){ 
$nowpage = 1; 
}else{ 
$nowpage = ($start / $pagesize) + 1; 

print ("

");
//分页显示判断部分 
if ($start == 0 and $pagesize print ("【首页】【上页】
【下页】
【末页】
"); 
}elseif ($start >= $num-$pagesize and $pagesize print ("
【首页】
【上页】
【下页】【末页】
"); 
}elseif ($pagesize >= $num ){ 
print ("【首页】【上页】【下页】【末页】"); 
}else{ 
print ("
【首页】
【上页】
【下页】
【末页】
"); 
}  


------解决方案--------------------
$query1 = mysql_query($sql1);
应在新的 $start 产生后执行

控制逻辑太复杂,只需传递一个期望显示的页号就可以了。建议调整一下

------解决方案--------------------
对于一个初学者,神马都是浮云……
------解决方案--------------------
分页其实很简单,定好一页显示多少条,然后计算所有条数
------解决方案--------------------
分页是web程序必须跨越的一个小沟。花点时间是值得的。

因为使用地方太多,所以需要封装成一个函数或类中的一个方法
PHP code
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;$perNum = 10;$offset = max((($page-1) * $perNum), 0);//用于sql$vpage = page($total,$page,$perNum, $url);<div class="clear">
                 
              
              
        
            </div>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.