Dynamic Web Pages: deutschsprachiger PHP Knotenpunkt seit 1999

Dynamic Web Pages : tutorials _





 
 
 
 
 
 
 

PHP QuickRef

Via QuickRef gelangen Sie direkt zur gesuchten Funktion im Handbuch.

 
 

Printmedien

PHP-Magazin
Das PHP Magazin erscheint 2-monatlich zum Preis von 9,80 €. Studenten erfreuen sich über ermäßigte Abos.

PHP-Journal
Das PHP Journal erscheint 2-monatlich zum Preis von 14,95 €. Studenten und Abonnenten erfreuen sich über bis zu 25% Ermäßigung.

PHP Solutions Magazin
Das PHP Solutions Magazin erscheint alle 3 Monate zum Preis von 8,75 €. Studenten erfreuen sich über ermäßigte Abos.

PHP-Architect
Der php|architect erscheint monatlich als digitale PDF-Version zum Preis von $3,99 USD und als Print-Version zum Preis von $8,69 USD. Im Abo gibt es Rabatt (30% Print, 15% PDF).

 
MySQL und PHP Tutorial
 
Wolfgang Drews   Wolfgang Drews       

 
Teil 5 Datensätze löschen

Im letzten Teil unseres kleinen Tutorials wollen wir uns dem Thema "Löschen von Datensätzen" widmen. Das KnowHow dazu haben wir bereits, alles was fehlt ist eigentlich die richtige Anweisung. Noch kurz mal überlegen, wie eine solche Löschen- Funktion aussehen müsste. Wie identifizieren wir am einfachsten den zu löschenden Datensatz? Indem wir uns alle Datensätze anzeigen lassen, den zu löschenden Datensatz auswählen und löschen. Einfach oder? Mehr Gedanken sollte man sich machen, wenn die Datenbank sehr groß ist (also viele Datensätze beinhaltet). Hier wäre es unsinnig, alle Datensätze anzeigen zu lassen. Man sollte sich daher Gedanken machen, wie man den Datensatz am besten identifiziert und dann nur einen entsprechenden Auszug aus der DB anzeigen lassen, oder man weiß ein eindeutiges Merkmal des Datensatzes, und löscht ihn dann direkt. 

Der Code:

<?
$db = mysql_connect("127.0.0.1","root");

mysql_select_db("flohmarkt",$db);

$result = mysql_query("SELECT * FROM eintraege ",$db);

while ($myrow = mysql_fetch_row($result)){

printf("Laufende Nummer: <a href='$PHP_SELF?lid=%s'>%s</a><br>Name: %s<br>Vorname: %s<br>Email: <a href='mailto:%s'>%s</a><br>Datum: %s<br>Eintrag: %s<br>Preis: %s<br>Angebot(0) oder Gesuch (1): %s<br><br><br>", $myrow[0],$myrow[0], $myrow[1], $myrow[2], $myrow[3], $myrow[3], $myrow[4], $myrow[5], $myrow[6], $myrow[7]);
}
?>

Erst mal vollführen wir also einen ganz normalen SELECT. Bei der Ausgabe kommt hier ein kleiner Trick hinzu: Die Laufende Nummer wird als Link hinterlegt, und mit dem Link zusammen wird diese Nummer (was ja unsere eindeutige ID ist) übergeben. D.h. wir haben einen Link (auf dasselbe Dokument) und übergeben mit diesem Link die ID des zu löschenden Datensatzes.
Wir erinnern uns an die vorhergehenden Abschnitte. Dort haben wir auch immer auf das gleiche Dokument als Ziel des Links verwiesen gehabt, und um zu ermitteln, ob es sich bei dem Aufruf um einen ersten Aufruf (zwecks Anzeige der Daten) oder um einen "Aktions-Aufbau" (Seite wurde schon mal angezeigt, es wurde z.B. ein Submit-Button gedrückt um Daten zu übermitteln) handelte, haben wir uns eine Variable "$submit" geschnappt, die auf true/false geprüft wurde. (If/Else-Verzweigung). Genau dasselbe machen wir hier auch wieder. 

<?
$db = mysql_connect("127.0.0.1","root");
mysql_select_db("flohmarkt",$db);

if(isset($id)) {
$result = mysql_query("DELETE FROM eintraege WHERE id=$id",$db);
echo "Datensatz erfolgreich gel&ouml;scht!";
}
else {
$result = mysql_query("SELECT * FROM eintraege ",$db);

while ($myrow = mysql_fetch_row($result)){

printf("Laufende Nummer: <a href='$PHP_SELF?id=%s'>%s</a><br>Name: %s<br>Vorname: %s<br>Email: <a href='mailto:%s'>%s</a><br>Datum: %s<br>Eintrag: %s<br>Preis: %s<br>Angebot(0) oder Gesuch (1): %s<br><br><br>", $myrow[0],$myrow[0], $myrow[1], $myrow[2], $myrow[3], $myrow[3], $myrow[4], $myrow[5], $myrow[6], $myrow[7]);
}
}
?>

Beim ersten Durchlauf des Skriptes ist die Variable $id false, weil ihr noch kein Wert zugewiesen wurde. D.h. wir springen sofort in den else- Zweig, und wie oben beschrieben, wird er Inhalt der DB dargestellt. Die Nummern der Links (wichtig ist hier, das die Nummern den Datensatz eindeutig identifizieren!) erscheinen als Links, und übermitteln die ID des Datensatzes an selbiges Dokument. Beim nunmehr zweiten Aufruf des Dokuments ist die variable $id auf true gesetzt, weil sie ja eine id-Nummer eines Datensatzes beinhaltet.
Also wird er if-Teil ausgeführt:

$result = mysql_query("DELETE FROM eintraege WHERE id=$id",$db);

Die Anweisung zum Löschen eines Datensatzes ist die DELETE-Anweisung. In Klartext heißt obige Anweisung: LÖSCHE AUS eintraege WO id=$id 
D. h. Die Datenbank durchsucht die Spalte id solange, bis sie auf die richtige (gleiche) Datensatznummer trifft, und löscht dann den gesamten Eintrag, der zu der Nummer gehört.

So, das war's erst mal mit dem Tutorial. Experimentiert ruhig mal ein wenig mit dem ganzen kram rum, nur so werdet Ihr das Handling von Datenbanken begreifen. Ich wünsche Euch auf jeden Fall viel Spaß damit, und hoffe, das Ihr mir Bescheid sagt, wenn Euch irgendwelche Fehler auffallen ...

 

zurück    [ 1 2 3 4 5  ]    
 
MySQL und PHP Tutorial (52 Kommentare)
  26.07.2000:   Sortieren (8)
  18.12.2000:   Synchronisieren (0)
  10.01.2001:   LOB (4)
  27.02.2001:   feedback (4)
  20.03.2001:   Kleiner Bug (1)
  25.04.2001:   Vielen Dank (0)
  27.04.2001:   Respekt (0)
  07.05.2001:   MYSQL und PHP Tutorial (3)
  21.05.2001:   Neue Beiträge anzeigen?? (1)
  08.06.2001:   download? (5)
  10.06.2001:   Feedback (0)
  25.07.2001:   Licht ... (0)
  28.07.2001:   ausgabe der datenbank verändern (1)
  15.08.2001:   Fehlermeldung (2)
  11.09.2001:   Fehler bei Variable (2)
  12.09.2001:   date time ausgeben (9)
  08.10.2001:   Wozu Bücher kaufen ? (1)
  10.10.2001:   Warning: Undefined variable (4)
  26.10.2001:   Formatierung durch date (0)
  15.11.2001:   Datensätze in DB einfügen (4)
  07.12.2001:   Punkt (2) des Tutorials (2)
  13.12.2001:   Hinzufügen von Datensätzen (0)
  16.01.2002:   fehlermeldung (Tut. ist aber super) (0)
  27.01.2002:   Tut. ist super, aber bei mir hats einaml gehakt. (0)
  31.01.2002:   Ideengeber gesucht! (5)
  21.02.2002:   punkt2/3 (1)
  16.03.2002:   Strato Problem mit php (5)
  12.05.2002:   Löschen von Datensätzen (0)
  29.05.2002:   sehr schönes tutorial (0)
  29.05.2002:   Multiple Selektion? (0)
  15.06.2002:   Variablen in MYsql speichern (1)
  08.08.2002:   COUNT (0)
  12.08.2002:   Datensatz Online per Form wird nicht eingefügt! (1)
  09.09.2002:   Checkbox (0)
  09.09.2002:   Checkbox (0)
  08.10.2002:   CMS (0)
  09.10.2002:   2 Dinge... (0)
  18.10.2002:   Forbidden Meldung beim Versuch Daten an Mysql zu übergeben (0)
  22.11.2002:   No Database Selected (1)
  27.11.2002:   Bestätigung der Anzeige (0)
  28.05.2003:   Das beste Tutorial das ich je gesehen habe! (0)
  08.08.2003:   Werde noch wahnsinnig... (1)
  30.08.2003:   Funktioniert toll, bis auf.. (0)
  19.09.2003:   var. fehler bei teil 3 evtl gelöst (2)
  17.06.2004:   Datensatz hinzufügen: so geht's (bei mir)! (3)
  13.12.2003:   Fehler 1064 (0)
  08.01.2004:   Formulare (0)
  16.06.2004:   Lob und Hilfe (0)
  23.06.2004:   Ausgabe von Texten (0)
  01.09.2004:   mysql und PHP (1)
  06.07.2005:   Datensatz Online per Form wird nicht eingefügt! (0)
  26.10.2006:   PHP Tutorial (0)
zurück
   
powered by Hetzner


top Alle Rechte vorbehalten. © Dynamic Web Pages 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 top

  Seitenaufbau in 0.018 Sekunden