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.