Jeśli chcesz, aby zostało to zrobione w zapytaniu MySQL, jest to naprawdę więcej kłopotów niż jest to warte. Po pierwsze, składnia jest naprawdę dziwna (o ile pamiętam), aby nazwa grupy była wymieniona na górze każdej grupy. Wyniki są nadal traktowane jako wiersze, więc nazwa grupy będzie traktowana jako wiersz ze wszystkimi pozostałymi kolumnami jako Null, więc nie zaoszczędzisz tak naprawdęczasu ani wysiłku w skrypcie PHP ponieważ musi on wykonaćinstrukcję if złapać, gdy trafi na nazwę grupy zamiast danych grupy.
Jeśli chcesz, aby wykonała to pętla while PHP, Johan jest na dobrej drodze. W podobnej sytuacji używam następującego:
$result = $sql->query($query);
$prev_group = "";
while($data = $result->fetch_assoc()){
$curr_group = $data['group'];
if ($curr_group !== $prev_group) {
echo "<h1>$curr_group</h1>";
$prev_group = $curr_group;
}
else {
echo $data;
.....
}
Oczywiście dane echa zostałyby skonfigurowane tak, aby odbijały części danych tak, jak chcesz. Ale $prev_group/$curr_group jest skonfigurowana tak, że nie będą pasować tylko wtedy, gdy jesteś w nowej grupie i chcesz wydrukować jakiś nagłówek.