голосование
PHP
Javascript
BASH
HTML
Firebird
Майнинг
Программы
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как реализовать поисковой запрос SQL по нескольким словам PHP

Часто нужно сделать поисковой запрос по нескольким словам в таблице PHP. У вас может быть несколько слов для поиска. Делать запрос для каждого слова - это утомительное занятие. Проще сделать скрипт, который автоматически добавляет условия в конец SQL-запроса. Тут несколько способов создания: циклы, функции explode и implode. Я выберу внутренние функции explode и implode. С ними проще достичь результата. Обратите внимание на то, что explode создаёт массив PHP.


// слова для поиска
$str = "php jquery git";
// разбор строки в массив
$arrWords = explode(" ", $str);
$str = " LIKE  '%";
$str .= implode("%' or text LIKE '%", $arrWords);
$str .= "%' ";
// собираем SQL-запрос
$sql = "SELECT p.id, p.url, p.title, p.category
FROM page p
WHERE text ".$str;
echo $sql;
/*вывод: SELECT p.id, p.url, p.title, p.category FROM page p 
WHERE text LIKE '%php%' or text LIKE '%jquery%' or text LIKE '%git%'*/

Обратите внимание что я использую or вместо and. Если использовать AND то у вас будет очень узкий поиск.

просмотры: 928, уровень: лёгкий уровень, рейтинг: 0, дата: 2017-01-30 18:31:24
проголосовать:

Комментарии:






поиск
сайты друзей
банеры
Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://www.2domains.ru домен RU домен RU всего за 99 рублей