帮助分页

时间:2009-07-12 04:57:31

标签: php sql mysql

如何将我正在使用的页面加粗并使其无法点击?在底部的链接?如果我在第3页上,例如:1 2 3 4

这个脚本:

// how many rows to show per page 
$max = 15;

$page = $_GET['page'];

// if $page is empty, set page number to 1
if (empty($page)) $page = 1;

$limit = ($page - 1) * $max; 

$sql = mysql_query("SELECT * FROM threads LIMIT $limit, $max");

$totalres = mysql_result(mysql_query("SELECT COUNT(id) AS tot FROM threads"),0);    

// calculate
$totalpages = ceil($totalres / $max); 

while ($thread = mysql_fetch_assoc($sql)) {
 echo $thread['title'];
}

for ($i = 1; $i <= $totalpages; $i++) { 

 echo '<a href='test.php?page=$i'>$i</a>';

}

提前致谢

3 个答案:

答案 0 :(得分:4)

简单的方法是做一些事情:

for ($i = 1; $i <= $totalpages; $i++) {
 if($i == $page) {
  echo '<b>$i</b>'
 } else {
  echo '<a href='test.php?page=$i'>$i</a>';
 }
}

答案 1 :(得分:2)

前两个实现(除了使用三元运算符之外)没有真正的区别,但您可能希望在其中添加一些错误检查,因为您的数据库在离线时无法返回页面,或者用户恶意提供除$ page变量的数字。在这里,如果页面为空白或不是数字,我将页码设置为零:

$page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? $_GET['page'] : 0;

最后一个循环可以写成:

for ($i = 1; $i <= $totalpages; $i++) {
  echo ($i == $page) ? "<b>" . $i . "</b>" : "<a href='test.php?page=" . $i . ">" . $i . "</a>";
}

答案 2 :(得分:1)

最后一个循环中有这样的事情:

for ($i = 1; $i <= $totalpages; $i++) { 

  if ($i == $page) {
    echo '<b>$i</b>';
  } else {
    echo '<a href='test.php?page=$i'>$i</a>';
  }

}