Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чекбоксы
 
 автор: neadekvat   (31.07.2009 в 12:22)   письмо автору
 
 

Доброго времени суток.
Скажите, как можно обработать несколько чекбоксов так, чтобы еще и запрос составить к бд.
Например, поиск на сайтах недвижемости, там на выбор "1-комн. кв, 2-комн. кв, 3х, 4х". Ну, придет мне On Off Off On, к примеру, и как мне в запросе к бд указать, что нужны только 1-комн и 4х-комн. квартиры?

  Ответить  
 
 автор: maxtet   (31.07.2009 в 18:49)   письмо автору
 
   для: neadekvat   (31.07.2009 в 12:22)
 

Прогоняйте через цикл с использованием условий. Через чекбоксы значения либо передаются, либо нет. Если передаются то делаете запрос к бд.

  Ответить  
 
 автор: x64   (31.07.2009 в 23:28)   письмо автору
 
   для: 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) . ')';
    // запрос к БД
}

принцип, думаю, понятен.

  Ответить  
 
 автор: neadekvat   (01.08.2009 в 20:33)   письмо автору
 
   для: x64   (31.07.2009 в 23:28)
 

М, все несколько проще, чем я думал)
Не знал, как можно динамически вставить в опертор IN значения.
Спасибо

  Ответить  
 
 автор: Trianon   (01.08.2009 в 22:38)   письмо автору
 
   для: neadekvat   (01.08.2009 в 20:33)
 

В оператор нельзя.
В строку можно.
На момент вычисления параметра, строка покамест оператором еще не стала.
На момент обращения к серверу вся динамическая генерация осталась в прошлом.

Если не поняли - это к вопросу о "не знал".

  Ответить  
 
 автор: neadekvat   (01.08.2009 в 23:00)   письмо автору
 
   для: Trianon   (01.08.2009 в 22:38)
 

Отнюдь, я прекрасно вас понял. Притом понял лучше, чем написанное в книжке
Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования