teams
+--+------+
|ID| TEAM |
|1 |Yellow|
|2 |Green |
|3 |Blue |
|4 |Red |
+--+------+
Players
+--+------+
|ID| NAME |
|1 |Ben |
|2 |Mike |
|3 |Jason |
+--+------+
Lineups
+---+---+
|PID|TID|
|1 |3 |
|2 |1 |
|2 |4 |
|3 |2 |
+--+----+
<?php
$sql = " SELECT teams.id teamsid, teams.team teamname, lineups.tid, players.name
FROM teams
LEFT JOIN lineups ON lineups.tid = teams.id
AND lineups.pid = 2
LEFT JOIN players ON lineups.pid = players.id
GROUP BY players.name
ORDER BY team
";
$result = mysqli_query($connection, $sql);
while($row = mysqli_fetch_assoc($result)){
echo $row['name'];
$checked = ($row['tid'] === NULL ? '' : ' checked="checked"');
?>
<label>
<input type="checkbox" <?php echo $checked; ?>><?php echo $row['teamname']; ?>
</label><?php
}
?>
De voorlaatste regel in de query GROUP BY players.name zorgt ervoor dat de data niet word weergegeven zoals ik zou willen.
Zonder deze regel zou het resultaat zijn
<label><input type="checkbox">Blauw</label>
<label><input type="checkbox">Geel</label>
"Ben"
<label><input type="checkbox" checked="checked">Groen</label>
"Ben"
<label><input type="checkbox" checked="checked">Rood</label>
Maar ik wil de player naam 1 keer laten voorkomen in het resultaat, ik dacht dan gebruik ik GROUP BY maar dit levert als resultaat op
<label><input type="checkbox">Geel</label>
"Ben"
<label><input type="checkbox" checked="checked">Rood</label>
Het resultaat dat ik graag zou willen is
"Ben"
<label><input type="checkbox">Blauw</label>
<label><input type="checkbox">Geel</label>
<label><input type="checkbox" checked="checked">Groen</label>
<label><input type="checkbox" checked="checked">Rood</label>
Wat moet ik aanpassen hiervoor?