Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z zapytaniem
Forum PHP.pl > Forum > Przedszkole
csmaestro
Jestem w trakcie pisania skryptu, który powinien mi sortować wyniki według kolumny którą wybiore.
Według ceny, wizyt itd.

Zmienne do zapytania pobieram z adresu:
?szukaj,wojewodztwo,Wielkopolskie,4,1

mam też skrypt, który zmienne wrzuca mi w tablice.
W tym wypadku kolejność zmiennych to:

$adres[0] = "szukaj";
$adres[1] = "wojewodztwo";
$adres[2] = "Wielkopolskie";
$adres[3] = "4";
$adres[4] = "1";
  1. $sposob = "$adres[4]";
  2.  
  3. if($sposob=="") {
  4. $sposob="ASC";
  5. } else {
  6. $sposob="DESC";
  7. }
  8.  
  9. switch($adres[3]) {
  10. case 1: {
  11. $orderby = "cena";
  12. break;
  13. }
  14. case 2: {
  15. $orderby = "polecenia";
  16. break;
  17. }
  18. case 3: {
  19. $orderby = "polecenia_wykonane";
  20. break;
  21. }
  22. case 4: {
  23. $orderby = "wejscia";
  24. break;
  25. }
  26. default: {
  27. $orderby="id";
  28. break;
  29. }

I zapytanie:
  1. $szukaj = "SELECT * FROM kapele WHERE $adres[1] = '$adres[2]' ORDER BY $orderby $sposob LIMIT 10";
  2. $szukanie = mysql_query($szukaj);


Zupełnie nie mam pojęcia dlaczego wynik sortuje mi tylko według ceny, wszytkie komórki w tabeli są typu integer(5).
Nie wyskakuje żaden błąd, po prostu wyniki są niewidoczne.

Próbowałem już wszystkiego, proszę o pomoc.
piotrooo89
a wyechowałeś sobie to zapytanie? może masz tam jakieś logiczne głupoty.
csmaestro
A jak to się robi tongue.gif ?
potreb
Panie echo $zapytanie; wtedy będziesz miał podgląd co tam dodaje do zapytania
piotrooo89
  1. echo "SELECT * FROM kapele WHERE $adres[1] = '$adres[2]' ORDER BY $orderby $sposob LIMIT 10";


i musisz popatrzeć w konsoli (lub w phpMyAdmin) co jest nie tak co zmienić i zabrać się za poprawę skryptu.
csmaestro
Wykonałem knyf z echo, wszystko ok. W phpMyAdminie zapytania też wykonują się poprawnie.
Naprawdę już nie wiem co mam robić.
piotrooo89
jeśli to skopiowałeś z echo wykonuje się OK w phpMyAdmin to zapytanie masz ok. spróbuj jeszcze tak:

  1. $szukanie = mysql_query($szukaj) or die (mysql_error());


a jak nie to trzeba w innym miejscu błędu szukać.
csmaestro
NIC, nawet error nie wyskakuje. Po prostu nie ma wyników.
piotrooo89
a w jaki sposób wyświetlasz wyniki?
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.