Feigling Geschrieben 10. Dezember 2007 Teilen Geschrieben 10. Dezember 2007 Hi Leute, also es geht um folgendes: Weiß jemand von euch wie man in PHP realisiert das wenn man Daten aus einer MySQL Datenbank ausließt und in einer HTML Tabelle anzeigen lässt, dass wenn eine Checkbox hinten dran ist und diese aktiviert, der Eintrag aus der MySQL DB gelöscht wird. Hoffe ihr wisst was ich meine. Anbei mal mein Code: Zeigt die Daten in einer Tabelle an: <html> <body> <form action="admin_add.html" method="post"> <?php $db = "notebookausleihe"; #Legt den Datenbanknamen fest $db_connect = mysql_connect("localhost","nb_admin","") or die ("Es könnte keine Verbindung mit dem Datenbankserver aufgenommen werden. Bite kontaktieren sie den Administrator"); #Verbindet mit der Datenbank als normaler User mit nur "SELECT" Rechten $db_select = mysql_select_db($db) or die ("<font size=\"+2\">Fehler !!</font><br><br>Die Datenbank konnte nicht ausgewählt werden. Bitte kontaktieren sie den Administrator"); #Wählt die Datenbank aus, aus der die Daten gelesen werden sollen $data_select = mysql_query("SELECT * from notebooks"); #Ließt alle Daten aus der Tabelle "notebooks" aus. echo "<table border=\"1\"><tr><td><b>Notebooknummer</b></td><td><b>Invent. Nr</b></td><td><b>Ausleihe von ...</b></td><td><b>Ausleihe bis ...</b></td><td><b>Ausleihe von wem ...</b></td><td><b>Telefonnummer</b></td><td><b>Löschen ?</b></td>"; while($dsatz = mysql_fetch_assoc($data_select)) #Das Arra y gibt die die Daten in einer Tabelle und jeweils einer Zelle aus. { $zaehlen = $i=0;$i>$num;$i++; $id = mysql_result($data_select, $i, "id"); $num = mysql_num_rows($data_select); echo "<tr>" . "<td>" . $dsatz['nb_name'] . "<br>" . "</td>" . "<td>" . $dsatz['invent_nr'] . "<br>" . "</td>" . "<td>" . $dsatz['datum_von'] . "<br>" . "</td>" . "<td>" . $dsatz['datum_bis'] . "<br>" . "</td>" . "<td>" . $dsatz['ausleihe_wer'] . "<br>" . "</td>" . "<td>" . $dsatz['telefon'] . "<br>" . "</td>" . "<td>" . "<input type='checkbox' name='delete' value='$id'>" . "<br>" . "</td>"; } ?> </table> <br> <table border="1"> <tr> <td> <input type="submit" value="Neuen Eintrag hinzufügen"> </form> </td> <td> </td> <form action="admin_delete.php" method="post"> <td> <input type="submit" value="Markierte Einträge aus Datenbank löschen"> </form> </td> </table> <br><a href="index.html">Zurück zur Übersicht</a><br> Soll die Daten löschen: <html> <body> <?php if (isset ($_POST["delete"])) { mysql_connect("localhost","nb_admin",""); mysql_select_db("notebookausleihe"); $del = "delete from notebooks where"; $del .= " id = . "$_POST['delete']; mysql_query($del); $num = mysql_affected_rows(); if ($num>0) { echo "Der Datensatz wurde gelöscht"; } else{ echo "Der Datensatz konnte nicht gelöscht werden"; } } else { echo "Es wurden keine Datensätze ausgewählt"; } ?> <br><br><a href="admin_abfrage.php">Zurück zum Admin-Bereich</a><br> Vielen Dank für eure Hilfe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
thomas0 Geschrieben 10. Dezember 2007 Teilen Geschrieben 10. Dezember 2007 Weiß nun grad nicht ob ich genau verstehe was du meinst aber vielleicht einfach nachprüfen ob die Checkbox aktiviert ist mit einem isset($_POST["checkbox"] ? Wenn ja dann löschen wenn nicht dann nicht ... hoffe ich konnte helfen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Feigling Geschrieben 10. Dezember 2007 Autor Teilen Geschrieben 10. Dezember 2007 Weiß nun grad nicht ob ich genau verstehe was du meinst aber vielleicht einfach nachprüfen ob die Checkbox aktiviert ist mit einem isset($_POST["checkbox"] ? Wenn ja dann löschen wenn nicht dann nicht ... hoffe ich konnte helfen Hab ich doch in dem Quelltext der als zweites gepostet ist schon eingebaut aber trotzdem geht es nicht. Ich sitz an diesem Problem jetzt schon 2 Tage. Ich weiß einfach nemmer weiter Mfg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
thomas0 Geschrieben 10. Dezember 2007 Teilen Geschrieben 10. Dezember 2007 Hm ich weiß es grad nicht genau aber vielleicht indem du Checkbox als Array weitergibst name="delete[]" und dann bei der Abfrage und beim Durchlaufen des Arrays dort löscht wo alles ne 1 als Wert steht?! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Feigling Geschrieben 10. Dezember 2007 Autor Teilen Geschrieben 10. Dezember 2007 Könntest du mir eventuell die Textstellen im Code entsprechend ändern und neu posten damit ich besser verstehe was du meinst ?? Vielen Dank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
thomas0 Geschrieben 10. Dezember 2007 Teilen Geschrieben 10. Dezember 2007 Mach ich später oder morgen, okay?! Sorry bin grad total aufm Sprung und muss los :-( Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Feigling Geschrieben 10. Dezember 2007 Autor Teilen Geschrieben 10. Dezember 2007 Natürlich kein Problem Besten Dank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
thomas0 Geschrieben 11. Dezember 2007 Teilen Geschrieben 11. Dezember 2007 Hm mir ist grad aufgefallen, dass das was ich meinte glaub ich ein wenig anders ist als das was du haben willst... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Feigling Geschrieben 13. Dezember 2007 Autor Teilen Geschrieben 13. Dezember 2007 Also ich hab jetzt folgenden Stand: Ich hab jetzt in der Datenbank eine Spalte mit "id" erstellt die automatisch hochzählt. Jetzt bekommt jeder Datensatz eine ID zugewiesen. Ist es jetzt möglich das ich per PHP den Datensatz lösche der gerade aktiviert ist per Checkbox ?? Pls help Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gurkenpapst Geschrieben 13. Dezember 2007 Teilen Geschrieben 13. Dezember 2007 Hi. 1. wird in deinem Code, sofern mehrere Checkboxes angewählt wurden, nur der Inhalt der letzten wirklich ausgewertet, weil mit name=delete der Inhalt der Variable $_POST['delete'] als Zeichenkette gefüllt wird. Wählst du allerdings name=delete[]" als Checkboxnamen, so wird die Variable $_POST['delete] mit einem Array aller Checkboxes mit diesem Namen gefüllt. 2. wirst du in deinem angegebenen Code niemals die Variable $_POST['delete'] gefüllt bekommen, weil du in deinem 2. <form> Element sich kein Formularfeld mit dem Namen delete befindet. Du hast deine Checkboxes im falschen <form> Element, bzw. die falsche action im ersten. Und nun Umgangssprachlich: Wenn du auf den Button "Markierte Einträge aus Datenbank löschen" klickst, schickst du nicht das Formular ab, welches die Checkboxes enthält. kleiner Tipp: Während des Tests mit Formularen usw. kann die Funktion var_dump($_POST); oder print_r($_POST); mitunter ganz interessante Dinge preisgeben... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.