ФорумПрограммированиеPHP для идиотов → PHP-пагинатор

PHP-пагинатор

  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz 29 сентября 2010 г. 13:44

    Нужен пагинатор для текста(чтобы было ограничение на определённое кол-во символов на страницу в статье, остальное же ушло на следующие страницы), в гугле в результате многочисленных поисков нашёл только для таблиц.Может у кого-то есть готовые решения?…или подскажите как переделать табличный пагинатор. Спасибо.
  • VaseninM

    Сообщения: 2417 Репутация: N Группа: Адекваты

    Spritz 29 сентября 2010 г. 13:47, спустя 3 минуты 42 секунды

    Kikky, у тебя есть какие то мысли?
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz 29 сентября 2010 г. 13:51, спустя 3 минуты 19 секунд

    Конечно есть, но я не могу их реализовать в коде.
  • VaseninM

    Сообщения: 2417 Репутация: N Группа: Адекваты

    Spritz 29 сентября 2010 г. 13:54, спустя 3 минуты 26 секунд

    Ну рассказывай. Заодно расскажи, что не можешь реалзовать конкретно.
  • mario

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 29 сентября 2010 г. 15:07, спустя 1 час 13 минут 6 секунд

    ну бери тупо высщитывай символы и делай пагинацию по анологии с "табличным" )
    откуда данные берутся? :)
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz 29 сентября 2010 г. 16:37, спустя 1 час 29 минут 39 секунд

    Навигация по номерам страниц не нужна, хватит кнопок "назад" и "далее".

    Взял ручку и листочек, составил алгоритм, как я его себе представляю:
    1. Делаю запрос в бд.
    2. Преобразую ряд результата запроса в ассоциативный массив.
    3. Задаю кол-во символов, которое должно быть на странице.
    4. Считаю кол-во символов в тексте.
    5. Считаю кол-во страниц для навигации.
    5. Делаю проверку кол-ва страниц, если больше 1, то п.6, иначе просто вывожу текст.
    6. Обрезаю текст от начала и до кол-ва символов, кот. должно быть на странице и вывожу его вместе с навигацией.


    вот что получается :

    <?php
    $query = mysql_query(&quot;select text from db where id=&#39;$id&#39; &quot;);
    $result = mysql_fetch_array($query);
    $chars_per_page = 500;
    $num_chars = strlen($result[&#39;text&#39;]);
    $num_pages = ceil($num_chars/$chars_per_page);
    if ($num_pages > 1) {
    echo &quot;Текст: &#39;.substr($result[&#39;text&#39;], 0, $chars_per_page).&#39; &quot;;
    echo &quot;<a href=&quot; &quot;>Далее</a>&quot;; // ????
    }
    else {
    echo &quot;Текст: &#39;.$result[&#39;text&#39;].&#39; &quot;;
    }

    ?>


    ….не пойму как реализовать ссылки на кнопки &quot;назад&quot; и &quot;далее&quot;.


  • VaseninM

    Сообщения: 2417 Репутация: N Группа: Адекваты

    Spritz 29 сентября 2010 г. 16:44, спустя 7 минут 24 секунды

    У тебя нормальный алгоритм. Делай index.php?page=1
    тогда $_GET[&#39;page&#39;] == 1. И выводи нужный тебе кусок текста.
    Если тебе не в универе лабу сдать, а действительно программирование интересно, то попробуй &quot;отшлифовать&quot; алгоритм. К примеру чтобы обрезалось не по буквам, а по слову. К примеру 500 символов и дать слово или даже предложене закончить.
    Ну нормальный у тебя алгоритм, и видно что работал. Нравятся мне такие люди.
  • mario

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 29 сентября 2010 г. 17:05, спустя 20 минут 59 секунд

    если текста не много, или много но хорошая кешовая система. То можно заюзать следующее
    $textPaged = [man]str_split[/man]($str, $charsPerPage);

    получим массив где размер массива = количеству страниц. Индекс массива является страницей. {+++15+++} а дальше по вашему алгоритму ))) {+++30+++}

    Ну нормальный у тебя алгоритм, и видно что работал. Нравятся мне такие люди.
    +1
    SpartakuS, а чего не плюсуешь? :) {+++41+++} Kikky, Вам этот пост нужно было сразу написать в первом посте, тогда бы все пошло бы быстрее ))) {+++40+++}
    то попробуй &quot;отшлифовать&quot; алгоритм.

    тоже за. И тогда мой вариант тут совершенно не к чему :) {+++94+++} если по словам делить. До будет уместна функция [man]wordwrap[/man] и [man]explode[/man].
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz 29 сентября 2010 г. 17:04, спустя 23 часа 58 минут 34 секунды

    Спасибо большое)…интересуюсь конечно не для лабы, завтра буду до ума доводить, у нас уж 00-04 :)
  • mario

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 29 сентября 2010 г. 17:06, спустя 2 минуты 1 секунду


    Спасибо большое)…интересуюсь конечно не для лабы, завтра буду до ума доводить, у нас уж 00-04 :)
    Потом покажи что получилось )))
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 29 сентября 2010 г. 17:07, спустя 1 минуту 10 секунд

    у нас уж 00-04 :)

    тут сидят круглосуточно :)
    adw/0
  • mario

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 29 сентября 2010 г. 17:19, спустя 12 минут 2 секунды

    24/7 - Лучшая круглосуточная поддержка на пiха.ру
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 30 сентября 2010 г. 0:07, спустя 6 часов 48 минут 10 секунд


    24/7 - Лучшая круглосуточная поддержка на пiха.ру
    платная
    Сапожник без сапог
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz 30 сентября 2010 г. 7:35, спустя 7 часов 27 минут 42 секунды

    Не могу выложить код, т.к. он обрывается перед первым знаком &quot;and&quot; = (
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2010 г. 7:39, спустя 4 минуты 18 секунд

Пожалуйста, авторизуйтесь, чтобы написать комментарий!