Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Łączenie i wyświetlanie danych z dwóch tabel
Forum PHP.pl > Forum > Przedszkole
Majer_s92
Witam,
Mam dosyć nietypowy problem, aczkolwiek chciałbym wyświetlić dane z dwóch tabel, jednak mam problem z jednym rekordem.
Wyjaśnie to na przykładzie:

W bazie danych posiadam 2 tabele:
bans (id, id_player_banned, id_player_given, date_created, date_end, reason)
players (id, nick)

Chciałbym aby przy wyświetlaniu danych z tabeli bans zamiast id_player_banned oraz id_player_given wyświetlało nick pobrany z tabeli players

Ja napisałem takie coś:
  1. <?
  2. include "db_main.php";
  3. $query="SELECT players.id, players.nick, bans.id, bans.id_player_banned, bans.id_player_given, bans.date_created, bans.date_end, bans.reason FROM players
  4. LEFT JOIN bans ON bans.player_banned = players.id WHERE bans.id";
  5. $result=mysql_query($query);
  6.  
  7. $num=mysql_numrows($result);
  8.  
  9.  
  10. echo "<font size='2'><table border='1' frame='void' rules='all'>";
  11. echo "<tr><td><b>Gracz</b></td><td><b>Administrator</b></td><td><b>Powód</b></td><td><b>Data Dodania</b></td><td><b>Wygaśnie</b></td></tr>";
  12. $i=0;
  13. while ($i < $num) {
  14.  
  15. $player=mysql_result($result,$i,"nick");
  16. $admin=mysql_result($result,$i,"player_given");
  17. $dodany=mysql_result($result,$i,"date_created");
  18. $koniec=mysql_result($result,$i,"date_end");
  19. $powod=mysql_result($result,$i,"reason");
  20.  
  21.  
  22.  
  23. echo "<tr><td width='100'>$player</td><td width='100'>$admin</td><td width='200'>$powod</td><td width='100'>$dodany</td><td width='100'>$koniec</td></tr>";
  24. $i++;
  25. }
  26. echo "</table></font>";
  27. ?>


W efekcie wyśietla mi takie przykładowe dane:


Jak zrobić aby można było wyświetlić jednocześnie nick Gracza (id_player_banned) oraz Nick Administratora (id_player_given)?
Jak połączyć te 2 rekordy z jednym rekordem id w tabeli players?
Próbowałem na kilka sposobów, ale niestety nie potrafie sad.gif Dlatego proszę o pomoc.
Pozdrawiam.
big_zygi
WHERE bans.id";
z czym to porównujesz?

czy nie powinno tam być WHERE bans.id=COŚ ?
Majer_s92
Nie powinno być nic gdyż chcę aby wyświetlane były wszystkie rekordy z tabeli. Wszystko działa jak należy tylko nie wiem jak zamiast id_player_given wyświetlić nick pobrany z players.
Pacio
  1. SELECT
  2. players.id, players.nick, bans.id, bans.id_player_banned,
  3. bans.id_player_given,
  4. bans.date_created, bans.date_end, bans.reason,
  5. (
  6. SELECT players.nick
  7. FROM players
  8. WHERE players.id = bans.id_player_given
  9. ) AS admin_nick
  10. FROM players
  11. LEFT JOIN bans ON bans.player_banned = players.id
  12. WHERE bans.id
Majer_s92
Pacio, wszystko działa jak należy smile.gif dzięki wielkie. +1 Pomógł.
Do zamknięcia.
Pozdrawiam.
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.