ronaldo84
Erfahrenes Mitglied
Hallo.
Ich habe eine Datenbank. In dieser stehen 15.000 Produkteinträge . Nun habe ich eine Menge von ca. 70.000 Html -Seiten. Auf diesen Seiten sind Produktbezeichnungen für die Produkte in der Datenbank. Die überflüssigen Seiten sind leer. Nun öffne ich mittels meines Skripts jede dieser Html Seiten und durchsuche Sie nach jeder Artikelnummer aus meiner Datenbank. Ist die Artikelnummer vorhanden soll bei dem Datensatz bei dem die Artikelnummer gefunden wurde eine Artid eingetragen werden. Nun habe ich folgendes Skript:
Nun dauert das je einige Zeit. Ich kann nicht alle 70.000 Dateien auf einmal durchsuchen, da sonst eine Zeitüberschreitung von 1200 Sekunden vorkokmmt und das Skript beendet wird. Bis jetzt ist es nur möglich ca. 1500 bis 2000 Dateien mit einem Durchgang zu durchsuchen.Danach muss ich dem Filecounter einen neuen Bereich zuteilen. Weiß jemand wie ich den Vorgang beschleunigen kann? Habe versucht das SQL-Statement schon einzuschränken indem er nur die DS nimmt bei denen Artid = 0 ist. Würde mich freuen wenn mir jemand helfen könte.
Ich habe eine Datenbank. In dieser stehen 15.000 Produkteinträge . Nun habe ich eine Menge von ca. 70.000 Html -Seiten. Auf diesen Seiten sind Produktbezeichnungen für die Produkte in der Datenbank. Die überflüssigen Seiten sind leer. Nun öffne ich mittels meines Skripts jede dieser Html Seiten und durchsuche Sie nach jeder Artikelnummer aus meiner Datenbank. Ist die Artikelnummer vorhanden soll bei dem Datensatz bei dem die Artikelnummer gefunden wurde eine Artid eingetragen werden. Nun habe ich folgendes Skript:
PHP:
<?php
$sql = "Select artnr, artid FROM preisliste_win WHERE artid = '0'"; //artikelnummer aus Tabelle holen
$verbindung= mysql_connect("localhost", "name", "passwort");
mysql_select_db("root", $verbindung) or die(mysql_error());
$res = mysql_query($sql) or die(mysql_error());
for ( $filecounter=57001; $filecounter <= 58500; ++$filecounter) //For-Schleife die die Dateien hochzählt bis <=60580
{
$sourcefile = "?action=artmehr&artid=$filecounter" ;
$content = file($sourcefile); //Zeilen werden eingelesen
mysql_select_db("root", $verbindung) or die(mysql_error());
$res = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_object($res)) //solange Objekt in res
{
for ($i=0; $i<count($content); $i++) //For-Schleife die jede einzelen Zeile nach der artikelnummer durchsucht
{
if(ereg($row->artnr, $content[$i],$regs)==strlen($row->artnr))
{ mysql_query("Update preisliste_win SET artid= '$filecounter WHERE artnr= '$row->artnr'") or die (mysql_error());
$updatecounter++; echo $filecounter; echo "<br>"; }
else
{break;}
}
}
}
echo "Updates: "; echo $updatecounter;
?>