web_wolf: Datenbank-Einträge mit '0' ans Ende

Beitrag lesen

Hallo Community,

Ich bin seit einiger Zeit dabei ein kleines Browserspiel zu entwickeln.
Das ganze hat bis jetzt super funktioniert. =)

Heute stehe ich vor einem Problem, für das ich Hilfe benötige.

Dabei geht es um ein Gruppen-System. Spieler können Gruppen bilden und dann gemeinsam spielen.

ich habe folgende Tabelle in meiner Datenbank (vereinfacht)

TABLE_BENUTZER
  id
  name
  passwort
  gruppen_id

TABLE_GRUPPEN
  id
  name
  benutzer_1_id
  benutzer_2_id
  benutzer_3_id
  benutzer_4_id
  benutzer_5_id

Die Tabelle TABLE_BENUTZER enthält logischerweise alle angemeldeten Benutzer
und die Tabelle TABLE_GRUPPEN dann alle Gruppen, die zur Zeit existieren.
(Maximale Anzahl der Benutzer in einer Gruppe = 5)

Ich habe das bisher so gestalltet, dass in der Spalte 'gruppen_id' die Gruppe eingetragen ist,
in der sich der einzelne Spieler befindet.
In der Tabelle TABLE_GROUP enthält dann ein der Spalten "benutzer_1_id" oder "benutzer_2_id" usw. die ID dieses Spielers.
Natürlich geht das auch mittels nur einer Tabelle...dessen bin ich mir bewusst.

Der Benutzer, der unter dem Eintrag "benutzer_1_id" registriert ist, ist der Gruppenführer.
Er darf andere Gruppen-Mitglieder rausschmeißen.

Wirft er nun zB den Spieler "benutzer_2_id" heraus, wird die dort eingetragene ID  in TABLE_GROUPS auf '0' gesetzt und
der Eintrag in der TABLE_USER auch.

Hier ein Beispiel nach der o.g. Aktion:

TABLE_BENUTZER
  id = 16
  name = Max_Mustermann
  passwort = CCdd6CC
  gruppen_id = 0      <-----------gruppen_id wird auf '0' gesetzt

TABLE_GRUPPEN
  id = 2
  name = Gruppe-XY
  benutzer_1_id = 544
  benutzer_2_id = 0   <-----------benutzer_id wird auf '0' gesetzt
  benutzer_3_id = 223
  benutzer_4_id = 434
  benutzer_5_id = 2

Und hier setzt mein Problem an:
der Mitglieds-Eintrag mit der '0' soll nun auf den letzten Eintrag, also auf "benutzer_5_id" gesetzt werden.
Die ID's der anderen Spieler (223, 434 und 2) sollen nach oben verschoben werden, etwa so:

TABLE_GRUPPEN
  id = 2
  name = Gruppe-XY
  benutzer_1_id = 544
  benutzer_2_id = 223
  benutzer_3_id = 434
  benutzer_4_id = 2
  benutzer_5_id = 0   <-----------der leere EIntrag wurde nach unten verschoben

Nur wie lässt sich das realisieren? O_o
Ich hatte da an eine SQL-FUnktion gedacht.
Mit PHP wird das natürlich auch funktionieren, was ich aber als sehr umständlich erachte.

Es würde mir sehr weiter helfen, wenn mir jemand zeigen könnte, wie ich das anstellen kann, danke.