Benutzer mehreren Gruppen zuweisen

So vielen dank für den Ansatz, wo ich jedoch nun hänge ist beim löschen.
Ich habe ein Mehrfach Auswahlfeld erstellt welches die values als array posted.
Nun soll aber geschaut werden wenn man eine Gruppe deselektiert hat ob diese im array vorhanden ist oder nicht wenn nicht dann soll es die aus der Tabelle löschen.
PHP:
 $combi = $_POST["user_group_combi"];
 $combi_2 = $combi;
  foreach($combi AS $combination)
  {
    

    mysql_query("UPDATE user_group_combi SET userID='".$_POST["userID"]."',groupID='".$combination."'");
    mysql_query("DELETE FROM user_group_combi WHERE userID='".$_POST["userID"]."' AND groupID!='".$combination."'");
  }
HTML:
<form action="<?php $_SERVER["PHP_SELF"]; ?>" method="POST">
<select name="user_group_combi[]" size="10" multiple>
<?php
$SQL_select = mysql_query("SELECT * FROM user_group_combi WHERE userID='9'");
while($ds = mysql_fetch_object($SQL_select))
{
$groupID = $ds->groupID;
$SQL_selected = mysql_query("SELECT groupName FROM groupuser WHERE groupID='".$groupID."'");
$select_fetch = mysql_fetch_array($SQL_selected);
echo "<option value=\"".$groupID."\" selected>".$select_fetch["groupName"]."</option>";
}

?>
</select>
<input type="hidden" value="9" name="userID"/>
<input type="submit" value="Absenden" name="submit" />
</form>
Das Problem bei dem jetzigen stand ist, dass er nur noch den letzten wert im array weis und dann alle anderen löscht, also auch die wo eigentlich drinnen bleiben sollten.
 
PHP:
    mysql_query("UPDATE user_group_combi SET userID='".$_POST["userID"]."',groupID='".$combination."'");
Das macht deine Daten kaput.t, besser gesagt: wegen deinem PRIMARY KEY sollte es einen fehler werfen.

Du versuchst alle Daten der Tabelle user_group_combi mit demselben user und group zu überschreiben.

Diese Zeile brauchst du für gar nix.



Am enfachsten löschst du alle Zuordungen des Users und füllst sie anhand der combo neu ein.

PHP:
<?php
	$sql = "DELETE FROM user_group_combi 
			WHERE userID='{$_POST['userID']}'";
	mysql_query($sql):
	 
	foreach($_POST["user_group_combi"] as $key => $groupID){
		$sql = "INSER INTO user_group_combi VALUES ('{$_POST['userID']}', '{$groupID}')";
		mysql_query($sql);
	}
?>
 
Zurück