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

PHP-пагинатор

  • Kikky

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

    ?>


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


  • VaseninM

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

    у нас уж 00-04 :)

    тут сидят круглосуточно :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • mario

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

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

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

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

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


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

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

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

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

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

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

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