Horrortubby
Grünschnabel
Hallo,
ich hoffe ihr könnt mir helfen. Folgende Situation: Über eine Checkboxauswahlliste sollen einzelne Benutzer die in einer eigenen Tabelle(t_Mitglieder) stehen stehen einer Gruppe zugeordnet werden. Eine klassische 1:n Beziehung.
Hier mal das ganz grobe Modell der Datenbank:
t_Mitglieder:
-mitglieder_ID
-Name
-fkGroup
t_Group
-group_ID
-Name
In meinem Formular werden für eine Gruppe nun alle Mitglieder ausgelesen, jeder bekommt schön brav sein eigenes Checkbox Feld. Der Nutzer kann fröhlich makieren und makierungen Rückgängig machen und das ganze dann an das Script rüberjodeln. Das verarbeitet dann die Daten so:
Bisher prüft er also für JEDEN User in der Tabelle ob seine ID im Rückgabe Array des Formulars vorhanden ist und speichert das ganze dann dementsprechend. Naja sollte er eigentlich. Denn es funktioniert nicht und ich habe keinen blanken schimmer wieso. Ich habe die SQL Statements gecheckt, die sind korrekt. Er scheint auch richtig durch die Abfragen zu laufen, dennoch speichert er immer nur den letzten Datensatz.
Oder eine ganz andere Frage, habt ihr eine Idee wie ich den ganzen Prozess etwas performanter gestalten kann?
ich hoffe ihr könnt mir helfen. Folgende Situation: Über eine Checkboxauswahlliste sollen einzelne Benutzer die in einer eigenen Tabelle(t_Mitglieder) stehen stehen einer Gruppe zugeordnet werden. Eine klassische 1:n Beziehung.
Hier mal das ganz grobe Modell der Datenbank:
t_Mitglieder:
-mitglieder_ID
-Name
-fkGroup
t_Group
-group_ID
-Name
In meinem Formular werden für eine Gruppe nun alle Mitglieder ausgelesen, jeder bekommt schön brav sein eigenes Checkbox Feld. Der Nutzer kann fröhlich makieren und makierungen Rückgängig machen und das ganze dann an das Script rüberjodeln. Das verarbeitet dann die Daten so:
PHP:
$sql = "SELECT mb_id FROM t_Mitglieder";
$rs = mysql_query($sql);
while($row = mysql_fetch_object($rs))
{
foreach($_POST['fkGroup'] as $user)
{
if($user == $row->mb_id)
{
$sqlInsert = "UPDATE t_Mitglieder SET fkGroup = '$_POST[group_id]' WHERE mb_id LIKE $row->mb_id";
mysql_query($sqlInsert);
break 1;
}else
{
$sqlInsert = "UPDATE t_Mitglieder SET fkGroup = '0' WHERE mb_id LIKE $row->mb_id";
mysql_query($sqlInsert);
}
}
reset($_POST['fkGroup']);
}
Bisher prüft er also für JEDEN User in der Tabelle ob seine ID im Rückgabe Array des Formulars vorhanden ist und speichert das ganze dann dementsprechend. Naja sollte er eigentlich. Denn es funktioniert nicht und ich habe keinen blanken schimmer wieso. Ich habe die SQL Statements gecheckt, die sind korrekt. Er scheint auch richtig durch die Abfragen zu laufen, dennoch speichert er immer nur den letzten Datensatz.
Oder eine ganz andere Frage, habt ihr eine Idee wie ich den ganzen Prozess etwas performanter gestalten kann?
Zuletzt bearbeitet: