Vielen Dank für eure Hilfe, mein fertiger Code sieht nun wie folgt aus, ist dieser soweit ok, sprich kann ich damit arbeiten, oder sollte ich noch etwas ändern. Da ich am Anfang stehe, ist dieses jetzt noch problemlos Möglich.
Meine Tabelle für Sprachen, die vom User ausgewählt werden
CREATE TABLE IF NOT EXISTS `sprachen_user` (
`su_id` int(11) NOT NULL,
`su_userID` varchar(200) NOT NULL,
`su_sprachenID` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;
Wenn ein Eintrag vorhanden ist, sieht dieser so aus
INSERT INTO `sprachen_user` (`su_id`, `su_userID`, `su_sprachenID`) VALUES
(13, 'c320b10a9dcb0e729cc70b8e072c0c2b', '1'),
(14, 'c320b10a9dcb0e729cc70b8e072c0c2b', '4');
Meine Tabelle für „sprachen“ die dem User zur Verfügung stehen
CREATE TABLE IF NOT EXISTS `sprachen` (
`s_id` int(11) NOT NULL,
`s_titel` varchar(200) NOT NULL,
`s_bezeichnung` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
Dieser Inhalt sieht so aus
INSERT INTO `sprachen` (`s_id`, `s_titel`, `s_bezeichnung`) VALUES
(1, 'Deutsch', 'deutsch'),
(2, 'Holländisch', 'hollaendisch'),
(3, 'Tschechisch', 'tschechisch'),
(4, 'Türkisch', 'tuerkisch'),
(5, 'Russisch', 'russisch');
Meine Checkboxen lasse ich dynamisch zusammen bauen, dieses habe ich so umgesetzt
<form name="form1" method="post" action="">
<?php
$stmt = $mysqli->prepare("SELECT s_id, s_titel, s_bezeichnung FROM sprachen");
$stmt->execute();
$stmt->bind_result($s_id, $s_titel, $s_bezeichnung);
while($stmt->fetch()) {
?>
<input name="lang[]" type="checkbox" id="<?php echo $s_bezeichnung;?>" value="<?php echo $s_id;?>" <?php echo (in_array($s_id,$teile)?'checked="checked"':NULL) ?>>
<label for="<?php echo $s_bezeichnung;?>"><?php echo $s_titel;?></label>
<br>
<?php
}
?>
<br>
<input type="submit" name="abschicken" id="abschicken" value="Daten eintragen">
</form>
Mein Insert & gegebenenfalls löschen sie so aus
if(isset($_POST['abschicken'])){
$id = $user_code;
$stmt = $mysqli->prepare("DELETE FROM sprachen_user WHERE su_userID=?");
$stmt->bind_param("s",$id);
$stmt->execute();
if(is_array($_POST["lang"]) && $_POST["lang"][0]){
foreach($_POST["lang"] as $v){
$stmt = $mysqli->prepare("INSERT INTO sprachen_user (su_userID, su_sprachenID) VALUES (?, ?)");
$su_sprachenID = $v;
$su_userID = $user_code;
$stmt->bind_param("ss", $su_userID, $su_sprachenID);
$stmt->execute();
}}
Jetzt kommt noch das anklicken meiner Boxen, wenn ein User auf die Seite kommt um seine Sprachen zu bearbeiten, dieses setzte ich wie folgt um
$teile = array();
$stmt = $mysqli->prepare("SELECT
web_users.user_code,
sprachen_user.su_userID,
sprachen_user.su_sprachenID
FROM web_users
LEFT JOIN sprachen_user
ON web_users.user_code = sprachen_user.su_userID
WHERE user_session=?");
$stmt->bind_param("s", session_id());
$stmt->execute();
$stmt->bind_result($user_code, $su_userID, $su_sprachenID);
while($stmt->fetch()) {
$teile[] = $su_sprachenID;
}