Всех приветствую. Прошу помощи в создании поиска на сайте есть некая таблица с объектами недвижимости И форма поиска содержащая в себе множество чекбоксов и полей, некоторые чекбоксы относятся к определенной группе например ГОРОД. Запрос примерно следующий Код (Text): SELECT id, city_id, area, city FROM an_objects WHERE livedays > 0 AND type_id = :typeoffer AND rubric_id = :typerelaty AND CASE WHEN :1r = '' THEN true ELSE city_id IN (:1r, :2r, :99r, :100r) END GROUP BY id ORDER BY date ASC Т.е в первом примере нужно будет заполнять четыре параметра, или например сто в зависимости сколько пользователь выберит чеков. А хотелось бы сделать вот так Код (Text): SELECT id, city_id, area, city FROM an_objects WHERE livedays > 0 AND type_id = :typeoffer AND rubric_id = :typerelaty AND CASE WHEN :1r = '' THEN true ELSE city_id IN (:arrCity) END GROUP BY id ORDER BY date ASC Саму строку формирую следующим образом Код (Text): if(isset($param['city'])) { for($i=0; $i < 9; $i++) { if(isset($param['city'][$i])) $raion .= $param['city'][$i] . ","; else break; } $arrCity = substr($city, 0, -1); } Но получается примерно следующее arrCity) подставляется ("1,2,3,4,5,6") и т.д. Это получается как одна строка, но как сделать следующим образом arrCity) (1,2,3,4,5,6)
Вообщем единственный вариант который пока что удалось получить это подготовленное выражение. Пример типо такого Код (Text): private function PDOBindArray(&$poStatement, &$paArray){ foreach ($paArray as $k=>$v) { $poStatement->bindValue($k, $v); } }
проще вот что-то такое сделать http://www.for-web-master.ru/services.php?page=page/stati/15.html&t=t ,просто тоже самое все накидать что и тут и проше
Sphinx. Ваша БД с такими запросами навернется от ужаса еще раньше, чем ваш сайт наберет мало-мальски заметную аудиторию. Так что даже думать забудьте о подобной ереси. Запросы в БД только по первичному ключу. Да и те - кешировать.
Как же это реализовать если мне к примеру нужно найти город и пользователь будет напишет "МОСКВА", как мне сделать выборку по первичному ключу?
Использовал на реальных проектах, один из коих лидер рынка недвижимости С-Пб, кстати. Сейчас использую более подходящее для неструктурированных данных решение, но т.к. у вас БД, что Sphinx будет более в тему.