if ($page== " ") { $page = 0; }
$count=10; //我现在暂时把记录总数写成10
$i=$count-1;
$msgnum=2;
$start = $page * $msgnum;
$end = $start + $msgnum;
if ($end > $i) $end=$i;
$totalpage=$i/$msgnum;
if ($page> $totalpage) { $page = $totalpage; }
if ($totalpage> round($totalpage)){$totalpage=round($totalpage)+1;}
else{$totalpage=round($totalpage);}
if ($page> 0){$row=$page*$msgnum + 1;}
if ($row== " ") {$row=1;}
?>

for ($i=$start; $i {
//这里是读取记录
}


$pagestr= " ";
if ($page> 0) $pagestr=$pagestr. " 上页 - ";
$pagestr=$pagestr. "[第 ";
for ($i=0; $i if ($i!=$page) {
$pagestr = $pagestr. " ".($i+1). " ";
} else{
$pagestr = $pagestr. " ".($i+1). " ";
}
}
$pagestr=$pagestr. " 页] ";
if ($page 下页 ";
echo "共 ".$totalpage. " 页 ".$pagestr;

现在我的分页别的都好用,只是在第一页就把所有数据全读了出来,怎么能把数据分段呢?我不能用limit,因为是对oracle操作,我只想用这个for ($i=$start; $i
------解决方案--------------------
用adodb把,十分方便
------解决方案--------------------
select * from (select rownum rm,s_QZJX_AZSQD.* from s_QZJX_AZSQD) where s_QZJX_AZSQD.ejdwbm= '$coid ' and s_QZJX_AZSQD.substr(sblbdm,1,2)= '$id ' and rm> =1 and rm ------解决方案--------------------
不通用的东西,不要用!

如果你的是MySQL,请使用传说中最前的分页功能——limit!!

如果是MSSQL活着其他的数据库,请使用镶嵌select语句分页!保证你用的爽!

嘿嘿,具体方法就是不公布,就是不公布~等我写完函数之后,一块贴出来吧
------解决方案--------------------
"第一页就把所有数据全读了出来 "你如果存的是数组计算开始结束的下标不就好了
------解决方案--------------------
$totalpage=$i/$msgnum;
if ($page> $totalpage) { $page = $totalpage; }
if ($totalpage> round($totalpage)){$totalpage=round($totalpage)+1;}
else{$totalpage=round($totalpage);}

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

这里也有问题$page 会出现小数,我会这么写:

$totalpage=ceil($i/$msgnum);
if ($page> $totalpage) { $page = $totalpage; }

==================================
大家看看小弟我的分页为什么不好用

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


相关标签: nbsp totalpage quot page pagestr

上一篇: php操作oracle查询时中文乱码,该怎么处理

下一篇: 数据结构与算法之递归算法 C++和PHP实现

推荐阅读