[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод данных по критериям
de_angelo
Добрый день.

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";
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.