Homepage selbermachen 7.846 Themen, 35.563 Beiträge

MySQL / PHP Job -> Datensätze löschen (@ Xafford)

Heinz_Malcher / 14 Antworten / Flachansicht Nickles

Hallo mal wieder Xafford,
ein PHP Laie braucht mal wieder fachmännischen Rat:

ich bastel zur Zeit an einem Projekt, in dem User Ihre Meinungen schreiben können. Da ich keine Lust habe, IP SPerren aufzubauen, sondern eher auf die Vernunft der User apelliere (zumindset solange kein unfug getrieben wird) wollte ich eine Art JOB in das PHP Script einbauen.

ich dachte zunächst an eine art:
delete from xxx where eintrag=\'$xxxx\'

aber die variable $xxxx fehlt mir ja in diesem falle hmmm

Wie mache ich das am besten? Zum beispiel soll das Script bei jedem durchlauf doppelte einträge löschen

bei Antwort benachrichtigen
xafford Heinz_Malcher „MySQL / PHP Job -> Datensätze löschen (@ Xafford)“
Optionen

hm...bald muß ich für das consulting hier kassieren bei dir ;o)..
also ich denke mal du willst die datenbank aufräumen und das automatisch. das solltest du aus mehreren gründen nicht über php, sondern über die datenbank selbst machen. der erste grund ist die planbarkeit. du kannst nur schlecht einen job mit einem php-script erstellen auf dem system, das automatisch erfolgt. ein weiterer grund ist die laufdauer so eines scriptes. der webserver setzt für php-scripte fast immer ein zeitlimit um den server vor rechenzeitfressern zu schützen. wenn du über die datenbank eine abfrage nach doppelten einträgen laufen lassen willst dann ist das eine langwierige geschichte, da die datenbank fast jeden datensatz mit fast jedem anderen vergleichen muß, das kann die laufzeit des scriptes locker überschreiten, wodurch unter umständen die ausführung abgebrochen wird. geschickter wäre ein batch-job direkt auf der kommandozeile in sql, den du über cron oder at (je nach OS) zu bestimmten zeiten in denen keine last auftritt, laufen lässt.
ich muß aber eigentlich gestehen, daß ich nicht so genau verstanden habe, was du eigentlich filtern willst: doppelte eintragungstexte (sprich flooding), doppelte namen, etc und was die variable sein soll.
ich vermute mit der variable meinst du den jeweiligen eintrag der doppelt ist, oder? meine kenntnisse in datenbankverwaltung sind leider auch nicht die besten, aber es gibt meines wissens interne algorithmen zum auffinden doppelter einträge bei den meisten DBMS und auch algorithmen für komplette vergleichsdurchläufe durch datenbanken. man könnte zwar so etwas auch in php schreiben, aber wie erwähnt, es ist eine langwierige und ressourcenfressende geschichte und noch mehr, wenn es über externe scriptsprachen laufen soll.
ich versuche mich nächste woche mal schlau zu machen.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen