Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql] co jest nie tak?
Forum PHP.pl > Forum > Przedszkole
szpakoo
co jest nie tak z tym zapytaniem?

chce zrobić zapytanie, które będzie wywoływało gospodarzy i gości w odpowiednich kolejkach oraz gole przez nich strzelone... zrobiłem cios takiego i niestety nie działa tak jak trzeba sad.gif


mam takie tabele w bazie

  1. CREATE TABLE `druzyny` (
  2. `idteam` int(11) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(30) NOT NULL DEFAULT '',
  4. PRIMARY KEY (`idteam`)
  5. )
  6.  
  7. CREATE TABLE `mecze` (
  8. `idmecz` int(11) NOT NULL AUTO_INCREMENT,
  9. `kolejka` int(11) NOT NULL DEFAULT '0',
  10. `gospodarz` int(11) NOT NULL DEFAULT '0',
  11. `przeciwnik` int(11) NOT NULL DEFAULT '0',
  12. `gol1` int(11) NOT NULL DEFAULT '0',
  13. `gol2` int(11) NOT NULL DEFAULT '0',
  14. PRIMARY KEY (`idmecz`),
  15. KEY `kolejka` (`kolejka`,`gospodarz`,`przeciwnik`,`gol1`,`gol2`)
  16. )

to zapytanie prawidłow pobiera z bazy: gol1 i gol2 oraz nazwe drużyny gości, ale zamiast nazwy drużyny gospodarzy pobiera nazwe drużyny gości

  1. <?php
  2. $zapytanie="SELECT
  3.  d1.nazwa, d2.nazwa, gol1, gol2
  4.  FROM 
  5.  mecze as m, druzyny as d1, druzyny as d2
  6.  WHERE 
  7.  m.kolejka=1 AND m.gospodarz=d1.idteam AND m.przeciwnik=d2.idteam";
  8. $wynik= mysql_query ($zapytanie) or die ("Zapytanie zakończone niepowodzeniem");
  9.  
  10. $ile_znalezionych = mysql_num_rows($wynik);
  11. echo 'jest: '.$ile_znalezionych.' meczy w kolejce'.'<br>';
  12.  
  13. while ($wiersz = mysql_fetch_array($wynik))
  14. {
  15. echo stripslashes($wiersz['nazwa']);
  16. echo '....... ';
  17. echo stripslashes($wiersz['gol1']);
  18. echo '....... ';
  19. echo stripslashes($wiersz['gol2']);
  20. echo '....... ';
  21. echo stripslashes($wiersz['nazwa']);
  22. echo '<br>';
  23. }
  24. ?>
nospor
  1. <?php
  2. echo stripslashes($wiersz['nazwa']);
  3. //....
  4. echo stripslashes($wiersz['nazwa']);
  5. ?>

I myslisz ze komputer sam sie domysli ze pierwsze wywolanie nazwa to cie interesuej z tej tabeli a drugie wywolanie to z innej tabeli?

Trzeba robic aliasy:
  1. SELECT d1.nazwa nazwa1, d2.nazwa nazwa2,.....
a potem:
  1. <?php
  2. echo stripslashes($wiersz['nazwa1']);
  3. //....
  4. echo stripslashes($wiersz['nazwa2']);
  5. ?>
szpakoo
dziękować kolego smile.gif do aliasów jeszcze nie doszedłem. pozdro 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.