|
|
|
| Доброго времени,
вопрос достаточно интересный не знал даже к какому разделу он больше относиться.
Есть скрипт который должен делать выборку из БД по нескольким параметрам. Как это сделать при условии что если скажим пользователь когда заходит на страницу поиска не трогает одну из форм и она остаеться по умолчания и следовательно надо что бы по этому полю соответствующему этой переменной поиск не производился (что бы к запросу SELECT подходили все ячейки данной переменной из формы).
Подскажите хотя бы алгоритм. Спсибо. | |
|
|
|
|
|
|
|
для: Neolink
(18.01.2008 в 15:59)
| | есле нечего нивыбрано то ищем па фсем группам иначи добавляим AND group_id=$var где $var эта выбраннная група вот. | |
|
|
|
|
|
|
|
для: Neolink
(18.01.2008 в 15:59)
| | Видимо я не совсем понятно задал вопрос.
Вот код запроса для выбора данных из БД:
$query = "SELECT telefon, kontakt, email,
kolkom, cena, ulica, etaj, etajnost,
nal_telefona, obschayapl, plkomnat,
sostoyanie, primechanie, begin, end
FROM prodat
WHERE kolkom = '$kolkom' AND
cena='$cena' AND
ulica='$ulica' AND
etaj='$etaj' AND
etajnost='$etajnost' AND
nal_telefona='$nal_telefona' AND
sostoyanie='$sostoyanie'";
|
Так вот смотрите, скажем пользователя не интересует этаж и слдеовательно при поиске он не заполнял эту форму а оставил её как есть:
<select name=\"etaj\">
<option value=\"1\">1 этаж
<option value=\"2\">2 этаж
<option value=\"3\">3 этаж
<option value=\"4\">4 этаж
<option value=\"5\">5 этаж
<option value=\"6\">6 этаж
<option value=\"7\">7 этаж
<option value=\"8\">8 этаж
<option value=\"9\">9 этаж
<option value=\"10\">10 этаж
<option value=\"11\">11 этаж
<option value=\"12\">12 этаж
<option value=\"13\">13 этаж
<option value=\"14\">14 этаж
<option value=\"15\">15 этаж
</select>
|
Так как сделать так что раз он её не заполнял, запросу $query по etaj удовлетворяли все ячейки. | |
|
|
|
|
|
|
|
для: Neolink
(20.01.2008 в 13:38)
| | Можно использовать LIKE
$query = "SELECT telefon, kontakt, email,
kolkom, cena, ulica, etaj, etajnost,
nal_telefona, obschayapl, plkomnat,
sostoyanie, primechanie, begin, end
FROM prodat
WHERE kolkom LIKE '%$kolkom%' AND
cena LIKE '%$cena%' AND
ulica LIKE '%$ulica%' AND
etaj LIKE '%$etaj%' AND
etajnost LIKE '%$etajnost%' AND
nal_telefona LIKE '%$nal_telefona%' AND
sostoyanie LIKE '%$sostoyanie%'";
|
| |
|
|
|
|
|
|
|
для: Neolink
(18.01.2008 в 15:59)
| | Решение уже конечно придумал сам... однако если для кого еще это актуально то пожалуйста кусок кода который думаю наведет вас нс мысль.
//The Cheking entered information
if($cena==0):
$x_cena="";
else:
$x_cena="AND cena = $cena";
endif;
if($ulica==0):
$x_ulica="";
else:
$x_ulica="AND ulica = $ulica";
endif;
if($etaj==0):
$x_etaj="";
else:
$x_etaj="AND etaj = $etaj";
endif;
if($etajnost==0):
$x_etajnost="";
else:
$x_etajnost="AND etajnost = $etajnost";
endif;
if($nal_telefona==0):
$x_nal_telefona="";
else:
$x_nal_telefona="AND nal_telefona = $nal_telefona";
endif;
if($sostoyanie==0):
$x_sostoyanie="";
else:
$x_sostoyanie="AND sostoyanie = $sostoyanie";
endif;
$query = "SELECT telefon, kontakt, email, kolkom, cena, ulica, etaj, etajnost, nal_telefona, obschayapl, plkomnat, sostoyanie, primechanie, begin, end FROM prodat WHERE kolkom='$kolkom' $x_cena $x_ulica $x_etaj $x_etajnost $x_nal_telefona $x_sostoyanie";
|
| |
|
|
|
|
|
|
|
для: Neolink
(20.01.2008 в 16:41)
| | Эм..
<select name="etaj">
<option value="%" selected="selected">(не важно)/(не выбрано)/(оставить пустым)
<option value="1">1 этаж
<option value="2">2 этаж
...
</select>
$query = "SELECT telefon, kontakt, email,
kolkom, cena, ulica, etaj, etajnost,
nal_telefona, obschayapl, plkomnat,
sostoyanie, primechanie, begin, end
FROM prodat
WHERE kolkom LIKE '$kolkom' AND
cena LIKE '$cena' AND
ulica LIKE '$ulica' AND
etaj LIKE '$etaj' AND
etajnost LIKE '$etajnost' AND
nal_telefona LIKE '$nal_telefona' AND
sostoyanie LIKE '$sostoyanie'"; | |
|
|
|