von Wolfgang Arnberger

Werden Datensätze ausgelesen, dann ist es immer auch praktisch diese mit einer Checkbox zu markieren, um Sie daraufhin zu löschen. Dieser Trick zeigt, wie es ganz leicht geht.

Sie können Datensätze ganz einfach auslesen. Nur bietet es sich oftmals an, diese dann gleich zu markieren, und dann entsprechend zu löschen.
Dabei ist der Trick recht einfach. Zunächst werden die Daten aus der SQL Tabelle ausgelesen. Die Tabelle wird in unserem Beispiel mit diesem SQL Code erzeugt:

CREATE TABLE testdaten (
ID mediumint(8) unsigned NOT NULL auto_increment,
feld varchar(50) NOT NULL,
PRIMARY KEY (ID)
);


Jedes Feld ist jetzt durch die ID eindeutig bezeichnet. Über diese wird der Datensatz angesprochen, und schlussendlich auch gelöscht.
Der hauptsächliche Trick besteht in der Checkbox. Als Wert wird ihr eben diese ID zugewiesen. Das Array loeschen[] enthält dann alle ausgewählten Datesätze.

<input type="checkbox" name="loeschen[]"
 value="<? echo '$ID' ?>">


Hier der gesamte PHP Code:

<?
// Verbindung zur Datenbank herstellen
$db=@mysql_connect("localhost","","");
$select=@mysql_select_db("test",$db);

if($submit) {
// Wenn der Submit-Button geklickt wurde ...

// die Anzahl der markierten Datensaetze ermitteln
$y=count($loeschen);
echo 
"$y Datensätze werden gelöscht.<br><br>";

    
// Für jeden markierten Datensatz
    // den delete-Befehl aufrufen.
    
for($x=0;$x<$y;$x++) {
    
mysql_query("delete from testdaten 
where ID='$loeschen
[$x]'");
    echo 
"Gelöscht: $loeschen[$x]<br>";
    }
}


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

// Nur wenn Daten gefunden wurden,
// wird das Formular angezeigt.
if(mysql_num_rows($result)) {
?>
<form method="post" action="loeschen.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["feld"];
  
?>
    <tr>
      <td width="30">
        <input type="checkbox" name="loeschen[]" 
value="<? echo $ID ?>">
      </td>
      <td><? echo $feld ?></td>
  </tr>
  <? ?>
</table>
  <br>
  <input type="submit" name="submit" value="Löschen">
</form>
<?
} else {
echo 
"Keine Daten gefunden.";
}
?>


Zunächst wird die Verbindung zur Datenbank aufgebaut.
Ist der Submit-Button geklickt worden, if($submit), dann wird die Zahl der ausgewählten Elemente ermittelt$y=count($loeschen);. Jetzt kommt die Lösch-Routine, also die Schleife. Der SQL Befehl wird für jeden zu löschenden Datensatz dynamisch generiert und auch übermittelt. Das war die Löschung der einzelnen Datensätze.

Zunächst müssen die Daten jedoch ausgelesen werden, was über den restlichen PHP Code gemacht wird.
$result=mysql_query("select * from testdaten");
Ermittelt alle vorhandenen Datensätze. Diese werden dann dynamisch über eine while-Schleife in das Formular gesetzt.
while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {

Die Checkbox, sowie der Wert von "feld" wird über die Schleife ausgegeben.

<input type="checkbox" name="loeschen[]" 
value="<? echo $ID ?>">


Das ganze ist für Anfänger vielleicht ein wenig schwer zu begreifen, Sie sollten das ganze einfach mal ausprobieren.
Die Skripte gibt es hier als Download.
In der Datei "testdaten.sql" befindet sich die SQL Anweisung für das generieren der Tabelle.
Die Datei "fill.php" füllt ihre Tabelle mit einigen Testdatensätzen. Auch hier müssen Sie die Daten für die Datenbankverbindung anpassen.
Die Datei "loeschen.php" ist für das Anzeigen der Daten, und das löschen der Daten verantwortlich.

(wa | tf)

Vielen dank an IT-Studio.net, und an Herrn Arnberger.

Bookmark setzen... These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Bloglines
  • MisterWong
  • MySpace
  • Reddit
  • SEOigg
  • Technorati
  • TwitThis
  • Y!GG
  • Google Bookmarks

Weiterführende Links: