Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Problem z warunkami, $_get i bazą MySQL
Forum PHP.pl > Forum > Przedszkole
tokone
Witam serdecznie
Jestem początkujący więc proszę o wyrozumiałość winksmiley.jpg

Mam problem z zbudowaniem odpowiedniego warunku, całość wygląda tak:

  1. $rodzaj=$_GET['rodzaj'];
  2. if ($_GET['rodzaj']){
  3. $query = "select * from oglosz where rodzaj='$rodzaj' AND verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";}
  4. else {
  5. if ($_GET['miasto']){
  6. $miasto=$_GET['miasto'];
  7. $query = "select * from oglosz where miasto='$miasto' AND verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";
  8. }
  9. $query = "select * from oglosz where verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";
  10. }


zmienne rodzaj i miasto są wysyłane z tego samego pliku, i w tym samym pliku są odbierane, chciałbym żeby warunek sam wybierał rodzaj zapytania w zależności od wysłanych danych tzn, jeśli zostało wysłana zmienna rodzaj, to inne zapytanie, jeśli miasto to inne a jeśli wcale to wykonuje zapytanie standardowe, jak zarazie nie zwraca żadnych danych.

Proszę o pomoc.
blooregard
Zapoznaj się proszę z tym tematem, bo nie napisałeś, co chcesz osiągnąć, czy są jakieś błędy - nic.

Temat: Jak poprawnie zada pytanie
lessi
Po co dajesz warunek:
  1. if ($_GET['miasto']){
  2. $miasto=$_GET['miasto'];
  3. $query = "select * from oglosz where miasto='$miasto' AND verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";
  4. }
  5. $query = "select * from oglosz where verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";

I tak później nadajesz zmiennej inną wartość. Więc powinno być:
  1. if ($_GET['miasto']){
  2. $miasto=$_GET['miasto'];
  3. $query = "select * from oglosz where miasto='$miasto' AND verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";
  4. }
  5. else{
  6. $query = "select * from oglosz where verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";
  7. }

Chyba że od razu chcesz pobrać dane z bazy
tokone
Pomocy, nikt nie zna odpowiedzi? sad.gif
Dziadzia
najpierw proponuję abyś po kodzie
  1. $rodzaj=$_GET['rodzaj'];


wstawił:

  1. echo $rodzaj;

aby sprawdzić czy w ogóle coś się zapisuje w zmiennej $rodzaj.

jak dla mnie skrypt ten jest trochę źle zbudowany... ja bym napisał go tak:

  1.  
  2.  
  3. $rodzaj=$_GET['rodzaj'];
  4. $miasto=$_GET['miasto'];
  5.  
  6. echo $rodzaj;
  7. echo $miasto;
  8.  
  9. if (($rodzaj==0) AND ($miasto==0)) {
  10.  
  11. $query = "select * from oglosz where verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";
  12.  
  13. }
  14.  
  15. elseif ($rodzaj!=0){
  16.  
  17. $query = "select * from oglosz where rodzaj='$rodzaj' AND verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";
  18. }
  19.  
  20. elseif ($miasto!=0){
  21.  
  22. $query = "select * from oglosz where miasto='$miasto' AND verified='T' and curdate() <= dataw order by $sort $az LIMIT 8";
  23.  
  24. }
  25.  
  26.  
  27.  
tokone
$_GET wysyła prawidłowo zmienne $rodzaj i $miasto, lecz teraz w ogóle nie działa, za każdym razem pobiera wszystko.
Dziadzia
$get nie wysyła tylko pobiera dane i zapisuje do zmiennych smile.gif pokaż kod całego pliku w którym masz ten skrypt
tokone
Trochę jest długi, i namieszany, ale proszę o wyrozumiałość, jestem początkujący smile.gif

http://pastebin.com/x89kiS5C

Pozdrawiam, i serdecznie dziękuje za pomoc.

Czy jest ktoś w stanie pomoc?
nie mogę sobie z tym poradzić.
pedro84
Tutaj zobacz jak to najlepiej rozwiązać.
tokone
Dzięki wielkie Pedro84, o to chodziło smile.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.