Jan_009
Profi
(offline)
Dabei seit 09.2009
573
Beiträge
|
Geschrieben am: 24.12.2011 um 19:34 Uhr
|
|
Hallo,
ich steh grad Iwie komplett auf em Schlauch ...
Ich habe mir ein Art Newssystem gemacht, mit dem ich einfach Eintragungen in eine MySQL Tabelle mache und diese dann auch über PHP ausgeben lasse.
Soweit so gut, jetzt möchte ich aber die einzelnen Einträge auch wieder löschen können. Dazu môchte ich natürlich das nicht immer über phpmyAdmin machen, sondern über einen Button unter dem Eintrag machen.
Ich habe es auch mit Delete from ... Where id='1'
Nur jetzt möchte ich nicht nur den einen bestimmten löschen, sondern es soll möglich sein, dass ich auch einen anderen löschen kann.
Wie mache ich das?
Lach nie über jemanden, der einen Schritt zurück geht!! Er könnte Anlauf nehmen! -.-
|
|
TheBrainless - 37
Experte
(offline)
Dabei seit 04.2005
1992
Beiträge
|
Geschrieben am: 24.12.2011 um 22:37 Uhr
|
|
willst du jeweils nur einen eintrag löschen? dann übergib doch beim löschen des eintrages an die url die id mit, welcher eintrag gelöscht werden soll (halt per GET/POST).
wenn du beim einlesen der id noch ein intval() drum rum packst, sollte das auch sicher sein vor mysql injections.
Mörps mörps blubbs!
|
|
scw - 41
Experte
(offline)
Dabei seit 09.2002
1836
Beiträge
|
Geschrieben am: 24.12.2011 um 23:52 Uhr
|
|
Löschen aus relationalen Datenbanken ist immer keine sonderlich gute Idee und kann zu netten Seiteneffekten führen, wenn man mit Foreign-Key-Constraints. Besser ist es, eine "gelöscht"-Spalte zu machen und alle Einträge, die hier ein true stehen haben nicht anzuzeigen.
|
|
Nitek - 41
Champion
(offline)
Dabei seit 01.2003
4129
Beiträge
|
Geschrieben am: 25.12.2011 um 00:18 Uhr
|
|
Zitat von scw: Löschen aus relationalen Datenbanken ist immer keine sonderlich gute Idee und kann zu netten Seiteneffekten führen, wenn man mit Foreign-Key-Constraints. Besser ist es, eine "gelöscht"-Spalte zu machen und alle Einträge, die hier ein true stehen haben nicht anzuzeigen.
Wer hat dir das denn eingeredet? ^^
Wie überall sollte man sich erstmal gut überlegen was man löscht, aber aus Angst vorm Löschen lieber die DB zuzumüllen halte ich dann doch eher für unsinnig
|
|
scw - 41
Experte
(offline)
Dabei seit 09.2002
1836
Beiträge
|
Geschrieben am: 25.12.2011 um 00:41 Uhr
|
|
Zitat von Nitek: Zitat von scw: Löschen aus relationalen Datenbanken ist immer keine sonderlich gute Idee und kann zu netten Seiteneffekten führen, wenn man mit Foreign-Key-Constraints. Besser ist es, eine "gelöscht"-Spalte zu machen und alle Einträge, die hier ein true stehen haben nicht anzuzeigen.
Wer hat dir das denn eingeredet? ^^
Wie überall sollte man sich erstmal gut überlegen was man löscht, aber aus Angst vorm Löschen lieber die DB zuzumüllen halte ich dann doch eher für unsinnig 
Kommt natürlich auch immer auf das Datenmodell drauf an... aber mir ist vorhin auch eingefallen, dass MySQL im Normalfall Foreign-Key-Constraints gar nicht so macht wie Oracle & Co 
Da kann es durchaus mal vorkommen, dass man einen Eintrag löscht und es gleich noch in anderen Tabellen Dinge löscht, die man eigentlich noch weiter behalten wollte...
|
|
Nitek - 41
Champion
(offline)
Dabei seit 01.2003
4129
Beiträge
|
Geschrieben am: 25.12.2011 um 11:15 Uhr
|
|
Zitat von scw: Kommt natürlich auch immer auf das Datenmodell drauf an... aber mir ist vorhin auch eingefallen, dass MySQL im Normalfall Foreign-Key-Constraints gar nicht so macht wie Oracle & Co 
Kann MySQL schon, wenn man z.B. die InnoDB Engine verwendet.
Zitat von scw: Da kann es durchaus mal vorkommen, dass man einen Eintrag löscht und es gleich noch in anderen Tabellen Dinge löscht, die man eigentlich noch weiter behalten wollte...
Dazu braucht mein keine Foreign-Key-Constraints Das schaffen die meisten auch so, wenn sie ihr delete falsch formulieren
|
|