两个设置分页的都出问题,想屎了...


<?php
$offset = isset($_GET['pid'])?intval($_GET['pid']):1;
if(!$offset) $offset = 1;
$perpage = 50;


$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');
$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0);

$sql = 'SELECT * FROM library.messages'." LIMIT $perpage OFFSET ".($offset-1);
$result = $db->query($sql);
if ($result)
{
foreach ($result->fetchAll() as $row)
{
echo "subject:    ".$row[5]."<br />";
}
}
else
{
$error = $db->errorInfo();
echo "error happened..".$error[2];
exit();
}

buildIndex($perpage, $total);//1,50,3500

/
function buildLink($index, $offset)
{
echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?pid = $offset'>$index</a>";
}


function buildIndex($perpage, $total)
{
$separator = '|';
//buildLink($offset==1, '<<Prev', '')

for ($start = 1, $end = $perpage; $end < $total; $start += $perpage, $end += $perpage)
{
echo $separator;
buildLink("$start-$end", $start);
}

$end = ($total > $start) ? "$total":"";
echo $separator;
buildLink("$start-$end", $start);
}




?>


另一种思路的.....

<?php
$offset = isset($_GET['pid'])?intval($_GET['pid']):1;
if(!$offset) $offset = 1;
$perpage = 50;


$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');
$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0);

$sql = 'SELECT * FROM library.messages LIMIT '. ($offset -1)*$perpage.", $perpage ";
$result = $db->query($sql);
if ($result)
{
foreach ($result->fetchAll() as $row)
{
echo "subject:    ".$row[5]."<br />";
}
}
else
{
$error = $db->errorInfo();
echo "error happened..".$error[2];
exit();
}

$numpage = $total%$perpage;
if($total%$perpage) $numpage++;
$cur = $offset;
if ($cur < $numpage)
{
echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?offset = ".($cur+1)."'> Next Page</a><br />";
}
if($cur > 0)
{
echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?offset =". ($cur-1)."'> Prev Page</a><br />";

}


?>


问题如下:每次点击下一页,或者上一页,显示的都是同样的内容,即首页内容。 当数据表的内容有3000行...是怎么回事啊?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值