Tjena!
Sysslar med ett litet webbspel kan man väl kalla det. Men har stött på ett problem, eller snarare en frågeställning.
Jag vill lista vilka teams som finns och vilka medlemmar som ingår i dem. Just nu har jag två tabeller för att lagra datan:
Tabell: teams
Kolumner: name, lvl, accept_users
Tabell: users_teams_matches
Kolumner: username, teamname
Jag vill alltså presentera all data från dessa tabeller på detta sätt:
teams[name1] - teams[lvl] - teams[accept_users]
--- user_teams_matches[teamname1][username1]
--- user_teams_matches[teamname1][username2]
teams[name2] - teams[lvl] - teams[accept_users]
--- user_teams_matches[teamname2][username3]
--- user_teams_matches[teamname2][username4]
etc, etc. Hoppas ni förstår vad jag menar.
Jag anar att det är lite onödigt att köra MySQL-frågor i en loop. T. ex:
while ($teams = $resultteams->fetch_assoc()) {
echo $teams['name'];
$query_users = "SELECT username FROM users_teams_matches WHERE teamname =".$teams['name'];
$resultusers = $mysqli->query($query_users);
while ($users = $resultusers->fetch_assoc()) {
echo $users['username'];
}
}
Kan väl inte vara en vettig idé med så många querys när jag ändå ska hämta all data från tabellerna i slutändan?
Tänkte om jag skulle göra på detta sätt istället:
$query = "SELECT name, lvl, accept_users FROM teams ORDER BY lvl";
$query2 = "SELECT username, teamname FROM users_teams_matches";
$resteams = $mysqli->query($query);
$resusers = $mysqli->query($query2);
while ($teams = $resteams->fetch_assoc()) {
echo $teams['name'];
while ($users = $resusers->fetch_assoc()) {
if ($users['teamname'] == $teams['name']) {
echo $users['username'];
}
}
}
Skulle det senare alternativet innebära en mindre belastning på servern? Vilket tycker ni är smidigast, har ni något annat sätt kanske?
Anledningen till att jag valt att lagra datan på detta vis i dessa tabeller är att det skulle vara smidigt för kommande funktionaliteter.
(Vet att koden i sig är bristfällig, slängde bara ihop två exempel.)
Tack på förhand!
Mvh, Xburk.