löschen von datenbankeintragungen per form
Jan
- php
0 Juan0 Jan0 Juan0 Axel Richter
0
Auge
Hallo,
habe folgende Frage:
Ich hole mir aus der Datenbank eine Reihe von Einträgen aus einer Tabelle, die ich mir dann ausgeben lasse. Vor diese Einträge habe ich eine checkbox gesetzt die als name die jeweilige Eintrags-ID enthält.
Dies alles möchte ich nun wenn man die jeweiligen Checkboxen wählt in einem formular direkt an die query Abfrage Senden, und aus der DB löschen.
Ich habe schon etwas probiert, was allerdings nicht so ganz zu klappen scheint...
if(!mysql_num_rows($data)) {
echo "<div align='center'><b>Momentan keine Termine vorhanden</b></div>";
} else {
while($datax = mysql_fetch_array($data)) {
echo "<form action='./feedback.php?page=del_eintrag' name='delete' method='POST'>";
echo "<table align='center' cellspacing='2' cellpadding='2' border='1'>";
echo "<tr>";
echo "<td width='1' valign='top'><input type='checkbox' name='$datax[0]'></td>";
echo "<td width='80' valign='top'>$datax[1].$datax[2].$datax[3]</td>";
echo "<td width='60' valign='top'>$datax[4]:$datax[5]</td>";
echo "<td width='240' valign='top'>$datax[7]</td>";
echo "<td width='100' valign='top'>$datax[6]</td>";
echo "<td width='100' valign='top'>$datax[8]</td>";
echo "</tr>";
echo "</table>";
}
}
echo "<br>";
echo "<div align='center'><input type='submit' value='Löschen'></div>";
echo "</form>";
}
So hole ich es mir ersteinmal aus der Datenbank heraus ist ja auch nicht falsch...
jetzt kommt der query bei dem alle angangen werden zu schreien ;)
mysql_query("DELETE * FROM schuetzentermine WHERE id='".$_POST['$datax[0]']."'");
$m = base64_encode("Der Termin wurde erfolgreich entfernt");
header("Location: ./header.php?m=$m");
exit;
}
Kann mir evtl jemand Tipps geben, oder mir ein gutes TUT nennen?
Danke im Voraus
Jan
Hallo,
mysql_query("DELETE * FROM schuetzentermine WHERE id='".$_POST['$datax[0]']."'");
$m = base64_encode("Der Termin wurde erfolgreich entfernt");
header("Location: ./header.php?m=$m");
exit;
}
hast du dir schon mal angeguckt (ausgeben lassen), was in $_POST[$datax[0]] tatsächlich steht?
Ich hab das Gefühl, dass da der Knackpunkt ist...
MfG,
Juan
Hallo,
mysql_query("DELETE * FROM schuetzentermine WHERE id='".$_POST['$datax[0]']."'");
also ist der query syntaxtechnisch richtig formuliert?
hast du dir schon mal angeguckt (ausgeben lassen), was in $_POST[$datax[0]] tatsächlich steht?
da steht definitiv die ID drin, habe es auch gerade noch einmal überprüft!
Hi,
mysql_query("DELETE * FROM schuetzentermine WHERE id='".$_POST['$datax[0]']."'");
also ist der query syntaxtechnisch richtig formuliert?
wenn ich mir das jetzt genauer angucke....Ich glaub, der * ist zuviel ist.
Ich verstehe auch nicht ganz warum $_POST['$datax[0]'] und nicht $_POST[$datax[0]].
MfG,
Juan
Hallo,
mysql_query("DELETE * FROM schuetzentermine WHERE id='".$_POST['$datax[0]']."'");
also ist der query syntaxtechnisch richtig formuliert?
Nein? Warum testest Du es nicht? Bzw. werden Fehler ausgegeben?
hast du dir schon mal angeguckt (ausgeben lassen), was in $_POST[$datax[0]] tatsächlich steht?
da steht definitiv die ID drin, habe es auch gerade noch einmal überprüft!
... und in $_POST['$datax[0]']?
1. http://www.php-faq.de/q/q-security-variablen.html
2. Nie:
mysql_query("SELECT/UPDATE/DELETE ...");
sondern immer:
$query = "SELECT/UPDATE/DELETE ...";
// echo $query;
$result = mysql_query($query);
Dann kann man nämlich _sehen_ welche Query man absetzt.
viele Grüße
Axel
Hallo
Ich hole mir aus der Datenbank eine Reihe von Einträgen aus einer Tabelle, die ich mir dann ausgeben lasse. Vor diese Einträge habe ich eine checkbox gesetzt die als name die jeweilige Eintrags-ID enthält.
Dies alles möchte ich nun wenn man die jeweiligen Checkboxen wählt in einem formular direkt an die query Abfrage Senden, und aus der DB löschen.
while($datax = mysql_fetch_array($data)) {
echo "<form action='./feedback.php?page=del_eintrag' name='delete' method='POST'>";
Für jeden Eintrag wird ein eigenes Formular generiert? Und alle diese Formulare werden mittels \_eines\_ Submitbuttons versandt? Setze das `<form ...>`{:.language-html} um alle Einträge, also außerhalb der `while (...)`{:.language-php}-Anweisung. Somit hast du es nur noch mit einem Formular zu tun.
> ~~~php
...
> echo "<td ...><input type='checkbox' name='$datax[0]'></td>";
Verwende einen gleichbleibenden Namen und setze den Wert (die ID in das value-Attribut. Hinter dem Namen im Attribut "name=''" notierst du noch eckige Klammern <input type='checkbox' name='Name[]' value='$datax[0]'> um dem verarbeitende Skript alle IDs, der zum Löschen ausgewählten Einträge in einem Array zu übergeben.
...
}
...
echo "<div align='center'><input type='submit' value='Löschen'></div>";
echo "</form>";}
Tschö, Auge
--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
[Veranstaltungsdatenbank Vdb 0.1](http://termindbase.auge8472.de/)