Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Łączenie i wyświetlanie danych z dwóch tabel
Majer_s92
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.03.2012
Skąd: KNS

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


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:
(IMG:http://iv.pl/images/60172696199918239596.jpg)

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 (IMG:style_emoticons/default/sad.gif) Dlatego proszę o pomoc.
Pozdrawiam.

Ten post edytował Majer_s92 3.03.2012, 11:51:34
Go to the top of the page
+Quote Post
big_zygi
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 6.02.2012
Skąd: 11°19'N, 142°15'E

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


WHERE bans.id";
z czym to porównujesz?

czy nie powinno tam być WHERE bans.id=COŚ ?
Go to the top of the page
+Quote Post
Majer_s92
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.03.2012
Skąd: KNS

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


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.
Go to the top of the page
+Quote Post
Pacio
post
Post #4





Grupa: Zarejestrowani
Postów: 105
Pomógł: 27
Dołączył: 30.10.2005
Skąd: Lublin

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


  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
Go to the top of the page
+Quote Post
Majer_s92
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.03.2012
Skąd: KNS

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


Pacio, wszystko działa jak należy (IMG:style_emoticons/default/smile.gif) dzięki wielkie. +1 Pomógł.
Do zamknięcia.
Pozdrawiam.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 03:54