# php in Java einbinden (wirklich so rum, nicht Java in php)



## Campino (5. Jan 2005)

Hi, 

ich hab ein php-Skript, dass Datenbankeinträge bearbeitet und dabei ein paar überflussig macht und löscht. Die Datenbank hat im Moment etwa 600 Einträge von denen gut die hälfte gelöscht werden könnte, wenn der Skript sie bearbeiten würde. Im Normalfall nimmt der Skript sich etwa 10-20 und bearbeitet die, was auch reicht. Ich würde aber gerne ALLE 600 mal bearbeiten lassen. Wenn ich den php-Code entsprechend anpasse und auf einem normalen Webserver ausführe, kommt 

```
Maximal Exekusion time extended...
```
(oder so). Muss ich mal nen Nachmittag damit zubringen, dann immer auf neu laden zu klicken, oder gibt es einen php-Parser, der sich in Java einbinden lässt, so dass ich einfach in Java 'ne entsprechende Schleife legen kann?

danke schonmal, 

Campino


----------



## sliwalker (5. Jan 2005)

Hoi,

davon wüsste ich nichts.

Aber schon mal an PHP CronJobs gedacht?
Legst Du nen cronJob an der alle vllt 5 Minuten Dein Skript startet.
Dann brauchst Du nicht neu starten.

Aber die Tatsache, das Dein PHP Skript selbst immer abbricht, würde mich viel mehr beunruhigen.
Vielleicht schreibts Du da mal was um^^ 

greetz
SLi


----------



## Bleiglanz (6. Jan 2005)

gibts doch ne PHP Einstellung (max execution time), die dafür zuständig ist? schau mal in php.ini; kannst du evtl. auch in .htaccess manipulieren

=> geht natürlich nur, wenn du kontrolle über den server hast

ist oft auf 30 Sekunden gesetzt - so lange sollte keine DB Operation laufen -  hast du schon mal daran gedacht, nicht in einer Schleife durch die ganzen Zeilen zu laufen, sondern mit

update ... where ...

delete ... where

mehrere Zeilen auf einmal zu bearbeiten?


----------



## Campino (6. Jan 2005)

1. Im normalfall läuft das Skript, nur jetzt grade will ich nicht bloß 10 DB-Einträge (wie sonst) sondern alle 600 durchgehen.

2. Mehrere zeilen auf einmal bearbeiten geht nich, weil die zeilen jede eine bestimmte zeit, die von ihrem Inhalt abhängig ist existieren soll, dass muss php est prüfen.

3. Ich glaub ich werde an der maximal execusion time drehen


----------



## Guest (6. Jan 2005)

zur not kannste doch auch aus java aus das script ausführen. musst natürlich den php parser installiert haben.


----------



## Campino (6. Jan 2005)

Danke für die Tipps, die lange Laufzeit war aber doofheit   nach entfernen der Endlosschleife hat's etwa 6 sek. gedauert....


----------



## Spacerat (11. Jan 2005)

So etwas geht (zwar etwas umständlich) komplett in PHP (ist also eigenlich kein Java-Thema).

Ich versuch' das mal ohne Code.

1. Request mit den zu löschenden Daten an das Script senden.
2. TimeStamp (TimeSnapshot) nehmen.
3. mit WHERE abfragen, wieviele und welche Datensätze in Frage kommen.
4. während TimeStamp + max_execution_time < time(), Datensätze in separaten Abfragen behandeln.
5. wenn noch Datensätze übrig sind, Seite mit META- oder JavaScript-Refresh erstellen, welche den oben übergebenen Request nachbildet (z.B mit <input type="hidden" ...).

Das ist jetzt zwar sehr abstrakt, aber ich hoffe das hilft dir weiter.

Wenn nicht... gibt es da nicht irgendwo in der Java-Welt auch etwas für MySQL? So etwas hab' ich doch irgendwo schon einmal gelesen.


----------



## EagleEye (11. Jan 2005)

klar man kann mit java auch mysql machen


----------

