Вывод данных из базы по фильтру - как?

de_angelo

Новичок
Вывод данных из базы по фильтру - как?

Добрый день. Прошу не пинать чайника )


мне надо вывести фильтр по различным критериям выбираемым из списка на cтранице HTML

есть 2-3-4-n выпадающих списков.
пользователь выбирает первый список Москва, второй список выбирает 1000 третий список мужчины

итого запрос (для примера)
SELECT * FROM users WHERE city=$spisok1 AND num=$spisok2 AND sex=$spisok3

это всё супер если пользователь должен выбрать все 3 параметра.. а если нужно выбрать всего по 2м параметрам.... в оставшиеся списки не имеют значения.

То есть по сути как построен Автофильтр в Excel.

как реализовать на php и mysql?

буду очень благодарен ))
 

Фанат

oncle terrible
Команда форума
составлять запрос динамически, подставляя только заполненные поля

PHP:
$where = '';
$w     = array();

if (!empty($_GET['rooms'])) $w[] = "rooms='".mysql_real_escape_string($_GET['rooms'])."'";
if (!empty($_GET['space'])) $w[] = "space='".mysql_real_escape_string($_GET['space'])."'";
if (!empty($_GET['max_price'])) $w[] = "price < '".mysql_real_escape_string($_GET['max_price'])."'";

if (count($w)) $where = "WHERE ".implode(' AND ',$w);
$query = "SELECT * FROM table $where";
 

de_angelo

Новичок
ой спасибо) буду тыкать.. я тут пока понакидал чайниковские коды типа

$sql = "SELECT * FROM users WHERE";

if (isset($spisok1))
{
$sql. = "city=$spisok1 AND ";
}

if (isset($spisok2))
{
$sql. = "num=$spisok2 AND ";
}

не пробовал будет ли ) но типу теже яйца вроде
 

Фанат

oncle terrible
Команда форума
те же, в принципе.
только если ничего не выберут, то будет ошибка запроса.
 
Сверху