Tjena,
Jag har en tabell (Games) där jag sparar spelarnas ID i fält (Player1ID, Player2ID etc.) för varje match. Jag hämtar sedan matcherna från Games och skriver ut alla fält Player1ID, Player2ID etc. Men hur kopplar jag spelarnas ID nummer med namnen från en annan tabell som heter Players där varje spelare ligger?
Hoppas någon förstår och orkar hjälpa mig :)
noshornin skrev:
sql join: http://www.w3schools.com/Sql/sql_join.asp
Yes, jag kör en JOIN nu för att plocka fram namnen från Players. Men jag får bara med första namnet.
$get = mysql_query("SELECT Pla.Name, Nig.Date, Nig.HostID, Nig.Player1ID, Nig.Player2ID, Nig.Player3ID
FROM PokerNights Nig
INNER JOIN PokerPlayers AS Pla ON Pla.ID = Nig.Player1ID");
$Player1ID = $row['Name'];
$Player2ID = $row['Name'];
$Player3ID = $row['Name'];
echo "<td class=\"TDRegular\">$Player1ID, $Player2ID, $Player3ID.</td>";
Du måste sätta ett alias på spelare2 namn, om du inte ha fått svar innan jag kommer hem så skall jag se om jag inte kan skriva din del fråga
$get = mysql_query("
SELECT
Pla.Name as Player1Name,
Pla2.Name as Player2Name,
Pla3.Name as Player3Name,
Nig.Date,
Nig.HostID,
Nig.Player1ID,
Nig.Player2ID,
Nig.Player3ID
FROM
PokerNights Nig
INNER JOIN
PokerPlayers Pla
ON Pla.ID = Nig.Player1ID
INNER JOIN
PokerPlayers Pla2
ON Pla2.ID = Nig.Player2ID
INNER JOIN
PokerPlayers Pla3
ON Pla3.ID = Nig.Player3ID
");
Vet inte om detta är det mest optimala, inte heller testad.
rhdfMedlem sedan okt. 2007446 inlägg det optimala hade ju varit att ha spelarna i en egen kopplingstabell
tblGames
GameID..........
tblPlayers
PlayerID | PlayerName ..........
tblGamePlayers
GameID | PlayerID
voigtann1 skrev:
$get = mysql_query("
SELECT
Pla.Name as Player1Name,
Pla2.Name as Player2Name,
Pla3.Name as Player3Name,
Nig.Date,
Nig.HostID,
Nig.Player1ID,
Nig.Player2ID,
Nig.Player3ID
FROM
PokerNights Nig
INNER JOIN
PokerPlayers Pla
ON Pla.ID = Nig.Player1ID
INNER JOIN
PokerPlayers Pla2
ON Pla2.ID = Nig.Player2ID
INNER JOIN
PokerPlayers Pla3
ON Pla3.ID = Nig.Player3ID
");
Vet inte om detta är det mest optimala, inte heller testad.
Detta funkar, nästan! Min tabell (PokerNights) består av flera fält (Player1ID till Player20ID) eftersom det alltid är olika antal deltagare. Så säg att det är 6 deltagare, då blir ju 14 fält tomma, som bara innehåller en 0:a. När detta är fallet skrivs inget ut alls. Om jag istället bestämde i SQL-satsen att bara hämta de första 6 spelarna då funkar det prima. Går det att komma runt detta på något sätt?
Kör som rhdf skriver, betydligt smartare.
Okej. Gör om, gör rätt :)