Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php, mysql] Wyszukiwarka i pętla ?
Forum PHP.pl > Forum > Przedszkole
dr_NO
Witam, ludzie pomóżcie mi proszę, mam 40 stopni gorączki i muszę dokończyć projekt, ALE mam kilka problemów a moja móżgownica nie pracuje dzisiaj poprawnie otóż:
temat prosty: wyszukiwarka.

Jak najszybciej zrobić wyszukiwarkę ?
Powiedzmy że mam formularz: cena od, cena do, powierzchnia od, powierzchnia do, województwo.
Jak zrobić szybko, niezależną wyszukiwarkę ? tzn user wpisuje tylko cenę od do, albo tylko powierzchnię, albo województwo, albo jeszce inaczej tylko cenę od ?

Musze stawiać setki warunków ?

Może da się zrobić jakąś pętlę w zapytaniu SQL ?

chodzi oto żeby nie robić kilkanaście razy: if(!$cena_od ....

bo to mija się z celem ...

Z góry dzięki i pozdrawiam.
SirZooro
Musisz dodać odpowiednie warunki w zapytaniu po WHERE.
1010
  1. <?php
  2. $zapytanie= mysql_query("SELECT * FROM twoja tabela WHERE cena>='".$_POST['cena_od']."' AND cena<='".$_POST['cena_do']."' AND powierzchnia>='".$_POST['powierzchnia_od']."' AND powierzchnia<='".$_POST['powierzchnia_do']."' AND wojewodztwo='".$_POST['wojewodztwo']."' ORDER BY id ASC;");
  3. ?>

mniej więcej coś takiego, dostosuj pod swoją tabele i powinno działać

ps. pisane z palca, może zawierać drobne błędy
drPayton
Popraw proszę temat na zgodny z zasadami forum przedszkole, w przeciwnym wypadku wątek zostanie zamknięty.

Pozdrawiam!
dr_NO
sorry za temat, a teraz do sedna ...

to wiem jak wykonać (no bo jak nie ?) ale jeżeli wartośc danego pola pozostanie pusta, to już nie będzie wyszukiwać, chcę zrobić dynamiczne wyszukiwanie, czyli jeżeli nei zostanie wpisana jedna wartosc, to bedzie wybieralo rekordy bez tej wartosci ...
dr_NO
  1. <?php
  2.  
  3. $wh = array();
  4. if ($warunek1)
  5.  $wh[] = 'jakiś warunek1';
  6. if ($warunek2)
  7.  $wh[] = '(jakiś warunek2 or jakis warunek 3)';
  8. //.....
  9. if (!empty($wh))
  10.  $where = 'where '.implode(' and ', $wh);
  11. else
  12.  $where = '';
  13.  
  14. $sql = 'select ..... '.$where;
  15. ?>

Dzięki za odpowiedź, ale jak mógłbym prosić o małe wyjaśnienie byłbym wdzięczny, ja naprawdę dzisiaj nie kontaktuję, tragiczny tydzień za mną a choróbsko straszne ; ( prosze tylko o wyjasnienie, mniejwięcej co i jak reszta będzie ok ...
nospor
Za bardzo nie wiem co tu tlumaczyc.

$wh to tablica warunkow. Tablica ta jest wypelniana, gdy pojawi się jakies wypelnione pole w formularzu. Wowczas tworzony jest warunek sql dla tego pola i wkladany do tablicy. Na koniec tablica ta jest lączona za pomocą AND i dokladana do zapytania. PRoste jak drut smile.gif
dr_NO
blh, racja ... nie ma to jak całkowity brak kontaktu ; /

czyli powiedzmy że:
  1. <?php
  2. if ($warunek1)
  3.  $wh[] = 'jakiś warunek1';
  4. ?>

mogłoby wyglądac tak:
  1. <?php
  2. if ($dane_z_post)
  3.  $wh[] = 'pole_z_tabeli <= $dane_z_post';
  4. ?>

kurde banalny problem ktory poprzez niedowlad ktoregos z platu muzgu staje sie nie do przeskoczenia ... sad but true ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.