Hi!
habe mir die Abfrage nach deinen Vorgaben versucht zu erstellen:
Der PHP-Code ist für dein Problem nicht weiter wichtig, den kannst du weglassen.
SELECT *, GROUP_CONCAT(DISTINCT name ORDER BY nummer DESC SEPARATOR ' ') from tabelle GROUP BY name, status
SELECT * fragt alle Felder ab, auch die, auf die du im Prinzip nur mit Aggregatfunktionen zugreifen solltest. MySQL lässt das zwar zu, andere DBMS sind strenger und werten das als Fehler. Gib lieber nur die Felder an, über die du gruppierst und die Aggregatfunktionen. Dein eigentliches Problem ist aber die Formulierung des GROUP_CONCAT()-Ausdrucks.
GROUP_CONCAT(DISTINCT name ORDER BY nummer DESC SEPARATOR ' ')
Die Gruppierung ist schon mit der GROUP-BY-Klausel erledigt. GROUP_CONCAT() ist nur noch auf die zusammenzufassenden Daten anzuwenden, also nicht auf name sondern auf nummer. Hast du doppelte Nummern innerhalb einer Gruppierung? Also, kommt beispielsweise die 511 bei Klaus-0 doppelt vor? Wenn ja, dann brauchst du das DISTINCT, ansonsten nicht. Wenn sie bei Klaus-1 nochmal vorkommt, ist das eine andere Gruppe und von DISTINCT unberührt.
Lo!