При поиске создается массив $keywords, куда помещаются обаботанные слова поискового запроса и делается выборка изделий из базы: Код (Text): SELECT * FROM items WHERE text LIKE '%".implode($keywords, "%' AND status='1' OR text LIKE '%")."%' AND status='1' OR title LIKE '%".implode($keywords, "%' AND status='1' OR title LIKE '%")."%' AND status='1' OR head_title LIKE '%".implode($keywords, "%' AND status='1' OR head_title LIKE '%")."%' AND status='1' OR url_title LIKE '%".implode($keywords, "%' AND status='1' OR url_title LIKE '%")."%' AND status='1' OR material LIKE '%".implode($keywords, "%' AND status='1' OR material LIKE '%")."%' AND status='1' OR meta_d LIKE '%".implode($keywords, "%' AND status='1' OR meta_d LIKE '%")."%' AND status='1' OR meta_k LIKE '%".implode($keywords, "%' AND status='1' OR meta_k LIKE '%")."%' AND status='1' Если искать по одному слову, то поиск работает нормально. При поиске по словосочетанию выбираются все записи, где встречается хотя бы одно слово из запроса. А необходимо, чтобы выбирались те записи, где встречаются все слова из запроса. Как переделать запрос? Заранее спасибо за ответы.
Я бы не против, и с лунуксом уже давно знаком. Но цена как я знаю от 6т.р. и выше за год. Я сейчас чуть больше 2т.р./год плачу за хостинг. Пока смысла нет переплачивать, т.к. нагрузки пока почти нет на сайтах)
Есть и дешевле. На рег.ру впс идут от 350 по-моему... А нет, от 150 рублей!) Вот, смотри https://hosting.reg.ru/vps/
zevilz, 1. зачем многократное упоминание status=1 ? делай это один раз: (… OR … OR …) AND status='1' 2. ты не перепутал местами аргументы implode?! и вообще что ты хотел получить на выходе implode? 3. вообще всегда проверяй какая строка запроса получилась непосредственно перед вызовом query. не надо гадать, надо убедиться. Добавлено спустя 5 минут 7 секунд: p.s. была здесь тема Как оптимально искать в строке любое слово из другой строки?