Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Новостная лента для странички

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
aldan8
Отправлено: 27 Апреля, 2009 - 18:03:20
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2009  


Помог: 0 раз(а)




Есть БД с таблицей `статьи` и с столбцами (data, author , title , text) , где в 'text' находится текст статей ( от 2000 до 4000 символов примерно).
Надо , что бы скрипт подключался к БД и выводил все статьи со своими заглавием, автором, дате и т.д. и сортировал их по дате , как описано в уроке http://php.su/articles/?cat=phpdb&page=003 , но не весь текст статьи , а первые 50 символов (как во многих "интернет-газетах" и по клику загружался весь текст).
Проблема в том , что размер статей большой и не разумно (я так думаю) загружать весь текст статей из БД полностью и после обработать типа:
CODE (text):
скопировать код в буфер обмена
  1. $text = substr($text, 0, 50);
.
Вопрос:
Что нужно добавить в запрос чтобы БД выдавала бы из столбца text только 50 символов.
Я думаю, запрос должен выглядеть примерно так:
CODE (text):
скопировать код в буфер обмена
  1. select data, author, title, какаято_функция(text)
  2. from `статьи`
  3. order by data desc
  4. limit 0, 10 ;
 
 Top
valenok
Отправлено: 27 Апреля, 2009 - 19:25:20
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




зайти на mysql.com , найти в документации раздел строковых функций и ты сразу увидишь ту, которая тебе нужна.


-----
Truly yours, Sasha.
 
My status
 Top
Champion Супермодератор
Отправлено: 27 Апреля, 2009 - 19:37:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Почему-то подсказывает мне интуиция, что функция эта называется substring. Иду на Яндекс и вижу, что интуиция меня не подвела. Воспользуйся таким же алгоритмом рассуждений. Помогает почти всегда.
 
 Top
aldan8
Отправлено: 27 Апреля, 2009 - 19:43:55
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2009  


Помог: 0 раз(а)




да, согласен, что функция substring из mysql такая же как и из php substr . наверное, со временем, моя интуиция будет часто меня выручать . постараюсь по таким пустякам больше не обращаться на форум , только в крайних ситуациях .

(Отредактировано автором: 27 Апреля, 2009 - 19:59:48)

 
 Top
aldan8
Отправлено: 27 Апреля, 2009 - 23:40:55
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2009  


Помог: 0 раз(а)




Всё равно не получается.
функция : substring( string, pos, len) ,
где string - строка , pos - начальная позиция для считывания , len - кол-во символов.
Никак не смог применить эту функцию для своего запроса. Может я что то не правильно делаю , помогите пожалуйста Растерялся .
Составил такой запрос :
select data, author, substring( text , 0, 50) from `statia`;
в ответ получаю все эти столбцы + пустой столбец 'substring( text , 0, 50)'. Как я понял эта ф-я применима только для строк а не для столбцов в целом (как например ф-ии max(), count() и т.д.).
 
 Top
valenok
Отправлено: 28 Апреля, 2009 - 08:59:43
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




В твоем случае помогает составление запроса по правилам
(ключевые слова большими буквами, название таблиц и полей в апострофах и т.п.)
а так-же отладка своего запроса по инструкции http://phpfaq[dot]ru/debug

Кроме того, подскажу вам, что столбцом называются ряд вертикальных клеточек
и к клеточкам вообще ничего не применяется. Это такие рамочки просто.

А все таки если вы и дальше будете пренебрегать документациями, то сомневаюсь
что когда либо сможете написать что-то сами.
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr

(Отредактировано автором: 28 Апреля, 2009 - 09:00:31)



-----
Truly yours, Sasha.
 
My status
 Top
aldan8
Отправлено: 28 Апреля, 2009 - 13:34:50
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2009  


Помог: 0 раз(а)




ok, спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB