Formular zum Löschen von Daten in DB löscht nicht...

tim tom

Grünschnabel
Hallo miteinander!

Ich habe folgendes Problem:
Auf einer Seite sollen die Daten aus einer DB ausgelesen werden, mittels Checkboxen markiert werden können und abschließend diese gelöscht werden können.

Allerdings bekomm ich die Daten nicht gelöscht...

Code:
<?php
error_reporting(E_ALL); 
// Verbindung zur Datenbank herstellen
$db=@mysql_connect("localhost","***","***");
$select=@mysql_select_db("***",$db);


if(isset($_POST['submit']) && $_POST['submit']) {
// Wenn der Submit-Button geklickt wurde ...
// die Anzahl der markierten Datensaetze ermitteln
$y=count($_POST['loeschen']);
echo "$y Datensätze werden gelöscht.<br><br>";

    // Für jeden markierten Datensatz
    // den delete-Befehl aufrufen.
    $sql = "DELETE  FORM `kalender` WHERE `id` IN (".implode(',',$_POST['loeschen']).")";  
 mysql_query($sql) or die(mysql_error().' '.$sql);
}

// Die vorhandenen Datensätze abrufen
$result=mysql_query("select * from kalender");

// Nur wenn Daten gefunden wurden,
// wird das Formular angezeigt.
if(mysql_num_rows($result)) {
?>
<form method="post" action="kalenderbearbeiten.php">
  <table width="300" border="0" cellspacing="0"
cellpadding="0">
  <?
  // Daten anzeigen
  while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {
  $id=$row["id"];
  $feld=$row["datum"];
  $inhalt=$row["ort"];
  ?>
    <tr>
      <td width="30">
        <input type="checkbox" name="loeschen"
value="<? echo "$id" ?>">
      </td>
      <td><? echo "$feld, $inhalt";
            ?></td>
  </tr>
  <? } ?>
</table>
  <br>
  <input type="submit" name="submit " value="L&ouml;schen">
</form>
<?
} else {
echo "Keine Daten gefunden.";
}
?>
Wäre nett wenn mir jemand helfen könnte!

Thx
 
Das springt einem erfahrenen irgendwie ins Auge. Voll lustig:
PHP:
$sql = "DELETE  FORM `kalender` WHERE `id` IN (".implode(',',$_POST['loeschen']).")";

Siehst du den Fehler? Lies mal aufmerksam durch.
Das dürfte dir PHP aber angezigt haben hierdurch:

PHP:
 mysql_query($sql) or die(mysql_error().' '.$sql);

Für die Zukunft: Den Fehler dort suchen wo er unter Umständen passiert ;)
 
ok, danke! :) des hab ich heut nachmittag bestimmt schon 10 mal überlesen.

allerdings löscht es immer noch nicht. und fehlermeldungen kommen auch keine! das verbittert mich sehr! :confused:
 
Hi,

mach mal ein var_dump($_POST). So, wie Du die Checkboxen im Formular deklarierst, werden die ja gar nicht als Array übertragen.

LG
 
ok.

jetzt erhalt ich folgendes wenn ich etwas löschen will:
Code:
array(2) {   ["loeschen"]=>   string(2) "18"   ["submit_"]=>   string(7) "Löschen" }
ich glaub ich steh grad voll ams schlauch...
 
Hi,

wenn Du Checkboxen gleichen Namens übergeben willst, musst Du die so einbauen:

HTML:
<input type="checkbox" name="name[]" value="wert">

Mach das mal und schau Dir den Unterschied mit var_dump($_POST) an.

LG

PS.: Übrigens hätte das bei eingeschaltetem error_reporting eine Warnmeldung für implode() geben müssen.
 
Zurück