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 :: Как создать запрос в Mysql чтобы like искал по всем полям

 PHP.SU

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


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

> Без описания
Zalupoper
Отправлено: 27 Октября, 2008 - 20:03:59
Post Id


Новичок


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


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




Приветствую всех!

У меня имеется такой запрос к БД :

$query="SELECT * FROM item WHERE ".$searchtype." like '%".$searchterm."%'";

где ".$searchtype." option value в форме, а '%".$searchterm."%' ключевое слово поиска.

Ситуация в том что когда я выбираю вкладку " All" т.е. хочу искать по всем полям, не получается написать запрос.

Вот буду благодарен если кто навеет мысль, может тут условие писать какое надо?
 
 Top
IOpeH
Отправлено: 27 Октября, 2008 - 22:09:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


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




просто составь запрос так что бы проверялось каждое поле таблицы на одно и то же значение, для этого используй оператор OR


сам решал подобную задачу таким же способом

если есть решения проще, буду рад узнать о них
 
 Top
Zalupoper
Отправлено: 27 Октября, 2008 - 22:48:03
Post Id


Новичок


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


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




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

вот к примеру:

$query="SELECT * FROM item WHERE year OR type like '%".$searchterm."%'";

выводит всю таблицу что бы не вбил в поиск.
 
 Top
IOpeH
Отправлено: 28 Октября, 2008 - 01:53:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


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




это потому что надо писать сравнение для каждого поля + по мне дак "%" совершенно не нужно

$query='SELECT * FROM item WHERE year LIKE "'.$searchterm.'" OR type LIKE "'.$searchterm.'"';
 
 Top
Champion Супермодератор
Отправлено: 28 Октября, 2008 - 08:34:17
Post Id



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


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


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




Zalupoper, это ж не английский человеческий язык)) Запросы надо правильно формировать
 
 Top
Zalupoper
Отправлено: 28 Октября, 2008 - 09:10:25
Post Id


Новичок


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


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




Спасибо, действительно так работает!
 
 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