Пагинация в php и mysqlPhp

Кемеровские программисты php общаются здесь
Anonymous
Пагинация в php и mysql

Сообщение Anonymous »

Я написал код разбиения на страницы для своего сайта в php и mysql, но когда нет записи, он выдает ошибку. mysql_fetch_array() ожидает, что параметр 1 будет ресурсом.
В этом коде, когда таблица базы данных пуста, чем это будет Страница 0 из 0 Назад -1 0

и если запись есть в таблице базы данных, то она работает очень хорошо.
Мой код разбивки на страницы PHP выглядит следующим образом

Код: Выделить всё

 $sql = mysql_query("SELECT id, firstname, country FROM myTable ORDER BY id ASC");
$nr = mysql_num_rows($sql);
if (isset($_GET['pn'])) {
$pn = preg_replace('#[^0-9]#i', '', $_GET['pn']);
} else {
$pn = 1;
}
$itemsPerPage = 10;
$lastPage = ceil($nr / $itemsPerPage);
if ($pn < 1) { // If it is less than 1
$pn = 1; // force if to be 1
} else if ($pn > $lastPage) { // if it is greater than $lastpage
$pn = $lastPage; // force it to be $lastpage's value
}
$centerPages = "";
$sub1 = $pn - 1;
$sub2 = $pn - 2;
$add1 = $pn + 1;
$add2 = $pn + 2;
if ($pn == 1) {
$centerPages .= '  ' . $pn . '  ';
$centerPages .= '  ' .              $add1 . '  ';
} else if ($pn == $lastPage) {
$centerPages .= '  ' .       $sub1 . '  ';
$centerPages .= '  ' . $pn . '  ';
} else if ($pn > 2 && $pn < ($lastPage - 1)) {
$centerPages .= '  ' .  $sub2 . '  ';
$centerPages .= '  ' .  $sub1 . '  ';
$centerPages .= '  ' . $pn . '  ';
$centerPages .= '  ' .  $add1 . '  ';
$centerPages .= '  ' . $add2 . '  ';
} else if ($pn > 1 && $pn < $lastPage) {
$centerPages .= '  ' . $sub1 . '  ';
$centerPages .= '  ' . $pn . '  ';
$centerPages .= '  ' . $add1 . '  ';
}
$limit = 'LIMIT ' .($pn - 1) * $itemsPerPage .',' .$itemsPerPage;
$sql2 = mysql_query("SELECT id, firstname, country FROM myTable ORDER BY id ASC $limit");

if ($lastPage != "1"){
// This shows the user what page they are on, and the total number of pages
$paginationDisplay .= 'Page [b]' . $pn . '[/b] of ' . $lastPage. '        ';
// If we are not on page 1 we can place the Back button
if ($pn != 1) {
$previous = $pn - 1;
$paginationDisplay .=  '    Back ';
}
// Lay in the clickable numbers display here between the Back and Next links
$paginationDisplay .= '' . $centerPages . '';
// If we are not on the very last page we can place the Next button
if ($pn != $lastPage) {
$nextPage = $pn + 1;
$paginationDisplay .=  '    Next ';
}
}
$outputList = '';
while($row = mysql_fetch_array($sql2)){

$id = $row["id"];
$firstname = $row["firstname"];
$country = $row["country"];

$outputList .= '' . $firstname . '' . $country . ' ';

}

Total Items: 






Может ли кто-нибудь предложить хорошую нумерацию страниц со страницей 1 из 1 из 1?< /п>

Подробнее здесь: https://stackoverflow.com/questions/119 ... -and-mysql

Вернуться в «Php»