Tom: Datensätze per checkbox markieren und löschen, Beispielscript

Beitrag lesen

Hello zusammen,

habe noch mal die Fehler rausgepult aus dem Script. Hier für alle, die es interessiert:

Kontrollausgaben habe ich erst einmal drin gelassen.

<?php

#  include("defConst1.inc.php");
#  include("funcLib.inc.php");

#-- hier die Connection herstellen und DB auswählen---------------
  $con = mysql_connect(         );
  $db = mysql_select_db(         );

Table TEST    # Nur als Beispiel

ID_TEST       bigint   autoincrement  primary key

VARC          varc(20)

ZAHL          int (10)

#-----------------------------------------------------------------

session_start();

#-------------------------------------------------------------------------

function show_list($res)
{

$_SESSION["idlist"] = array();

echo "<table border="1">\n";

while ($rec = mysql_fetch_assoc($res))
  {
    echo "<tr>\n";

echo "<td><input type="checkbox"\n".
         "           name="person[delete][]"\n".
         "           value="".$rec["ID_TEST"].""></td>\n";
    $_SESSION["idlist"][] = $rec["ID_TEST"];

$rec = array_map("htmlentities", $rec);

foreach($rec as $key => $val)
    {
      echo "<td>$val</td>\n";
    }

echo "</tr>\n";
  }

echo "</table>\n";

}

#-------------------------------------------------------------------------
function show_btn()
{
  echo "<br /><input type="submit" name="btn[delete]" value="markierte Löschen" /><br />\n";
}

#=========================================================================
#  Hauptprogramm
#=========================================================================

echo "<pre>";
  print_r($_POST);
  echo "</pre>";

if (($_POST["btn"]["delete"]) and (count($_SESSION["idlist"]) > 0))
   {
     if (count($_POST['person']['delete']) > 0)
     {
       foreach($_POST['person']['delete'] as $id)
       {
         ## prüfen, ob die Löschanforderungen gerechtfertigt sind
         if(!is_numeric($id) or !in_array($id, $_SESSION["idlist"]))
         {
           ## Fehlerbehandlung wegen Fake
           ## exit;
         }
       }

## CSV-Liste aufbauen
       $idlist = implode(",",$_POST['person']['delete']);

$query = "DELETE FROM TEST WHERE ID_TEST in ($idlist)";

#########################################
       echo "ID-Liste: ($idlist)<br />";
       echo "MySQL: ".mysql_error()."<br />";

$res = mysql_query($query);

echo mysql_affected_rows($con)." Datensätze wurden gelöscht<br>";

}
   }

## Daten anzeigen

$query = "Select ID_TEST, VARC, ZAHL from TEST";
  $res = mysql_query($query,$con);

echo "<form action="".$_SERVER["PHP_SELF"].""\n".
       "      method="POST"\n".
       "      enctype="multipart/form-data">\n";

echo "<input type="hidden" name="hid">\n";

if ($res)
  {
    show_list($res);
    show_btn();
  }

echo "</form>\n";

echo "Session-Nr: ".session_id()."<br />";
  echo "<pre>";
  print_r($_SESSION);
  echo "</pre>";

?>

Viel Spaß beim Weiterentwickeln.

Grüße

Tom