vaflya
@vaflya
Ничего личного, это всего лишь хобби.

Как правильно написать фильтры для товаров?

Фильтр фильмов: может быть указан от 1 до 10 фильтров (а может и не одного)

$query = 'SELECT * WHERE ';

if(count($_GET) >1) {
	foreach($_GET as $key => $value) {
		$query .= $key.' = '.$value.' AND';
	}
}

else {
	foreach($_GET as $key => $value) {
		$query .= $key.' = '.$value;
	}	
}


Меня волнует появления лишних AND да и уродство говнокода.

И в целом если метод класса получает кучу разных параметров из которых формирует запрос к БД (не только where), как такое реализуют нормальные люди???
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
@dass45
$filters = [];

  foreach($_GET as $key => $value) {
    $filters[] = $key . ' = ' . $value;
  }

$filter = implode(" and ", $filters);


$query = 'SELECT * WHERE {$filter}';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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