Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][sql] co jest nie tak?
szpakoo
post 28.08.2007, 15:53:00
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 16
Dołączył: 19.04.2007

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Go to the top of the page
+Quote Post
nospor
post 28.08.2007, 15:57:48
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  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. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
szpakoo
post 28.08.2007, 16:01:36
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 16
Dołączył: 19.04.2007

Ostrzeżenie: (0%)
-----


dziękować kolego smile.gif do aliasów jeszcze nie doszedłem. pozdro smile.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 22:03