![]() |
Вывод информации из MySQL
Всех приветствую.
Есть база MySQL, таблица и ячейка в которой находится большой текс. Подскажите пожалуйста как вывести от туда информацию допустим на 20 строк, а остальное сформировать на 2 страницу и так далее. Есть похожая тема но там описывается как сделать максимальное количество символов на странице, а хотелось бы именно ограничение по строкам. http://forum.oszone.net/post-807556.html |
SELECT * FROM `my_table` ORDER BY `id` LIMIT 0, 20;
SELECT * FROM `my_table` ORDRE BY `id` LIMIT 20, 20; и т.д. В LIMIT'е сначала с какой строки, а потом - сколько строк. |
К сожалению не работает.
Для эксперимента в нес в ячейку текст 1<br>2<br>3<br>4<br>5 и какой бы LIMIT не выставлял, текс выводится полностью |
Ааа... Я не правильно прочитал задание.
Вроде бы MySQL не может делить текст на строки. Как насчёт php-функции array explode (string separator, string string [, int limit]) Разбиваем возвращаемое значение на строки и выводим строки перебором нужных значений массива. |
Но за этот пример тоже спасибо, я заодно и в нем разобрался )
А эта функция по другому работает это когда в базе не сколько строк table id text 1 1-text 2 2-text 3 3-text 4 4-text 5 5text $content = mysql_query ("SELECT * FROM content LIMIT 0, 2;", $db); $contenT = mysql_fetch_array ($content); do { echo "<br>".$content['text']; } while ($txT = mysql_fetch_array ($txt)); вот в таком случае выведется из базы 2 строчки 1-text 2-text |
А вот explode() я чего то не догнал, он же получается. что каждое слово помещает в массив, тем самым мы можем ограничить максиму выводимых слов, а слова могут быть разной длины.
Просто в чем дело, есть сайт где ограничена длина и поэтому информация должна разбиваться на несколько страниц. |
Почему обязательно слово?
PHP код:
PHP код:
Можно разбить по предложениям ( explode(". ", $str); ), потом в цикле добавлять по одному предложению, пока суммарная длина текста не достигнет определённой длины. Или вообще в сам текст вставить разделители типа {{PAGE}} в нужных местах и потом по ним разбивать. |
А можно задать максимальную длину строки, допустим width 300 и разбить это опять же на какое то количество строк?
Не хотелось бы делать какую-то определенную привязку, потому-то делаю не для себя, а для человека который даже от HTML очень далек. explode("\n", $str); а какие еще ключи бывают(\n)? |
Цитата:
Выделить часть строки так: $str = substr($str, 0, 300); Соответственно где-нибудь в середине - $str = substr($str, 3600, 300); Цитата:
\n - знак новой строки \t - знак табуляции \r - перевод строки ( \r\n обычно объединяются) Можно искать конец предложения регулярным выражением, например, но здесь я не смогу помочь :) Самый простой способ - по точке с пробелом. |
Спасибо большое за помощь Coutty.
И так после долгих мучение я смог вывести из MySQL определенное колличество строк на основе кода от chirs Код:
$text = 'Первый пример текста. Второй пример текста. Третий пример текста. Четвертый пример текста.'; PHP код:
Поэтому я сделал так PHP код:
Теперь просто будет немного ручного труда, придется в ручную подбирать колличество строк передвигая метки {{PAGE}}. |
Точно работает? :)
Остался непонятным вопрос - как всё-таки рссставил {{PAGE}}. Как вариант может воспользоватся комментарием в HTML? <!-- --> |
Точно работает :) Уже использую.
{{PAGE}} расставляешь методом подбора, смотришь если текс выходит за границы поднимаешь {{PAGE}} выше. Не множко кропотливая работенка если большой текс, но зато работает. Главное что и пользователь сайта понял, вроде. В принципе и <!-- --> можно использовать, покрайней мере PHPBB такой способ используют. А так в принципе все что душе угодно можно туда подставлять, главное чтоб в последствии заполнения сайта не попало такая же запись, а то долго будешь искать где же у тя косяк. |
Аааа, а я подумал ты расставляешь метки программно. Наверно всё-таки не пользователь сайта, а владелец? Ну это не важно.
|
Время: 10:08. |
Время: 10:08.
© OSzone.net 2001-