Вы не зашли.
Главная » PHP » Вывод большого текста, теория
#1. JInn Off (2)
Участник
2009.06.14 16:04
Делаю библиотеку и столкнулся с тем, что не знаю как правильно вывести большой текст. Весь же выводить не будешь в одну страницу. Теоретически план созрел такой. Достаешь текст из базы, обрезаешь (substr а лучше даже mb_substr) до нужного количества символов, выводишь на экран. Если текст длиннее обрезанного, то создаем страницы и следующая страница уже будет с того места, где обрезали. Вроде как то так. Такой вывод это нормально или есть варианты получше? Мне не нравится что текст запрашивается полностью на каждой странице, это как бы не есть хорошо. Но других вариантов пока не вижу, слаб еще в пхп ( Смотрел MCH - библиотеку но там сплошной ООП (
Как все таки сложно быть ботом...
#2. Gemorroj Off (108)
Administrator
2009.06.14 17:05
нет там никакого ООП. Если файл достается из БД, то можно доставать лишь его часть. В MySQL есть функция substr, работает так же как и в PHP.
#3. JInn Off (2)
Участник
2009.06.14 19:07
У меня уже глюки какие то, вроде писал сообщение и нет его...
mch-lib\sys\libs вот здесь вроде классы лежат.

А вот эта функция SUBSTRING, да? Нашел только ее, но как то сухо объяснено. Не могу понять как запрос с ней сделать. Там
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
Насчет pos и len понятно, но че писать в str???
Вот пример
SELECT SUBSTRING('Quadratically',5,6);
Выдает  'ratica'
Вместо Quadratically должна стоять строка, но мне ее найти еще надо, мне прямо там написать WHERE условие? Скажем у меня запрос такой
mysql_query("SELECT * FROM `tabl` WHERE `id`=1 LIMIT 1");
И куда мне этот SUBSTRING вставлять и че писать вместо str? (((

В поиске везде одно и то же. На mysql.ru толком ничего не объяснено а php.su накрылся, либо накрыли...
Как все таки сложно быть ботом...
#4. Gemorroj Off (108)
Administrator
2009.06.14 20:08
вместо str ставь имя колонки строку в которой нужно обрезать
#5. JInn Off (2)
Участник
2009.06.15 05:05
Вот это рабочая строка:
$array=mysql_query("SELECT  `tema`,`new` FROM `news` WHERE `n_id`=7  LIMIT 1 ");

А вот вставляю substring
$array=mysql_query("SELECT  SUBSTRING(`new` FROM 7 FOR 200),`tema` FROM `news` WHERE `n_id`=7  LIMIT 1 ");
новость сразу пропадает, а тема показывается, причем только в этом варианте ошибки, связанной с запросом нет,  только такая:
Notice: Undefined index: new in T:\home\virtual\dvig.cms\news\new_c.php on line 23
это пишет, что я вывожу незапрошенное поле, во всех других вариантах которые пробовал выдавало:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

Нигде нет примера как использовать эту функцию, мучаюсь уже 3 часа и бесполезно
Добавлено спустя   4 минуты  42 секунды:
$array=mysql_query("SELECT  SUBSTRING(`new`,7,200),`tema` FROM `news` WHERE `n_id`=7  LIMIT 1 ");
Такой вариант тоже пробовал
Как все таки сложно быть ботом...
#6. JInn Off (2)
Участник
2009.06.15 05:05
$array=mysql_query("SELECT  SUBSTRING(`new` FROM 7 FOR 200) AS `new`,`tema` FROM `news` WHERE `n_id`=7  LIMIT 1 ");

Нашел уже, надо добавить AS `new`
И ни в одном учебнике этого нет, ни на сайтах, где маны выложены... Бесят такие учебники вообще. Нашел на сайте где кто то разъяснял код рсс новостей, и выложил кусочек кода.
Gemorroj спасибо что подсказал про функцию )
Как все таки сложно быть ботом...
#7. JInn Off (2)
Участник
2009.06.16 06:06
Возникла проблема с mb_string  Когда выводится текст, то в конце и в начале иногда неправильно обрезает. Я использовал mb_substr Но ситуация не изменилась, хотя насколько я знаю эта функция должна нормально обрезать.
вот ссылка сразу на страницу с текстом и проблемкой
http://cms.jinn.su/biblio/text.php?id=2&str=1&page=3

А вот как в тексте mb_substr использовано
echo 'Текст: '.mb_substr(clean2($cat['text']),$st,$strok).'<br />';

$st - это с какого символа $strok - длина строки

Может пишу что-нибудь не так?
Как все таки сложно быть ботом...
#8. Chizh Off (2)
Участник
2009.06.16 06:06
нужно указать кодировку, в которой ты работаешь.
mb_internal_encoding('UTF-8'); - вроде так. можно еще хитаче это сделать
#9. JInn Off (2)
Участник
2009.06.16 09:09
Кодировку я указываю в начале страницы. Внутри функции еще можно, но так как кодировка указана, я этого не делал. По идее она должна принять ту кодировку которая в скрипте
Как все таки сложно быть ботом...
#10. Akdmeh Off (9)
Участник
2009.06.16 10:10
не по идее.
Указать кодировку нужно чётко в самой функции!
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
Страниц: 1 2 3 Все
Главная
WEB
PunBB Mod v0.6.2
0.015 s