Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничная навигация
 
 автор: Roman (гостевая)   (28.07.2005 в 12:07)
 
 

Помогите! Как можно сделать в гостевой, чтоб на странице распологалось только 10 инф. и там чтоб имелось ссылки на сл.стр.Заранее спасибо!

   
 
 автор: cheops   (28.07.2005 в 12:08)   письмо автору
 
   для: Roman (гостевая)   (28.07.2005 в 12:07)
 

Так как вопрос о постраничной навигации возникает достаточно часто, Artem S. написал специальную статью, которая помещена в разделе "Статьи о PHP" http://www.softtime.ru/info/articlephp.php?id_article=33, кроме того, вы можете посмотреть тему по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3044, где приводится список тем с различными вариантами постраничной навигации.

   
 
 автор: antf   (28.07.2005 в 13:01)   письмо автору
 
   для: cheops   (28.07.2005 в 12:08)
 

Вот моя функция, которая создает постраничную навигацию типа Google.

Особенности:
1) Всегда отображаются 10 ссылок на страницы.
2) Ссылки на следующий, предыдущий, самый первый и самый последний элемент.

Функция создает саму навигацию. Вам нужно сделать:
1) Рассчитать все необходимые для функции параметры.
2) Выбрать нужные элементы из базы/текстового файла.

<?//создает постраничную навигацию
  //количество ссылок на страницы - 10
  //кол-во эл-тов слева от текущ. стр-цы - 4
  //кол-во эл-тов справа от текущ. стр-цы - 5
  //$pages_count - количество страниц
  //$url - полный url без переменной part (номер страницы)
  //$part - номер текущей страницы

  function create_navigation($pages_count, $url, $part)
  {

    if($pages_count == 1)
      return;

    $to_left = $part - 4;
    if($to_left < 1)
    {
      $end = 10;
      $begin = 1;
    }
    if($to_left >= 1)
    {
      $begin = $to_left;
      $end = $begin + 9;
      if($end > $pages_count)
      {
        $raznitsa = $end - $pages_count;
        $begin = $begin - $raznitsa + 1;
        if($begin < 1) $begin = 1;
        $end = $pages_count;
      }
    }

    $navig .=  "<table class='' cellspacing='0' cellpadding='0' border='0'>";
    $navig .=  "<tr>";
    //ссылка на первую страницу
    $navig .=   "<td class=''><a href='{$url}&part=1' title='первая страница'>&lt;&lt;</a></td>";
    //ссылка на предыдущую страницу
    if($part != 1)
      $navig .=  "<td class=''><a href='{$url}&part=".($part - 1)."' title='предыдущая страница'>&lt;</a></td>";
    else
      $navig .=   "<td class=''>&lt;</td>";
    //страницы
    for($i = $begin; $i <= $end; $i++)
         {
       if($i <= $pages_count)
       {
          if($i == $part)
            $navig .= "<td class=''> $i </td>";
          else
            $navig .= "<td class=''><a href='{$url}&part={$i}'> $i </a></td>";
        }
        else break;

         }
    //ссылка на предыдущую страницу
    if($part != $pages_count)
      $navig .=  "<td class=''><a href='{$url}&part=".($part + 1)."' title='следующая страница'>&gt;</a></td>";
    else
      $navig .=  "<td class=''>&gt;</td>";
    $navig .=  "<td class=''><a href='{$url}&part=".$pages_count."' title='последняя страница'>&gt;&gt;</a></td>";
    $navig .= "</tr>";
    $navig .= "</table>";
    return($navig);
  } ?>