Eintrag wird nicht gelöscht obwohl keine Fehlermeldung

He Leute,
Ich habe in meinem Gästebuch zwei Buttons, bei einem kann man den Beitrag löschen und bei dem anderen kann man ihn bearbeiten. Wenn ich jetzt auf den löschen button klicke, wird keine Fehlermeldung ausgegeben, jedoch wird der Beitrag nicht gelöscht.

<?php $Id_delete = $_POST['delete']; $mysql_connect = mysql_connect("localhost","powerfly","*****"); if($mysql_connect or die("Verbindung fehlgeschlagen")) { $db_select = mysql_select_db("*****", $mysql_connect); if($db_select or die("Verbindung zur Datenbank fehlgeschlagen")) { $mysql_befehl = "DELETE FROM Gaestebuch WHERE Id = '".$Id_delete."'"; if(mysql_query($mysql_befehl) or die (mysql_error())) { echo("Ihr Eintrag wurde erfolgreich gel&ouml;scht. <a href='http://www.powerfly.bplaced.net/PHP/Gaestebuch.php'>Hier</a> kommen sie zur&uuml;ck zum G&auml;stebuch"); } } else { printf(mysql_error()); } } else { printf(mysql_error()); } ?>

Wie sieht denn das dazu passende Formular aus? Ich tippe mal darauf dass mit der $_POST Variable was nicht stimmt…

das dazugehörige Formular sieht so aus. Die Variable datensatz[‘Id’] funktioniert, diese habe ich schon mit einer ausgabe getestet!

<form method='post' action='delete.php'> <input type='image' style='height: 15px; width: 15px; float: left;' name='delete' value='".$datensatz['Id']."' src='../IMG/delete-icon.png'/> </form>

hi,

in dem formular fehlt entweder ganz am anfang ein <?php echo " und am ende ";

oder du musst bei value folgendes schrieben

Also ich habe einfach die “” weggelassen bei WHERE Id=, und auf einmal gings!

<?php $Id_delete = $_POST['delete']; $mysql_connect = mysql_connect("localhost","powerfly","powerfly"); if($mysql_connect or die(mysql_error())) { $db_select = mysql_select_db("powerfly", $mysql_connect); if($db_select or die(mysql_error())) { $mysql_befehl = "DELETE FROM Gaestebuch WHERE Id = '$Id_delete'"; if(mysql_query($mysql_befehl) or die (mysql_error())) { echo("Ihr Eintrag wurde erfolgreich gel&ouml;scht. <a href='http://www.powerfly.bplaced.net/PHP/Gaestebuch.php'>Hier</a> kommen sie zur&uuml;ck zum G&auml;stebuch."); } } else { printf(mysql_error()); } } else { printf(mysql_error()); } ?>

<span class="syntaxdefault"></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$mysql_befehl</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> or die </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">mysql_error</span><span class="syntaxkeyword">()))</span><span class="syntaxdefault"> </span> Das funktioniert so nicht - or ist in einer if-Abfrage ein logischer Vergleichsoperator. die ist in diesem Fall völliger Quatsch. Außerdem liefert mysql_error keine Fehlermeldung bei fehlgeschlagenem Verbindungsaufbau.

Als ich mal queries benutzt hab ( ist schon etwas her ) musste ich die ´ oder ` neben der Backspace-Taste benutzen.

Das simple ’ klappte da nicht.

Das ist MySQL ziemlich gleichgültig - Spalten kannst du sowohl in `, als auch in ´ oder ohne ein Anführungszeichen schreiben. Der Wert muss jedoch in einfachen Anführungszeichen stehen (sofern ein String, natürlich nur).