Ich versuche, eine Art einfache Blogging-Plattform zu machen, und es ist ziemlich gut bis jetzt gegangen, hat meine Seite eine Liste von Artikeln in einer Tabelle es bekommt diese Liste von Meine SQL-Datenbank und es gibt auch eine Spalte, die angibt, ob der Artikel öffentlich ist oder nicht. Das Problem ist, dass ich das Schreiben aller dieser Checkboxen nicht als Boolean zum Arbeiten bekomme (wenn Eingabe 1 else 0). Der Teil Ich denke, es schief geht istPHP mehrere Werte der Datenbank durch Kontrollkästchen ändern boolean
<?php
if (isset($_POST['submit'])) {
try {
$stmt = $db->prepare('SELECT postID FROM blog_posts') ;
$idArray = $stmt->fetch();
for($i = $idArray; $i > 0; $i--){
if(document.getElementById($i).checked){
$public = 1;
} else {
$public = 0;
}
try {
$stmt = $db->prepare('UPDATE blog_posts SET public = :public WHERE postID = '$i) ;
$stmt->execute(array(
':public' => $public
));
}
}
}
?>The entire code can be found here on [Hastebin][1] Thanks in advance
'document.getElementById ($ i)' was soll das bedeuten? Das ist JavaScript-Code, nicht PHP !! – FirstOne
Sie sollten wahrscheinlich ein JavaScript-Skript ausführen, das einen wahren oder falschen Wert in einer ausgeblendeten Eingabe hinzufügt, wenn Sie ein Formular verwenden. – Jojo01
Sie bereiten eine Anweisung vor und versuchen dann, sie abzurufen, ohne sie ausgeführt zu haben. Ihre for-Schleife versucht zu '--' was wäre ein Array, wenn Sie Ihre vorbereitete Anweisung erfolgreich ausgeführt hätten. Sie haben JavaScript-Code in einer PHP-If-Bedingung. Sie haben Testblöcke verschachtelt, jede ohne einen Haken. Das sind die Hauptprobleme, die ich sehe. –