聘我网

新概念招聘3.0

分页当前页码问题

vote up0vote downstar

有个关于分页里面当前页码的问题 页面下面的页码1 2 3 4 5...全部是带超链接 比方说你点到第4面 下面还是显示1 2 3 4 5 全部带超链接,。。 怎么能像百度那样当你点到第4面得时候1 2 3 4 5 里面4的超链接取消 这是我的代码

<?php
include('config.php');
$per_page = 3;
$sql = "select * from messages";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
$pages = ceil($count/$per_page);

if($_GET){
$page=$_GET['page']; //page 为user点击要进去的页面
}
else{
$page = 1;
}


$start = ($page-1)*$per_page;
$sql = "select * from messages order by msg_id limit $start,$per_page";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
{
$msg_id=$row['msg_id'];
$message=$row['message'];
echo $message.'<br/>';
}
echo '<br/><br/><br/><br/>';
if($count % $per_page)
{
  $page_count= (int)($count / $per_page) + 1;
  for($page=1; $page<=$page_count; $page++)
  {
  echo '&nbsp;<a href=pagination_data.php?page='.$page.'>'.$page.'|</a>';
}
}
else{
  for($page=1; $page<=($count / $per_page); $page++)
  {
  echo '&nbsp;<a href=pagination_data.php?page='.$page.'>'.$page.'|</a>';
}
}
?>
 

1 个答复

vote up0vote downcheck

需要设置一个start参数,表示当前起始点,从而计算当前页数:

if(!isset($_GET['start']))
    $_GET['start'] = 0;

$per_page = 3;

//计算当前页码
$currentPage = ceil($_GET['start'] / $per_page);

//查询当前要显示的消息
$sql = "select * from messages limit $_GET[start],$per_page";
$result = mysql_query($sql);
$count = mysql_num_rows($result);

//总页数
$pages = ceil($count/$per_page);

//到这里,我们已经有了所有必须的参数:总页数和当前页数

for($i = max(1,$currentPage - ceil($per_page / 2)); $i <min($pages,$currentPage - ceil($per_page / 2)); $i++)
{
    if($i == $currentPage)
        echo '<span>' . $i . '</span>';
    else
        echo '<a href=pagination_data.php?page='. ($per_page * ($i - 1)).'>'.$i.'|</a>';
}

以上是大概的样子,更多的可以参照这个PHP分页

链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.