2 вопроса
мне надо вывести фильтр по различным критериям выбираемым из списка на cтранице HTML
есть 2-3-4-n выпадающих списков.
пользователь выбирает первый список Москва, второй список выбирает 1000 третий список мужчины
итого запрос
SELECT * FROM users WHERE city=$spisok1 AND num=$spisok2 AND sex=$spisok3
это всё супер если пользователь должен выбрать все 3 параметра.. а если нужно выбрать всего по 2м параметрам.... в оставшиеся списки не имеют значения.
Типа Авто фильтров в Excel. <----- нужно построить вывод с базы
1. есть ли символ который при поиске MYSQL воспринимает как ИскАть ЛЮБОЕ ЗНАЧЕНИЕ
2. Или как это всё правильно построить?
хоть куда нить натолкните ) буду очень благодарен....
Спустя 3 часа, 5 минут, 2 секунды (19.10.2010 - 00:36) kovaldm написал(а):
Насколько мне известно 'искать любое значение' == '%'
Спустя 5 минут, 20 секунд (19.10.2010 - 00:41) kirik написал(а):
de_angelo
Что мешает не дописывать в запрос незаполненный параметр?
Например только город:
или только пол и город:
Что мешает не дописывать в запрос незаполненный параметр?
Например только город:
SELECT * FROM users WHERE city=$spisok1
или только пол и город:
SELECT * FROM users WHERE city=$spisok1 AND sex=$spisok3
Спустя 23 минуты, 6 секунд (19.10.2010 - 01:04) aH6y написал(а):
if (empty($a1) && empty($a2) && empty($a3))
{
$query = 'SELECT * FROM users';
}
else
{
$query = 'SELECT * FROM users WHERE ';
if (!empty($a1)) {$query .= 'city1=$a1';}
if (!empty($a1) && !empty($a2)) {$query .= ' AND city2=$a2';}
else
{
$query .= 'city2=$a2';
}
if (!empty($a1) && !empty($a2) && !empty($a3)) {$query .= ' AND city3=$a3';}
else
{
$query .= 'city3=$a3';
}
}
Спустя 12 дней, 10 часов, 50 минут, 38 секунд (1.11.2010 - 12:55) Guest написал(а):
кто будет искать... я искал динамический запрос
$where = '';
$w = array();
if (!empty($_POST['id'])) $w[] = "id='".mysql_real_escape_string($_POST['id'])."'";
if (!empty($_POST['data32'])) $w[] = "data32='".mysql_real_escape_string($_POST['data32'])."'";
if (!empty($_POST['data33'])) $w[] = "data33='".mysql_real_escape_string($_POST['data33'])."'";
// и т.д.
if (count($w)) $where = "WHERE ".implode(' AND ',$w);
$query = "SELECT * FROM datas $where";