Guten Morgen,
ich verstehe mal wieder etwas nicht. Und zwar wird ein Wert nicht in die Datenbank eingetragen.
<form method="post">
<ul>
<label>
<input
type="checkbox"
name="bereich[]"
value="0"
<?php if (in_array("0", $teile25)): ?>checked<?php endif ?>>
P1
</label>
<label>
<input
type="checkbox"
name="bereich[]"
value="1"
<?php if (in_array("1", $teile25)): ?>checked<?php endif ?>>
P2
</label>
</ul>
<button type="submit" name="action">Filter anwenden </button>
</form>
if(isset($_POST['action'])){
$stmt_userBereiche = $mysqli->prepare("DELETE FROM settings WHERE kps_userid=?");
$stmt_userBereiche->bind_param("s",$object->user_code);
$stmt_userBereiche->execute();
if(is_array($_POST["bereich"]) && $_POST["bereich"][0]){
foreach($_POST["bereich"] as $v){
$stmt = $mysqli->prepare("
INSERT INTO settings (kps_userid, kps_kalenderid) VALUES (?, ?)");
$kps_userid = $object->user_code;
$kps_kalenderid = $v;
$stmt->bind_param("ss", $kps_userid, $kps_kalenderid);
$stmt->execute();
header("Location: $extra");
}
}
}
Der Wert mit 1 wird eingetragen, wenn ich nur den ersten wähle also 0 wird nicht eingetragen, wähle ich beide aus, wird ebenfalls nicht eingetragen. Da es mit dem zweiten Wert also der 1 funktioniert gehe ich stark davon aus, es liegt an der 0. Diese benötige ich aber in der Datenbank.
Wenn ich
var_dump($_POST["bereich"]);
ausgeben lasse, erhalte ich
array(2) { [0]=> string(1) "0" [1]=> string(1) "1" }
also beide Werte sind vorhanden? Was kann ich machen bzw. wo liegt überhaupt das Problem?