Форум → Программирование → PHP для идиотов → Вывод большого кол-ва текста из БД
Вывод большого кол-ва текста из БД
-
Здравствуйте, столкнулся с такой проблемой, необходимо в слой с фиксированной шириной и высотой выводить большое кол-во текста из БД. Возможно как нибудь текст извлекаемый из бд разбить на части которые будут влазить в заданный слой, а те части которые не будут помещаться, будут выводиться после нажатия на ссылку "читать далее". Посоветуйте пожалуйста, как можно решить такую проблему.
-
8 апреля 2011 г. 22:10, спустя 5 минут 1 секунду
onzone, тебе нужен пагинатор, я тут когда-то говнокодил, воспользуйся поиском по форуму :)Спустя 30 сек.или же можешь реализовать с помощью JQuery. -
8 апреля 2011 г. 22:43, спустя 32 минуты 44 секунды
Kikky, пагинатор не совсем то , что нужно, как я понимаю пагинатор работает с несколькими записями в БД подсчитывая их и развивая на страницы в моём же случае запись в БД одна с большим объёмом текста, тоесть как я понимаю сначала надо извлечь эту запись а потом извлечнный текст разбить на части, вот только я не могу придумать как это сделать =(. Насчёт JQuery хорошая идея , я тоже думал об этом только я не в курсен какой плагин можно использовать (если не трудно подскажи плз). -
8 апреля 2011 г. 23:04, спустя 21 минуту 6 секунд
onzone, есть разные пагинаторы, и такие как тебе нужен в том числе, попробуй сам написать, ребята на форуме тебе помогут.
Ну а на счет JQuery, то сначала нужно извлечь текст из БД, потом разбить на две части: 1 - которая сразу будет видна(задашь по кол-ву символов или предложений), 2 - всё остальное. А в JQuery используй SlideUp/SlideDown ну или Show/HIde, событие - клик по ссылке 'Читать далее' :) -
8 апреля 2011 г. 23:23, спустя 18 минут 58 секунд
Kikky, У меня насчёт php решения только 1 идея + она не универсальна, 1) извлечь текст с поля БД 2) посчитать кол-во строк символов в извлечённом тексте, после чего разбить на n частей. Но существует 2 проблема, допустим заказчик захочет изменить высоту или ширину блока и текст не будет вписываться в него красиво =(. Поэтому надо искать какое-то другое решение. -
8 апреля 2011 г. 23:36, спустя 13 минут 23 секунды
onzone, тогда будет проще решить задачу с помощью JS. -
9 апреля 2011 г. 1:25, спустя 1 час 48 минут 55 секунд
onzone, невозможно получить автоматом неизвестное заранее количество необходимого текста, ибо это все равно что попросить сшит тебе костюм по размеру на 45 лет, когда тебе только 15. -
9 апреля 2011 г. 12:47, спустя 11 часов 22 минуты 7 секунд
SELECT MID(mytext,0,150) FROM mytable
еще есть на подобии этого: SUBSTRING, SUBSTRING_INDEXСпустя 173 сек.строишь пагинацию, сначала узнаешь
потом задаешь берешь за основание кол-во символов, которое необходимо и делаешь также как и с LIMIT, но на JS такое будет намного удобнее даSELECT LENGTH(mytext)
Спустя 203 сек.можно как вариант создать временную таблицу в оперативной памяти (MERGE или как там) с индексом на текстовое поле и одной только записью - и тогда ебать эту таблицу как угодно, она любые издевки над текстом будет в считанные доли секунды производить -
9 апреля 2011 г. 17:08, спустя 4 часа 20 минут 33 секунды
Givi, как я понял делать такую штуку, уже заранее зная какого размера будет текстовое поле и какое кол-во текста оно будет в себя помещать.
У меня ваще была идея, извлечь текст с базы потом поделить его на n частей, после чего эти n частей поместить в массив и соотвественно вывести пагинатор =) Как говориться идея идти через Китай. fgets, спасибо за предложенные SQL решения попробую что-нить с ними похимичить. Знаю, что с JS всё намного проще, но в JS я дуб дубом, можно былобы это как-то реализовать при помощи связки JS+AJAX +PHP( был бы самый оптимальный вариант). Если ко знает подскажите, какой фреймворк легче всего юзать для решения этой проблемы*(и желательно какие методы). -
9 апреля 2011 г. 17:18, спустя 10 минут 6 секунд
кешируй в файловой системе записи. в сессии храни указатель - номер байта, где сейчас находишься читая эту запись…
Пожалуйста, авторизуйтесь, чтобы написать комментарий!