Поисковый запрос:
"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