Помощь с нумерацией страниц - PullRequest
1 голос
/ 12 июля 2009

Как бы я сделал, чтобы выделить страницу, на которой я нахожусь, и сделать ее недоступной для клика? В ссылке внизу? Если я на странице 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 ]

4 голосов
/ 12 июля 2009

Простым способом было бы сделать что-то с эффектом:

for ($i = 1; $i <= $totalpages; $i++) {
 if($i == $page) {
  echo '<b>$i</b>'
 } else {
  echo '<a href='test.php?page=$i'>$i</a>';
 }
}
2 голосов
/ 12 июля 2009

Никакой реальной разницы в двух предыдущих реализациях (кроме использования тернарного оператора) нет, но вы можете добавить туда проверку ошибок, если ваша база данных не может возвращать страницы, так как она отключена или пользователь злонамеренно предоставляет что-то другое номер вашей переменной $ 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>";
}
1 голос
/ 12 июля 2009

Примерно так для вашего последнего цикла:

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

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...