TestseT Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 Hallo, ich habe eine große Anzahl Datensätze auf einem Server liegen. Diese Datensätze sind Reiseangebote. Da diese Reiseangebote abgelaufen sind, will ich sie gelöscht haben. Damit man Datensätze löschen kann, hat dessen Verwalter eine Webseite vorgesehen, auf der man dann einen Datensatz per Button-Klick löschen kann. Die durch den Button-Klick aufgerufene URL sieht dann so aus: http://www.domain.de/del_angeb.php?=1208;vis=suu Es sind aber ungefähr 500 Angebote zu löschen. Daher würde ich gern diese Löschaktion automatisieren, per Script zum Beispiel. Könnte mir jemand bitte erklären, wie ich das am Besten mache? Bevorzugt für Windows. Eine Debian-Installation habe ich aber auch hier rumliegen. Ginge also auch. thx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sYnTaxx Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 nun ich schätze die datensätze bzw. reiseangebote sind im hintergrund in einer mysql datenbank gespeichert... dann würde ich dir einfach empfehlen dich per phpmyadmin einzuloggen und dir einen sql befehl zu schreiben die alle datensätze entfernt die abgelaufen sind. ( where klausel ) ps: schönes weekend Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 notfalls kann man auch per socket verbindungen einen POST durchführen: http://de3.php.net/fsockopen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TestseT Geschrieben 17. September 2004 Autor Teilen Geschrieben 17. September 2004 @sYnTaxx: Ich habe keinen Direktzugriff auf diese Datenbank. @kills Danke. Da muss ich mich erstmal durcharbeiten und, ich nehme mal an, PHP installieren. Geht das nicht auch einfacher? Im Endeffekt will ich doch nur das, was ich mit einem Mausklick auslöse, per Befehl auslösen. Wie in einer Batchdatei, den Befehl mit der URL und aufsteigender Angebotsnummer immer wieder aufrufen lassen. Meinetwegen auch in einer Schleife. Evt. mit nem Break von 5 Sekunden dazwischen, um den Server Luft zum Atmen zu lassen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 Tja, schreib doch einfach ein PHP- oder Perl-Script, das den Qelltext der Übersichtsseite, von der aus du löschst, ausliest und die ganzen IDs rausarbeitet. Dann generierst du, am besten noch im selben Script, für alle IDs jeweils einen Aufruf der Löschseite, bei dem auch die jeweilige ID übergeben wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TestseT Geschrieben 17. September 2004 Autor Teilen Geschrieben 17. September 2004 @kLeiner_HobBes So habe ich mir das in etwa auch vorgestellt. Nur hätte ich gern gewusst, wie man in PHP und/oder in Perl solch eine URL aufruft, also wie die Methode heißt. Optimal wäre sogar ein kleines Beispielscript. Aber gibt es auch noch andere Lösungen? Ich müsste ja immer erst Perl/PHP einrichten samt Apacheserver. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 Was hast du denn für Möglichkeiten, wenn du Perl/PHP erst einrichten mußt? Scriptansatz wäre etwa so: //in $ids sind alle zu löschenden IDs angegeben foreach ($ids as $id) { $fp = fopen("http://www.domain.de/del_angeb.php?=$id;vis=suu","r"); fclose($fp); } [/PHP][b]Ungetestet!![/b] Und ich weiß auch nicht, ob das Script dann nach ner Weile abbricht, weil der Server dann nen Script-Timeout sendet. Vielleicht muß man es häppchenweise durchlaufen lassen oder so. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TestseT Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 Was hast du denn für Möglichkeiten, wenn du Perl/PHP erst einrichten mußt? Diese Frage verstehe ich inhaltlich nicht. Danke fürs Beispielscript. So etwas wollte ich haben. Könnte man nicht einen Pausebefehl in die Schleife reinsetzen? Wie würde der in PHP lauten? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 Naja, ich hab mich nur gewundert, wenn es dir so viel Mühe bereitet, jedesmal PHP oder Perl mitsamt Apache zu installieren, was du dann sonst nehmen willst. Pause im Script: sleep(). Aber, wie schon gesagt: Wenn du nur ne begrenzte Laufzeit für das Script hast, dann ist sleep() umso gefährlicher Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TestseT Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 Ich dachte da an Javascript, VBA, eben Zeug, was man schon standardgemäß auf einer Windowsmaschine drauf hat. Aber egal. PHP müsste sowieso demnächst für ein anderes Projekt drauf. Mit begrenzter Laufzeit für das Script meinst du, dass der PHP-Interpreter das Script irgendwann abbricht, ja? Ich habe das andersherum verstanden. Nämlich dass der Server, den ich ständig aufrufe, die Grätsche macht. Sorry, bin da nicht besonders firm drin. Häppchenweise durchlaufen lassen, hieße also, mehrere Scriptdateien nacheinander über ein Masterscript aufrufen lassen oder die die Scripte manuell nacheinander selbst starten? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 Nun, wenn du das lokal auf deinem Rechner laufen läßt, dann mach dir wegen der Laufzeit keine Gedanken (vielleicht mußt du höchstens ein Timeout in php.ini oder so hochsetzen). Ich dachte halt, daß du das auf nem Server deines Providers o.ä. laufen lassen willst, weil jene meistens einen Laufzeitbegrenzer oder so drinhaben. Da du von Windows sprichst: ja, ok, könnte man vielleicht auch mit VBS machen, da weiß ich aber net, wie's geht. Ich würd PHP dafür nehmen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TestseT Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 Ja, hier local würde ich das Scripts ausführen. Danke für die Hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 du kannst auch php ohne den apache installieren und deine Scripts in der Console aufrufen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TestseT Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 @kills Danke. Habe nun aber schon das Komplettpaket installiert. @kLeiner_HobBes und alle anderen Wie heißt diese Timeout-Variable, mit der man die Ausführungszeit der php-Scripte einstellt? Habe php5 installiert. Ich fand in der php5.ini zwar dieses hier: max_execution_time = 1200 ; Maximum execution time of each script, in seconds Das scheint es aber nicht zu sein. Ich habe nämlich zu Testzwecken den Wert auf 3 runtergesetzt und nach Rechnerneustart ein Script per sleep() über 10 Sekunden laufen lassen. Das Script wurde dennoch erfolgreich ausgeführt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 21. September 2004 Teilen Geschrieben 21. September 2004 Hab mir mal die oberste user contributed note zu sleep durchgelesen:MPHH 05-Jul-2003 09:33 Note: The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), the sleep() function, database queries, etc. is not included when determining the maximum time that the script has been running. Klingt interessant Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TestseT Geschrieben 21. September 2004 Autor Teilen Geschrieben 21. September 2004 Aha, das erklärt's. Ansonsten, die Variable scheint schon die Korrekte dafür zu sein. Nach ein paar Testläufen habe ich dann gestern endlich das Script auf den produktiven Server losgelassen. Nach ca. 20 Minuten bzw. 1200 Sekunden, brach das Script ab. (hatte natürlich den Wert in der php5.ini wieder hoch auf standard (1200) gesetzt). Prima, Script funktioniert genau so, wie ich es gewollt habe. Dank an alle Beteiligten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.