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

Как реализовать поисковой запрос 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 то у вас будет очень узкий поиск.

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

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






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