Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]BETWEEN AND
Forum PHP.pl > Forum > Przedszkole
inespew
Witam

Mam problem z zapytaniem sql z between. Z formularza html dostaje do pliku tranzakcji trzy zmienne które składają sie na datę OD i trzy zmienne DO.
Te trzy zmienne łączę w jedną datę nsatępująco:

  1. $szkol_realod_od=$_POST["realod_od_r"]."-".$_POST["realod_od_m"]."-".$_POST["realod_od_d"];


i

  1. $szkol_realod_do=$_POST["realod_do_r"]."-".$_POST["realod_do_m"]."-".$_POST["realod_do_d"];


moje zapytanie wygląda następująco:

  1. $sql="SELECT * FROM szkolenia WHERE (szkol_id LIKE '%$szkol_id%') AND
  2. (szkol_nazwa LIKE '%$szkol_nazwa%') AND
  3. (szkol_ilucz LIKE '%$szkol_ilucz%') AND
  4. (szkol_ilgodz LIKE '%$szkol_ilgodz%') AND
  5. (szkol_koord LIKE '%$szkol_koord%') AND
  6. (szkol_tren LIKE '%$szkol_tren%') AND
  7. (szkol_woj LIKE '%$szkol_woj%') AND
  8. (szkol_miej LIKE '%$szkol_miej%') AND
  9. (szkol_realod BETWEEN '$szkol_realod_od' AND '$szkol_realod_do')";
  10.  
  11. echo $sql;
  12. $result=mysql_query($sql)


Wszystko wyszukuje OK pod warunkiem, że dostanę z formularza jakieś daty, natomiast jeśli podam np: szkol_name a nie dam daty nie wyszuka mi nic.

Proszę o pomoc.
Pozdrawiam

nospor
Musisz zapytanie budowac dynamicznie a nie na sztywno.
http://nospor.pl/wyszukiwarka-zapytanie-za...d-warunkow.html
inespew
Dałem radę, dzieki za pomoc

rozwiązanie:

  1. $sql="SELECT * FROM szkolenia WHERE (szkol_id LIKE '%$szkol_id%') AND
  2. (szkol_nazwa LIKE '%$szkol_nazwa%') AND
  3. (szkol_ilucz LIKE '%$szkol_ilucz%') AND
  4. (szkol_ilgodz LIKE '%$szkol_ilgodz%') AND
  5. (szkol_koord LIKE '%$szkol_koord%') AND
  6. (szkol_tren LIKE '%$szkol_tren%') AND
  7. (szkol_woj LIKE '%$szkol_woj%') AND
  8. (szkol_miej LIKE '%$szkol_miej%')";
  9.  
  10.  
  11. if (($szkol_realod_od!="--") and ($szkol_realod_do!="--"))
  12. {
  13. $sql.=" AND (szkol_realod BETWEEN '$szkol_realod_od' AND '$szkol_realod_do')";
  14. }
  15.  
  16. if (($szkol_realdo_od!="--") and ($szkol_realdo_do!="--"))
  17. {
  18. $sql.=" AND (szkol_realdo BETWEEN '$szkol_realdo_od' AND '$szkol_realdo_do')";
  19. }
  20.  
  21. echo $sql;
  22. $result=mysql_query($sql)


Nie wiem czy profesjonalnie ale działa biggrin.gif
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.