Постраничная навигация php

Опубликовано 2012.02.06

Постраничная навигация используется наверное на каждом сайте. Она позволяет разбить большой массив данных на порции-то есть, например, разбить 1000 статей на 10 страниц по 100 штук на каждой. Польза от этого большая. При использовании постраничной навигации снижается нагрузка на базу данных, повышается удобство восприятия информации посетителем сайта-а посещаемость-это один из важнейших показателей эффективности сайта. В данной статье мы будем делать навигацию на стороне сервера.О том какие ещё бывают навигации и как сделать клиентскую постраничную навигацию вы можете посмотреть тут. Также можете почитать о подсчете количества строк в таблице MySql Ну и сам код постраничной навигации. Будем выводить по 10 записей на страницу. Подразумевается что соединение с БД уже установлено.
  1. $sum = 10; // число записей на странице
  2. $result = mysql_query("SELECT COUNT(*) AS a FROM `table name`"); // узнаём количество строк в таблице
  3. $arr = mysql_fetch_row($result); // возвращает неассоциативный массив
  4. $rec = $arr[0]; // общее число записей в таблице
  5.  
  6. // если страница существует, выводим её,иначе первую
  7. if(isset($_GET['p'])){
  8. $str = (int) $_GET['p'];
  9. }
  10. else{
  11. $str = 0;
  12. }
  13.  
  14. // получем номер начальной записи страницы
  15. $start = $str * $sum;
  16.  
  17. // запрос на извлечение данных по конкретной странице
  18. $r = mysql_query("SELECT * FROM `data` LIMIT $start, $sum");
  19. $n = mysql_num_rows($r); // возвращаем число строк результата запроса
  20.  
  21. // если страница не первая, выводим ссылку НАЗАД
  22. if ($str > 0)
  23. {
  24. $p = $str - 1;
  25. echo '<a href=viewpost.php?p=' . $p . '>НАЗАД</a>';
  26. }
  27.  
  28. $str++; // увеличиваем переменную $str на единицу;
  29. // выводим ссылку на следующие пять записей, если она есть,
  30. // то есть число записей, которые нужно вывести,
  31. // и смещение не превышает общего числа записей
  32.  
  33. if($start + $n < $rec) {
  34. echo '<a href=viewpost.php?p=' . $str . '>ДАЛЕЕ';
  35. }
  36.  
  37. // выводим записи
  38. for ($i = 0; $i < $n; $i++)
  39. {
  40. $myrow = mysql_fetch_array($r);
  41. printf ("<h1>%s<p>%s</p>", $myrow['title'], $myrow['description']);
  42. }
  43. </></>
Вот и всё.Подгоняйте данный скрипт под свой сайт и данные.