Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyszukiwarka
Forum PHP.pl > Forum > Bazy danych > MySQL
krosoft
Potrzebuje pomocy musze zrobic wyszukiwanie rekordów na podstawie wypełnionych kilku pól. Tu jest malutki przykladzik
  1. <?php
  2. if($imie != NULL) {
  3. $sql1 = "imie = '$imie'";
  4. }
  5. if($nazwisko != NULL) {
  6. $sql2 = "nazwisko = '$nazwisko'";
  7. }
  8. if($wojewodztwo != NULL) {
  9. $sql3 = "wojewodzwo = '$wojewodztwo' AND";
  10. }
  11. if($kategoria != NULL) {
  12. $sql4 = "kategoria = '$kategoria' OR kategoria_2 = '$kategoria' OR kategoria_3 = '$kategoria' OR kategoria_4 = '$kategoria' OR kategoria_5 = '$kategoria'";
  13. }
  14.  
  15. ?>


chodzi o to ze zapytanie powiino wygldac tak zw wszystko musi byc AND np: $sql1 AND $sql2 AND $sql3 AND $sql4
ale jak zrobic jak np ktos nie poda imienia to wtedy zeby było tylko $sql2 AND $sql3 AND $sql4 albo np nazwiska to by bylo $sql1 AND $sql3 AND $sql4.
Prosze o pomoc
nospor
  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. ?>
johnson
Ja to bym zrobił tak:
  1. <?php
  2. $sqlwhere = ' where 1=1';
  3. if(!empty($_GET['imie'])) {
  4. $sqlwhere .= " and `imie` = '$imie'";
  5. }
  6. if(!empty($_GET['nazwisko'])) {
  7. $sqlwhere .= " and `nazwisko` = '$nazwisko'";
  8. }
  9. .....itd.
  10. $res = mysql_query("select `id`, `itd` from `table`$sqlwhere");
  11. ?>


pamiętaj tylko przy kategoriach o nawiasach
krosoft
dzieki bardzo ale działa ten pierwszy sposob tez zadzialal
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.