запрос поиска по пришедшим чекбоксам

Sveta

Guest
запрос поиска по пришедшим чекбоксам

Имеется 10 чекбоксов, они м.б. не все отмечены. Нужно написать запрос поиска типа "select * from table where pole=$ch1 or pole=$ch2 or pole=$ch3... " ............... не писать же 10 или даже 100 запросов, если не все чекбоксы пришли из формы.
Подскажите, каким образом это лучше сделать.
 

Антон

Новичок
генерироватть чекбоксы с именнами типа
val_checkbox_1
...
val_checkbox_10


в скрипте обработки получения данных.
PHP:
$sql = "SELECT * FROM `sometable` WHERE `val` = '1'"; 
       while (list($key, $val) = each($_POST)) 
        {
		if (preg_match("/(val_checkbox_)([0-9]{1,120})/", $key, $muches) && $val=='on')
			{
				$sql . = "AND `val` = '$muches[2]'  ";
			}

mysql_query($sql) or die(mysql_error());
 

Антон

Новичок
да... масивы вариант. скоращяем время на прегах.. да очень даже вариант.
 

Sveta

Guest
Это все хорошо работает, спасибо, но нужен запрос типа
and (num_floor=2 or num_floor=5 ...) ... нужно как-то выделить первый элемент в цикле while???

P.S. а JavaScript кажется не поддерживает массивы в именах переменных.... использую JS
 

Cid

...двинутый новичок
Форма:
<input type="checkbox" name="mylist[]" value="1">
.
.
.
<input type="checkbox" name="mylist[]" value="10">

Скрипт (без проверок на ошибки):
PHP:
$mylist=$_POST['mylist'];

$comma = $RANGE = '';

foreach($mylist as $id)
{
   $RANGE.=$comma.$id
   if($comma == '') $comma = ',';
}

$query = "select * from table where pole IN ($RANGE)";
 

Sveta

Guest
Cid,
спасибо большое! Это как раз то, что нужно!!! Все замечательно работает.
 
Сверху