Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Zapytanie zwraca dwa razy ten sam wynik
Forum PHP.pl > Forum > Przedszkole
Tidude
Zapytanie jakie napisałem wywołuje mi wyniki, ale je dubluje a nawet. Chcę wyświetlić zlecenia, tylko te do których(kolumna w1 i w2) będą pasowały pojazdy(typ_pojazdu1) i naczepy(typ_przyczepy1) oraz gdy będą w tym samym mieście co zlecenie(kolumna "z" w zleceniach i miasto w pojazdach i przyczepach)...

tak wygląda wynik zapytania.



Zapytanie:
  1. $zapytanie = mysql_query("
  2. SELECT p.*, t1.miasto, t1.gracz_id, t1.typ_pojazdu1, t1.pracuje, t2.miasto, t2.gracz_id, t2.typ_przyczepy1, t2.pracuje
  3. FROM zlecenia AS p
  4. INNER JOIN pojazdy_gracze AS t1
  5. ON p.z = t1.miasto
  6. INNER JOIN przyczepy_gracze AS t2
  7. ON p.z = t2.miasto
  8. WHERE t1.gracz_id = ".$uzytkownik['gracz']."
  9. AND t2.gracz_id = ".$uzytkownik['gracz']."
  10. AND p.w1 = t1.typ_pojazdu1
  11. AND p.w2 = t2.typ_przyczepy1
  12. AND t1.pracuje = 0
  13. AND t2.pracuje = 0") or die(mysql_error());
  14.  
  15. while($wiersz = mysql_fetch_assoc($zapytanie)){
vermis
Dodaj grupowanie.
Widzę że nie masz pojęcia jak działa join. Jeśli 2 rekordy w dołączanej tabeli spełniają warunek złączenia to wyniki się powielą. Powielą się tyle razy ile rekordów spełnia warunek.
Tidude
Po to jest przedszkole, żeby ktoś kto wie po co jest join podpowiedział.

Drugie zapytanie też nie działa, powiela wyniki...
  1. $zapytanie = mysql_query("
  2. SELECT
  3. p.*,
  4. t1.miasto,
  5. t1.gracz_id,
  6. t1.typ_pojazdu1,
  7. t1.pracuje,
  8. t2.miasto,
  9. t2.gracz_id,
  10. t2.typ_przyczepy1,
  11. t2.pracuje,
  12. t2.ladownosc
  13. FROM zlecenia AS p,
  14. pojazdy_gracze AS t1,
  15. przyczepy_gracze AS t2
  16. WHERE t1.gracz_id = ".$uzytkownik['gracz']."
  17. AND t2.gracz_id = ".$uzytkownik['gracz']."
  18. AND p.w1 = t1.typ_pojazdu1
  19. AND p.waga <= t2.ladownosc
  20. AND p.w2 = t2.typ_przyczepy1
  21. AND t1.pracuje = 0
  22. AND t2.pracuje = 0
  23. AND p.z = t1.miasto
  24. AND p.z = t2.miasto
  25. ") or die(mysql_error());
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.