|
|
|
|
|
для: cheops
(09.09.2005 в 01:53)
| | не забывайте после формирования первого условия ко всем последующим прибавлять AND, а то будет ошибка MySQL. если условий больше одного, надо в каждом последующем проверять, не равно ли предыдущее условие пустому месту, если не равно, то добавить AND. примерно так:
if (isset($model) && $model > 0) $cond = "where model = ".$model;
if (!isset($model) || $model == -1 || $model == 0) $cond = "";
if (isset($size1) && isset($size2) && $size1 > 0 && $size1 <= $size2) {
if ($cond != "") $cond .= " and (size >= ".$size1." and size <= ".$size2.")";
else $cond = "where (size >= ".$size1." and size <= ".$size2.")";
}
if (isset($age) && $age > 0 && $age != date("Y")) {
if ($cond != "") $cond .= " and age >= ".$age;
else $cond = " where age >= ".$age;
}
if (isset ($age) && $age == date("Y")) {
if ($cond != "") $cond .= " and age = ".$age;
else $cond .= " where age = ".$age;
}
|
| |
|
|
|
|
|
|
|
для: moonfox
(09.09.2005 в 00:36)
| | А ну так как ни названия полей, ни условия поиска не определены - я ввёл произвольное поле t и осуществил операцию поиска на основании знака больше >, т.е. допустим все записи для которых сумма в поле t превышает значение переданное в параметре $_POST['param']. | |
|
|
|
|
|
|
|
для: cheops
(05.09.2005 в 01:21)
| | спасибо!
можно уточнее что вы имели в виду кодом
$tmp1 = "t >".$_POST['param']; | |
|
|
|
|
|
|
|
для: moonfox
(04.09.2005 в 19:48)
| | Формируйте SQL-запрос не целиком, а по кускам
<?php
$query = "SELECT * FROM tbl WHERE ".$tmp1.$tmp2.$tmp3.$tmp4;
?>
|
А условия $tmp1 ... $tmp12 формируйте в зависимости от того, указан параметр в HTML-форме или нет.
<?php
if(!empty($_POST['param'])) $tmp1 = "t >".$_POST['param'];
else $tmp1 = "";
?>
|
В общем идея состоит в динамическом формировании WHERE-условия - тогда каждый элемент можно будет обработать независимо. | |
|
|
|
|
|
|
| привет!
у меня форма поиска содержит 12 полей - условий для поиска как сделать чтоб не приходилось перебирать все варианты поиска, а чтоб если в поле ничего не указано (нет текста) то поиск производится всех значений, а если указано то соотвественного по указаному параметру - поиск в mysql
а то с перебором вариантов если а="что-то" а в="" то..... и тд и тп. далеко не уедешь | |
|
|
|
|