PHP-Skript zum Löschen von Datensätzen

L

librarian

Mitglied
Thread Starter
Dabei seit
21.08.2005
Beiträge
36
Reaktionspunkte
0
Hallo!
Habe hier ein Skript zum Löschen von Datensätzen. Nach außen hin sieht's so aus, als ob's funktioniert => keine Fehlermeldung.
Aber in der Datenbank tut sich nichts.

PHP:
<html>
<head>
  <title>Studentendaten</title>
  <LINK REL="stylesheet" HREF="hausarbeit.css" TYPE="text/css">  
</head>

<body>
<!--Beginn des PHP-Scriptes-->
<?php

#Einbindung der Datenbankverbindung
include ('contact.php');

/*mysql-Anweisung zum Loeschen von Daten in der Datenbank, $_POST['lfd_nr'] ist die Variable, die aus loeschen_waehlen.php uebernommen, hier eingesetzt und deren Datensatz dann in der Datenbak geloescht wird.*/ 

  $sql = 'DELETE FROM studidaten  
       WHERE lfd_nr = "'.mysql_escape_string($_POST['lfd_nr']).'"';

/*wenn die Anweisung fuer die Datenbank erfolgt ist, wird dies noch einmal durch diese Ausgabe bestaetigt*/
if (mysql_query($sql, $db)) {
echo '<h2 align="center">Der Datensatz '.mysql_escape_string($_POST['lfd_nr']).' wurde gel&ouml;scht.</h2>';
} 

/*anderenfalls sollen  diese Fehlermeldung und der Fehlertext der ausgeführten mysql-Anweisung ausgegeben werden*/
else {
echo "Die Daten wurden nicht gel&ouml;scht!".mysql_error();
}
#Verbindung zum Datenbank-Server wird geschlossen
mysql_close($db);
?>
</body>
</html>
 
Hi,

lass dir die Query ausgeben und führ sie mal direkt aus. Übrigens ist in SQL die Einklammerung mit einzelnen Anführungszeichen Standard.

Morfio ...
 
http://de.php.net/mysql_query schrieb:
Nur für SELECT, EXPLAIN, SHOW oder DESCRIBE Anweisungen liefert mysql_query() eine Ressourcen-Kennung oder FALSE, falls die Anfrage nicht korrekt ausgeführt wurde. Für alle anderen SQL Anweisungen ist der Rückgabewert von mysql_query() im Erfolgsfall TRUE, im Fehlerfall FALSE. Ein Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war und vom Server ausgeführt werden konnte. Das alleine sagt jedoch überhaupt nichts über die Anzahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich war, ohne einen einzigen Datensatz zur verändern oder zu liefern.

In deinem Fall wäre also ein mysql_affected_rows($db); angebracht, um herrauszufinden, ob die Abfrage Erfolg hatte. Eine Fehlermeldung erhieltest du nämlich nur, wenn die Abfrage syntaktisch oder semantisch falsch wäre.
 
Zuletzt bearbeitet:
Ach so.
Habe jetzt auch den Fehler gefunden.
Danke für die Hilfe!
 
Zurück
Oben Unten