Mailinglisten-Archive |
Thomas Gigold schrieb:
> Ich habe folgendes Problem und suche nach einer guten Lösung:
> Ich habe ein Script, das aus einer Tabelle A knapp 1500 Einträge liest
> (werden stetig mehr). Innerhalb der while-Schleife wird eine Datei
> gelesen, diese mit einem in Tabelle B vorhandenen Eintrag gegengeprüft.
> Gibt es eine Änderung wird der Inhalt der Datei in die Tabelle B
> geschrieben.
welche Rolle spielt dabei Tabelle A ?
geht die While-Schleife über die Einträge der Tabelle A oder B ?
> Jetzt meine Frage:
> Wie schaffe ich es am geschicktesten, dass es nicht in einem Time-Out
> landet? Ich dachte ich lasse 50 Datensätze durchlaufen, geb dann die ID
> des letzten bearbeiteten Datensatzes per header-Weiterleitung an das
> gleiche Script wieder weiter und fang dann bei meiner DB-Abfrage mit
> einer id > $_GET['id'] an.
> Dachte eigentlich das sei eine gute Idee; leider bringt es auch nicht
> viel, da ich nach einer Weile wieder im Time-Out lande.
du könntest die UPDATE-Abfragen für die Tabelle B 'sammeln' und wenn du
50 oder so zusammen hast diese auf einmal abschicken
$upates = array();
while ()
{
...
$upates[] = 'UPDATE ...'
if ( count($updates) > 50 )
{
mysql_query(implode('; ', $updates));
}
}
mit dem genauen Code der While-Schleife könnte man vielleicht noch mehr
helfen
--
Sebastian Mendel (www.sebastianmendel.de)
*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com
php::bar PHP Wiki - Listenarchive