Разбитие значений по страницам!!!

Тема в разделе "Общие вопросы", создана пользователем Killer, 27 дек 2003.

Статус темы:
Закрыта.
  1. Killer

    Killer Гость

    Я взял пример с php.spb.ru он разбивает результаты по страницам, но мне бы хотелось узнать как сделать так чтобы если например результатов больше 10 страниц то выводилось вот так:
    1 2 3 4 5 6.......15

    Вот код который выводит по страницчно результаты:
    for ($i=1; $i<=floor($all/$len); $i++)

    echo "<a href=$PHP_SELF?z=search&all=$all&len=$len&".
    "start=".(($i-1)*$len)."&s=".urlencode($s).">$i </a> ";
     
  2. Belfisher

    Belfisher Гость

    Как на ПХП это будет делается не буду писать, но алгоритм в общем опишу. Для начала находишь кол-во страниц ($num_pages). Ну пусть у тебя их будет 100 для точностию. Что хочу сделать. пускай выводит страницы таким образом 1 2 3 4 5...100. ввожу переменную, кол-во показываемых ссылок на страницы (назовём её $num), в данном случае 5. Допустим я нахожусь на станице номер один ($number), тогда в выводе ссылок на страницы запускаю щётчик от 1 до $num. Определяю номер текущей страницы (в нашем случае 1) и пишу:
    Код (Text):
    if ($number!=1) {
    ?>
    <a href="pages.php?number=1">1</a>...
    <?
    }
    for ($i=1; $i<=$num; $i++) {
    ?>
    <a href="pages.php?number=<? echo $number+$i ?>"><? echo $number+$i ?></a>
    <?
    }
    ?>
    ...<a href="pages.php?number=<? echo $num_pages ?>"><? echo $num_pages ?></a>
    З.Ы. А вроде код не собирался писать, но пришлось :)
     
  3. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Killer
    Надо просто немного подумать. За тебя никто код писать не будет.
    Могу только подать идею.
    выводить надо первую страницу, потом сколько-то перед текушей, текушую, сколько-то после текущей, и последнюю.
    Текущая определяется в $start.
    Код (Text):
    // тут если надо - рисуем первую
    $pages = floor($all/$len);
    for($i=(($start-3)<0?0:*$start-3)); $i<=($start+3>$pages?$pages:$start+3); $i++){
    //
    }
    // тут если надо - рисуем последнюю
    КОд не запускал, это только идея

    Так что ищи на hotscripts.com и иже с ним. Ключевое слово: pagination.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей