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 :: Почему "не работает" SUBSTRING

 PHP.SU

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


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

> Описание: Функция SUBSTRING не выводит значений
aldan8
Отправлено: 19 Июня, 2009 - 19:46:56
Post Id



Новичок


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


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




Есть таблица с столбцами : id, tema, text. Где id - integer, tema - char , text -text.
Создал запрос :
CODE (text):
скопировать код в буфер обмена
  1. $query = 'SELECT id, tema , SUBSTRING(text,0,350) FROM database123'

Поля text выводятся пустыми.
Через MySQL-monitor(командной строке) тоже не работает , только если 0 изменить на 1 (SELECT id, tema , SUBSTRING(text,1,350) FROM database123),тогда выводит, но только когда в командной строке.
Где на сайте прочитал что эта функция применима только к столбцам у которых тип char . Но это кажется относилось только SQL классическому синтаксису. Интересно к MySQL это тоже относиться ?, ведь известно что в MySQL не такой строгий синтаксис как в классическом SQL. Если это так то не подскажите , пожалуйста, функцию на подобие SUBSTRING , что бы работала с столбцами у которых тип text ?
 
 Top
RomAndry Администратор
Отправлено: 19 Июня, 2009 - 20:58:46
Post Id



Частый посетитель


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


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




1. Давно как то были траблы с SUBSTRING на разных серверах работало по разному.
2. попробуйте LEFT
 
My status
 Top
aldan8
Отправлено: 19 Июня, 2009 - 22:49:34
Post Id



Новичок


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


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




RomAndry пишет:
1. Давно как то были траблы с SUBSTRING на разных серверах работало по разному.
2. попробуйте LEFT


Спасибо , ЛЕФТ вроде нормально работает .
Но проблема в том , что MySQL вместо строк , например :
row['id'] , row['tema'] , row['text'] ,
возвращает :
row['id'] , row['tema'] , row[' LEFT(text, 350) '] .
Если использую SUBSTRING , то соответственно возвращает его .
Я как понял , это ,наверное, так и должно быть , но почему в учебниках или даже в документациях ничего не написано что надо использовать и псевдонимы ? Но это уже не к вам Подмигивание

(Отредактировано автором: 19 Июня, 2009 - 22:51:41)

 
 Top
RomAndry Администратор
Отправлено: 20 Июня, 2009 - 09:31:36
Post Id



Частый посетитель


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


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




Используйте алиасы.
И лучше обрамлять обратными кавычками поля и имена ``
CODE (text):
скопировать код в буфер обмена
  1.  
  2. SELECT `id`, `tema` , SUBSTRING(text,0,350) AS `text`
  3. FROM `database123`
  4.  
 
My status
 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