Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sortowanie i zapytanie mySQL
Forum PHP.pl > Forum > Przedszkole
-miej95-
Witam!
A więc tak:
Robie mały skrypt ogłoszeń i potrzebuję sortowania rekordów. Kategorie przetrzymuję w GET a parametry jak (cena_od, cena_do... itp) w POST. W sumie jest to nie ważne ale musze to jakość do zapytania wdrążyć. Zrobiłem to tak:
  1. if (!empty($_GET['id'])) { $kategoria = " k_child_name='" . $_GET['id'] ."' AND"; } else { $kategoria = ""; }
  2.  
  3. if (!empty($_POST['cena_od'])) { $zl = $_POST['cena_od']; $cena_od = " cena >= " . $zl . " AND"; } else { $cena_od = ""; }
  4.  
  5. if (!empty($_POST['cena_do'])) { $zl2 = $_POST['cena_do']; $cena_do = " cena <= " . $zl2 . " AND"; } else { $cena_do = ""; }
  6.  
  7.  
  8. if (!empty($_GET['id']) OR !empty($_POST['cena_od']) OR !empty($_POST['cena_do']))
  9. {
  10. $where = " WHERE";
  11. }
  12. else
  13. {
  14. $where = "";
  15. }
  16.  
  17. $zapytanie = mysql_query("SELECT * FROM gielda". $where . $kategoria . $cena_od . $cena_do);

Działa to ale brakuje mi tego AND w zapytaniu między parametrami. Próbowałem tak:

  1. $sortowanie = array($kategoria, $cena_od, $cena_do);
  2. $sortowanie2 = array();
  3. foreach($sortowanie AS $element)
  4. {
  5. if (!empty($element))
  6. array_push ($sortowanie2, $element);
  7. }
  8. $sortowanie3 = implode(' AND ', $sortowanie2);
  9. $zapytanie = mysql_query("SELECT * FROM gielda". $sortowanie3);

Ale wynik jest przedziwny. Dla byle jakich wartości:

k_child_name='torby_pokrowce' AND AND cena >= 123 AND AND cena <= 1313 AND
Co jest nie tak??
miej95
SORY JUZ WIEM CO JEST NIE TAK! MÓJ BŁĄD ZOSTAWIŁEM "AND" PRZY SPRAWDZANIU CZY JEST PUSTA ZMIENNA. JUŻ DZIAŁA!

Wybaczcie ;(
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.