Datenbankeinträge löschen

cry_baby

Mitglied
Hallo,

ich habe eine Tabelle, in der der User Einträge in die Datenbank speichern kann. Die Einträge kann man später auch ansehen, soll sie editieren und löschen können.

Mein Problem ist das Auslesen der ID. Sobald ich auf den Button des jeweiligen Eintrags klicke, um den jeweiligen Eintrag zu löschen, löscht er mir alle Einträge, die sich in dieser Tabelle befinden. Was ist an meinem Code falsch?


Anzeige der Einträge:
PHP:
<?php

$host = "localhost";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$tabelle ="xxx";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "SELECT * from $tabelle ORDER BY Nummer";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

 while ($ausgabe = mysql_fetch_array ($result))
 {

 print ("
 <a href=einsaetze_2008_editieren.php?id='$id' target=_self><img src=b_edit.png border=0></a>
 <a href=einsaetze_2008_loeschen.php?id='$id' target=_self><img src=b_drop.png border=0></a><br>
  <strong>Nummer:</strong> $ausgabe[Nummer]<br><strong>Datum:</strong>&nbsp;&nbsp;$ausgabe[Wochentag], $ausgabe[Tag].$ausgabe[Monat].2007, $ausgabe[Stunde]:$ausgabe[Minute] Uhr<br> <strong>Ereignis:</strong>$ausgabe[Ereignis] <strong>in</strong> $ausgabe[Ort] <br> <strong>Berichte und Bilder:</strong> $ausgabe[Select1] <br><strong>Spektakulärer Einsatz:</strong> $ausgabe[Select2]<br><strong>Bericht:</strong><br>$ausgabe[Bericht]<br><strong>Statistik:</strong><br>$ausgabe[Statistik]<br><strong>Bilder:</strong><br>$ausgabe[Bild1] $ausgabe[Bild2] $ausgabe[Bild3] $ausgabe[Bild4]<br><hr><br>");
 }

mysql_close ($dbverbindung)


?>


Löschen der Einträge nach Klick auf Button:
PHP:
<?php

$host = "localhost";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$tabelle ="xxx";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "DELETE FROM $tabelle WHERE id";  


if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);

?>
 
Ändere mal:

PHP:
a href=einsaetze_2008_löschen.php?id='$id'

in

PHP:
a href=einsaetze_2008_löschen.php?id=".$ausgabe['ID']."


und


PHP:
$dbanfrage = "DELETE FROM $tabelle WHERE id";

in

PHP:
$dbanfrage = "DELETE FROM $tabelle WHERE id ='".$_GET['id']."' ";

mfg,Olli
 
Autorisierung der Aktion nicht vergessen, so dass nicht jeder beliebige Datensätze löschen kann.
 
Habe die Änderungen gemacht, dann kommt aber, sobald ich auf Löschen klicke "Die Seite wurde nicht gefunden" ...

@Gumbo: Was meinst du mit Authorisierung?

Sorry, bin wirklich noch Anfänger..
 
Du musst dafür sorgen, dass nicht jeder einfach das Skript aufrufen und damit Datensätze löschen kann. Es sollte nur derjenige welche löschen können, der dazu berechtigt ist.
 
Achso. Das ist ein interner Bereich, darauf haben nur insgesamt 3 Leute Zugriff, und die dürfen alle löschen.

Weisst du wie ich mein Script umschreiben muss, damit das Löschen richtig funktioniert?
 
Hängt die ID denn an den Links dran?

Weil du sprichst die ID mit $id an, alle anderen Werte aber als assoziativen Array der Datenbankabfrage.
 
Nein, sie hängt nicht an den Links...

Das Script das damit geöffnet wird, heisst einsaetze_2008_löschen.php...

Das meinst du doch damit oder?
 
PHP:
print ("
 <a href=einsaetze_2008_editieren.php?id='$ausgabe[id]' target=_self><img src=b_edit.png border=0></a>
 <a href=einsaetze_2008_loeschen.php?id='$ausgabe[id]' target=_self><img src=b_drop.png border=0></a><br>
  <strong>Nummer:</strong> $ausgabe[Nummer]<br><strong>Datum:</strong>&nbsp;&nbsp;$ausgabe[Wochentag], $ausgabe[Tag].$ausgabe[Monat].2007, $ausgabe[Stunde]:$ausgabe[Minute] Uhr<br> <strong>Ereignis:</strong>$ausgabe[Ereignis] <strong>in</strong> $ausgabe[Ort] <br> <strong>Berichte und Bilder:</strong> $ausgabe[Select1] <br><strong>Spektakulärer Einsatz:</strong> $ausgabe[Select2]<br><strong>Bericht:</strong><br>$ausgabe[Bericht]<br><strong>Statistik:</strong><br>$ausgabe[Statistik]<br><strong>Bilder:</strong><br>$ausgabe[Bild1] $ausgabe[Bild2] $ausgabe[Bild3] $ausgabe[Bild4]<br><hr><br>");
 }
Dann änder es mal so.
Und überprüf ob die id wirklich kleingeschrieben wird in der Datenbank.
 
Zurück