Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Jak złączyć tabele i odróżnić rekordy, Złączenie tabel za pomocą LEFT JOIN i odróżnienie wyników
szczabik
post 10.11.2008, 19:44:28
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Witam mam takie tabele w bazie danych

Tabela z nazwami drużyn tabela druzyny

druzyna_id | nazwa

I tabele nadchodzące_mecze

nmecz_id | druzyna1 | druzyna2

I w tabeli mam np. takie rekordy

1 | 1 | 2
2 | 2 | 1
gdzie liczby to id druzyn z tabeli druzyny

I mam taki kod
  1. <?php
  2. $wynik = mysql_query("SELECT u.*, b.* FROM nadchodzoce_mecz u
  3. LEFT JOIN druzyny b ON u.druzyna1=b.druzyna_id ORDER BY u.data_meczu LIMIT 5")
  4. while($r = mysql_fetch_assoc($wynik)) {
  5. echo "<tr>
  6. <td class='tbl' align='center'>".$r['nazwa']."</td>
  7. <td class='tbl' align='center'>VS</td>
  8. <td class='tbl' align='center'>".$r['nazwa']."</td>
  9. </tr>";
  10. }
  11. ?>

gdzie złączyłem tabele

I problemem w tym gdy chce wyświetlić rekordy wyświetla mi 2 razy tą samą drużynę chodzi o ten kod
  1. <?php
  2. <td class='tbl' align='center'>".$r['nazwa']."</td>
  3. <td class='tbl' align='center'>VS</td>
  4. <td class='tbl' align='center'>".$r['nazwa']."</td>
  5. ?>

gdzie dwa razy jest
  1. <?php
  2. ".$r['nazwa']."
  3. ?>


Trzeba złączyć jeszcze raz tabele druzyna2 z druzyna_id i odróżnić od siebie
  1. <?php
  2. ".$r['nazwa']."
  3. ?>

Ale nie wiem jak to zrobić może mi ktoś pomóc ?

Ten post edytował szczabik 10.11.2008, 20:06:37
Go to the top of the page
+Quote Post
erix
post 10.11.2008, 23:10:42
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. SELECT *, (SELECT name FROM teams WHERE id=t1) AS n1, (SELECT name FROM teams WHERE id=t2) AS n2 FROM `matches`


Spróbuj w ten deseń.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
szczabik
post 11.11.2008, 12:19:15
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Zrobiłem to tak
  1. SELECT n.*, (SELECT r.* FROM druzyny WHERE r.druzyna_id = n.druzyna1) AS n1, (SELECT r.* FROM druzyny WHERE r.druzyna_id = n.druzyna2) AS n2 FROM nadchodz&#261;ce_mecze;

i wywala błąd. Wie ktoś czemu ?

Ten post edytował szczabik 11.11.2008, 12:19:34
Go to the top of the page
+Quote Post
phpion
post 11.11.2008, 12:38:18
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(szczabik @ 11.11.2008, 14:19:15 ) *
Zrobiłem to tak i wywala błąd. Wie ktoś czemu ?

Bo masz błąd w zapytaniu.

Ja zamiast podzapytań użyłbym złączeń. W tym przypadku musisz dwukrtonie dołączyć tą samą tabelę ale z różnymi warunkami. Niedawno pisałem o tym w innym temacie.
http://forum.php.pl/index.php?s=&showt...st&p=534424
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: 13.06.2025 - 08:33