Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Постраничный вывод...


Автор: Sufius 17.8.2004, 13:47
Ситуация в следующем...
Есть каталог товаров в мускуле...
( Артикул )( Наиманование )( Описание )( Цена )( Комментарии )
Вот проблема и описании...
Иногда это описание оч-чень большое...
(Это описание книг и их краткое содержание)
Можно ли разбить информацию из ячейки Описание на несколько страниц.
Делается это потому, что сайт статичного размера, и вся инфа не умещается...
Чего посоветуете...

Автор: Secandr 17.8.2004, 14:01
сходить в фак.

Автор: IZ@TOP 17.8.2004, 14:54
Secandr
Ты сообщение внимательней прочти. Он хочет сделать постраничный вывод не данных, а одного текста, то есть если текст больше определенного количества символов, обрезать, а вторую часть сделать доступной на второй странице (я такого в факе не видел wink.gif).
Предлагаю такой вариант:
1) Подсчитать кол. символов (http://php.net/strlen).
2) Если больше чем нам надо, разбить текст на предложения (http://php.net/explode).
3) В цикле прогнать предложения склеивая, пока не будет достигнута длинна большая чем нам нужно.
Пример:

Цитата
$MaxChar = 1024; // Максимальное количество символов в предложении.
if(strlen($Text) > $MaxChar) {
    $TextNew = ''; // Инициализируем переменную в которой будет разделенная часть текста.
    $Parts = explode('.', $Text); // Разбиваем полученный из базы текст на предложения.
    for($i = 0; $i < sizeof($Parts); $i++) {
        $TextNew .= $Parts[$i];
        if(strlen($TextNew) > $MaxChar) { break; } // Выход из цикла если длинна текста уже привысила предел.
    }
} else {
    // Вывести текст.
}


А дальше сам смотри как сделать так чтобы выводить по страницам. Я объяснил алгоритм разбиения текста на составляющие. Если что-то непонятно - обращайся.

Автор: Secandr 17.8.2004, 15:37
прошу прощения, не доглядел sad.gif
Добавлено @ 15:38
А такая тема уже обсуждалась.... правда давно smile.gif

Автор: IZ@TOP 17.8.2004, 20:33
Secandr
Будем считать что мы ее освежили. К томуже я ни чего подобного не видел. Если найдешь - запости сюда.

Автор: Secandr 17.8.2004, 20:47
Искать лень.
Проблема была в том, что нужно было статью разбивать на страницы и так что бы страница заканчивалась обзацем.

Было предложено два решения:
1. примерно так как предложил ты - пропускаем N символов, а потом ищем перевод строки
2. добавить в текст спец. разделители, которые будут обозначать начало следующей страницы, например <!--page-->

Ну и прочая экзотика: хранить вразных полях....

Автор: Sufius 19.8.2004, 23:11
Сенкс =)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)