Eingeweidemann
Mitglied
Hallo liebe Tutorials Community!
Ich habe nicht viel Erfahrung mit PHP, habe gerade mal das Quakenet Tutorial durchgemacht. Dann kam ich auf die Idee meine eigene "Blog Software" zuschreiben, mit dem was ich dort gelernt habe. Anschauen kann man das ganze bei blog.psoke.de .Ich habe das Problem, wenn ich Einträge in meinem Blog über das Webinterface lösche bleiben die dazugehörenden Kommentare als Karteileichen da. Ich habe jetzt eine Checkbox reingesetzt um die Kommentare mit zu löschen. Wenn man den "Löschen"-Button klickt, löscht er den Eintrag und falls die Checkbox gechecked ist, die Kommentare mit. (Sollte er jedenfalls). Das Formular beim "Submit" heißt "delete". Der Query wird dann je nach REQUEST_METHOD ausgewählt.
Das ist die "blog" Tabelle:
http://dl.dropbox.com/u/6274093/sql_blog.png
Das ist die "blog_comments" Tabelle:
http://dl.dropbox.com/u/6274093/sql_blog_comments.png
Der Code:
Ein Beitrag im HTML:
Wenn ich die Checkbox nicht checke, dann führt er den Query aus, löscht den Beitrag (aber natürlich die Kommentare nicht mit, soll ja auch so sein). Wenn ich nun aber die Checkbox checke, wirft er mir beim Parsen diesen Fehler aus:
Wenn ich den Query aber in PhpMyAdmin kopiere, statt der Variablen bestehende IDs einsetze, klappt alles.
Das ganze ist mir ein Rätsel, ich hoffe ihr könnt mir helfen.
Vielen Dank im Vorraus!
Ich habe nicht viel Erfahrung mit PHP, habe gerade mal das Quakenet Tutorial durchgemacht. Dann kam ich auf die Idee meine eigene "Blog Software" zuschreiben, mit dem was ich dort gelernt habe. Anschauen kann man das ganze bei blog.psoke.de .Ich habe das Problem, wenn ich Einträge in meinem Blog über das Webinterface lösche bleiben die dazugehörenden Kommentare als Karteileichen da. Ich habe jetzt eine Checkbox reingesetzt um die Kommentare mit zu löschen. Wenn man den "Löschen"-Button klickt, löscht er den Eintrag und falls die Checkbox gechecked ist, die Kommentare mit. (Sollte er jedenfalls). Das Formular beim "Submit" heißt "delete". Der Query wird dann je nach REQUEST_METHOD ausgewählt.
Das ist die "blog" Tabelle:
http://dl.dropbox.com/u/6274093/sql_blog.png
Das ist die "blog_comments" Tabelle:
http://dl.dropbox.com/u/6274093/sql_blog_comments.png
Der Code:
PHP:
if ('POST' == $_SERVER['REQUEST_METHOD']){
if ($_POST['delete']){
// Check auf die Checkbox
if (isset($_POST['deleteComments'])){
$query =
'DELETE FROM
blog
WHERE
blog.ID = "'.$_POST['ID'].'";
DELETE FROM
blog_comments
WHERE
blog_comments.entry_ID = "'.$_POST['ID'].'"';
}
else{
$query =
'DELETE FROM
blog
WHERE
blog.ID = "'.$_POST['ID'].'"';
}
// Ausführen
$check = $db->query($query);
// Prüfen ob der Query ausgeführt wurde
if (!$check){
die('Der Query konnte nicht ausgefuhrt werden: '.$db->error);
}
// Meldung ausgeben
echo "Eintrag wurde gelöscht!";
}
else if ($_POST['edit']){
// Beitrag UPDATE Query
}
else {
die('Falsches Formular');
}
}
HTML:
<!-- ID: 8 -->
<div class="item">
<h2>PHP</h2>
POSTED ON <span class="date">2010-06-01 01:31:34</span><br>
<input type="button" id="showformular_8" value="Bearbeiten" onClick="javascript:changevisible('editentry_8');changevalue('showformular_8','Bearbeiten')"> —
<form action="editentries.php" method="post" style="display:inline;"><input type="hidden" name="ID" value="8"><input type="submit" name="delete" value="Löschen" class="delete-button"><input type="checkbox" name="deleteComments" checked>Kommentare mitlöschen </form>
<form action="editentries.php" method="post" id="editentry_8" style="display:none;"><br>
Kategorie: <select name="Category">
<option value="new">Neue Kategorie anlegen...</option>
<option selected value="Aktuelles">Jetzt: Aktuelles</option>
<option value="Aktuelles">Aktuelles</option>
<option value="Assassins Creed">Assassins Creed</option>
</select> - Neu: <input type="text" name="newCategory"><br>
Reihenfolge: <input type="text" name="Order" size="2" value="0"> (Muss bei 'Aktuelles' leer bleiben)<br><br>
Überschrift:<br><input type="text" name="Headline" size="50" value="PHP"><br><br>
Inhalt:<br><textarea name="Content" rows="10" cols="50">
PHP ist eine tolle Serverseitige Programmiersprache!
</textarea><br><br>
<input type="hidden" name="ID" value="8">
<input type="submit" name="edit" value="Fertig" class="verify-button"> <input type="reset" name="reset" value="Leeren">
</form>
<hr>
</div>
<!-- / ID: 8 -->
Code:
Der Query konnte nicht ausgefuhrt werden:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
'DELETE FROM blog_comments WHERE blog_comments.entry_ID = "27"' at line 5
Code:
Ihr SQL-Befehl wurde erfolgreich ausgeführt.
DELETE FROM blog WHERE blog.ID = "28";# 1 Zeile(n) betroffen.
DELETE FROM blog_comments WHERE blog_comments.entry_ID = "28";# 1 Zeile(n) betroffen.
Vielen Dank im Vorraus!
Zuletzt bearbeitet: