Intereting Posts
В чем разница между md5 (), crc32 () и sha1 () криптографией на PHP? Проверьте, перекрывается ли два раза Запланированный запрос на мой сайт от внешнего источника Какое время использовать real_escape_string? Когда данные поступают в POST или непосредственно перед составлением запроса? Процесс создания скриптов PHP facebook загрузить фото Каков наилучший способ включить таблицу стилей для определенной страницы? Regex для проверки того, имеет ли строка несогласованные скобки? Что такое подготовленные на стороне клиента заявления? Проблемы с устаревшим Symfony, медленно переносящий массивный проект как динамически проверять количество аргументов функции в php Рекурсивная функция для копирования многоуровневой папки не работает Как я могу узнать, изменит ли текущая транзакция какие-либо объекты с Doctrine 2? Как записать файл в PHP? PHP выполнить код на странице закрыть

mysql разделяет строку поиска пробелом и вставляет запрос

Поисковый запрос:

"product1 prod2 prod4"

Мне нужно сделать mysql

SELECT * FROM tableprod WHERE (prod LIKE '%product1%' AND prod LIKE '%prod2%' AND prod LIKE '%prod4%') 

используя mysql_real_escape_string для входного запроса …

Простое манипулирование строками:

 $terms = explode(' ', $search); $bits = array(); foreach ($terms as $term) { $bits[] = "prod LIKE '%".mysql_real_escape_string($term)."%'"; } $query = "SELECT * FROM tableprod WHERE (".implode(' AND ', $bits).")"; 

Если вы справитесь с ограничениями, вам лучше справиться с использованием индекса FULLTEXT, который избавит вас от необходимости разделить строку, плюс вы получите бонус, чтобы иметь возможность использовать базовые логические операторы для поиска (и /или нет)

без цикла (я всегда старался избегать циклов):

 $str = "product1 prod2 prod4"; $sql = "select * from tableprod where (prod like '%" . str_replace( ' ', '%\' AND prod LIKE \'%', $str ) . '%\')'; 

если возможно, у вас будет более одного пространства между элементами, используйте preg_replace