Zum Inhalt springen

MySQL per Checkbox löschen


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...