Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] wyszukiwanie
Forum PHP.pl > Forum > Przedszkole
keevee

Witam, poniższy kod był ok do momentu gdy dodałem BETWEEN i teraz wyszukuje tylko jeśli podam przedział cenowy a nie np. samą markę



  1. mysql_connect('sql.boo.pl', '***','***') OR die('Nie udało sie połączyć z bazą.');
  2. mysql_select_db("pozcar");
  3.  
  4. $zapytanie="SELECT * FROM samochody WHERE
  5. `marka` LIKE '%".$marka."%' AND
  6. `model` LIKE '%".$model."%' AND
  7. `rocznik` LIKE '%".$rocznik."%' AND
  8. `silnik` LIKE '%".$silnik."%' AND
  9. `kolor` LIKE '%".$kolor."%' AND
  10. `miejsce` LIKE '%".$miejsce."%' AND
  11. `cena` BETWEEN $cenaod AND $cenado
  12. ";
  13. $wynik =mysql_query($zapytanie);
  14.  
  15. $ile_znalezionych = mysql_num_rows($wynik);
  16.  
  17. echo '<p>ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  18.  
  19. for ($i=0; $i<$ile_znalezionych; $i++)
  20. {
  21. $wiersz = mysql_fetch_assoc($wynik);
  22. echo '<p><strong>'.($i+1). ' Marka: ' ;
  23. echo stripslashes($wiersz["MARKA"]);
  24. echo '<strong><br /> Model: ';
  25. echo stripslashes($wiersz["MODEL"]);
  26. echo '<br /> Rocznik: ';
  27. echo stripslashes($wiersz["ROCZNIK"]);
  28. echo '<br /> Silnik: ';
  29. echo stripslashes($wiersz["SILNIK"]);
  30. echo '<br /> Kolor: ';
  31. echo stripslashes($wiersz["KOLOR"]);
  32. echo '<br /> Miejscowość: ';
  33. echo stripslashes($wiersz["MIEJSCE"]);
  34. echo '<br /> Cena: ';
  35. echo stripslashes($wiersz["CENA"]);
  36. echo '<br /> Kontakt: ';
  37. echo stripslashes($wiersz["KONTAKT"]);
  38.  
  39.  
  40.  
  41. }
  42.  
  43.  
  44.  
sadistic_son
Musisz modyfikować zapytanie na bieżąco:
  1. $zapytanie="SELECT * FROM samochody WHERE
  2. `marka` LIKE '%".$marka."%' AND
  3. `model` LIKE '%".$model."%' AND
  4. `rocznik` LIKE '%".$rocznik."%' AND
  5. `silnik` LIKE '%".$silnik."%' AND
  6. `kolor` LIKE '%".$kolor."%' AND
  7. `miejsce` LIKE '%".$miejsce."%'
  8. ";
  9.  
  10. if(isset($cenaod) && isset($cenado)){
  11. $zapytanie=$zapytanie."AND `cena` BETWEEN $cenaod AND $cenado ";
  12. }
matino
1) Można tak:
  1. $zapytanie="SELECT * FROM samochody WHERE
  2. `marka` LIKE '%".$marka."%' AND
  3. `model` LIKE '%".$model."%' AND
  4. `rocznik` LIKE '%".$rocznik."%' AND
  5. `silnik` LIKE '%".$silnik."%' AND
  6. `kolor` LIKE '%".$kolor."%' AND
  7. `miejsce` LIKE '%".$miejsce."%'";
  8. if ($cenaod != "" AND $cenado != "")
  9. $zapytanie .= " AND `cena` BETWEEN $cenaod AND $cenado";

2) Albo ustalić na sztywno cenę od i do tak, żeby na pewno objęły wszystkie samochody i pozostawić oryginalny kod bez zmian.
keevee
Zrobiłem tak i wygląda że działa pewnie można prościej ale tego już nie wiem:)

  1. $zapytanie="SELECT * FROM samochody WHERE
  2. `marka` LIKE '%".$marka."%' AND
  3. `model` LIKE '%".$model."%' AND
  4. `rocznik` LIKE '%".$rocznik."%' AND
  5. `silnik` LIKE '%".$silnik."%' AND
  6. `kolor` LIKE '%".$kolor."%' AND
  7. `miejsce` LIKE '%".$miejsce."%'";
  8. if ($cenaod != "" AND $cenado != ""){
  9. $zapytanie .= " AND `cena` BETWEEN $cenaod AND $cenado"; }
  10. elseif($cenaod != ""){ $zapytanie .= " AND `cena` > $cenaod";}
  11. elseif($cenado != "") {$zapytanie .= " AND `cena` < $cenado";}
  12.  
  13. if ($silnikod != "" AND $silnikdo != ""){
  14. $zapytanie .= " AND `silnik` BETWEEN $silnikod AND $silnikdo"; }
  15. elseif($silnikod != ""){ $zapytanie .= " AND `silnik` > $silnikod";}
  16. elseif($silnikdo != ""){ $zapytanie .= " AND `silnik` < $silnikdo";}
  17.  
  18. if ($rocznikod != "" AND $rocznikdo != ""){
  19. $zapytanie .= " AND `rocznik` BETWEEN $rocznikod AND $rocznikdo";}
  20. elseif($rocznikod != ""){ $zapytanie .= " AND `rocznik` > $rocznikod";}
  21. elseif($rocznikdo != "") {$zapytanie .= " AND `rocznik` < $rocznikdo";}


no i no i?
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.