Задать вопрос
@ivankirshin

Как выполнить SELECT, если количество параметров неизвестно?

Пишу на php. Нужно выполнить поиск по данным таблицы. Вроде все просто WHERE...
Но всего четыре параметра, любой из них может быть введен или нет.
Нужно чтобы запрос выполнялся в любом случае, как это сделать?
Не через if же все варианты расписывать...
  • Вопрос задан
  • 655 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
WHERE (:param1 IS NULL OR `field1` = :param1)
  AND (:param2 IS NULL OR `field2` = :param2)
  ...
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Ответ написан
Комментировать
@d_f
Математик минус программист
Использовать следующие условие:
WHERE 1=1
Потом если нужно искать по полю, то добавляешь
AND field1=:param1
Ответ написан
@ivankirshin Автор вопроса
Решил проблему так:
$query_where = array();
            if($param1) $query_where[] = "activities.name_activity = '$param1'";
            if($param2) $query_where[] = "customers.name_customer = '$param2'";
            if($paramN) $query_where[] = "paramN = `$paramN`";
            $query_where = implode(' AND ', $query_where);
            $result = mysql_query("SELECT ... WHERE $query_where ORDER BY id_order desc LIMIT $limit;") or die(mysql_error());
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы