|
|
|
| Доброго времени суток.
Скажите, как можно обработать несколько чекбоксов так, чтобы еще и запрос составить к бд.
Например, поиск на сайтах недвижемости, там на выбор "1-комн. кв, 2-комн. кв, 3х, 4х". Ну, придет мне On Off Off On, к примеру, и как мне в запросе к бд указать, что нужны только 1-комн и 4х-комн. квартиры? | |
|
|
|
|
|
|
|
для: neadekvat
(31.07.2009 в 12:22)
| | Прогоняйте через цикл с использованием условий. Через чекбоксы значения либо передаются, либо нет. Если передаются то делаете запрос к бд. | |
|
|
|
|
|
|
|
для: neadekvat
(31.07.2009 в 12:22)
| | вопрос подразумевает ответ)
в php есть оператор конкатенации . (точка)
соответственно, составив первичный запрос, к нему можно присовокупить что угодно
$cats = array();
if (isset($_GET['cats'][0]))) $cats[] = (int) $_GET['cats'][0];
if (isset($_GET['cats'][1]))) $cats[] = (int) $_GET['cats'][1];
if ($cats) {
$s = 'SELECT * FROM `table` WHERE `cat` IN (' . implode(',', $cats) . ')';
// запрос к БД
}
|
принцип, думаю, понятен. | |
|
|
|
|
|
|
|
для: x64
(31.07.2009 в 23:28)
| | М, все несколько проще, чем я думал)
Не знал, как можно динамически вставить в опертор IN значения.
Спасибо | |
|
|
|
|
|
|
|
для: neadekvat
(01.08.2009 в 20:33)
| | В оператор нельзя.
В строку можно.
На момент вычисления параметра, строка покамест оператором еще не стала.
На момент обращения к серверу вся динамическая генерация осталась в прошлом.
Если не поняли - это к вопросу о "не знал". | |
|
|
|
|
|
|
|
для: Trianon
(01.08.2009 в 22:38)
| | Отнюдь, я прекрасно вас понял. Притом понял лучше, чем написанное в книжке
Спасибо | |
|
|
|