Hi Leute
hab folgendes problem:
das script unten benutzt zwei tables in ner datenbank:
media mit etwa 7000 einträgen und
categories mit etwa 400 einträgen
das script läuft durch einen verzeichnisbaum mit etwa 7000 files (eben das was in media auch drinsteht) drinnen und fragt dazu die jeweilige 'kategorie', sprich den Ordner auf dem Server welcher in categories definiert wird ab - ist eigetnlich ganz gut ersichtlich ausm script.
Jetzt aber das problem: das script brauch KRAAASSSS lange zum ausführen - etwa 3 minuten. Hab ich da grundlegend was falsch gemacht oder ist das einfach so lahm?!
danke für eure hilfe - hier ist der code...
danke für eure hilfe
hab folgendes problem:
das script unten benutzt zwei tables in ner datenbank:
media mit etwa 7000 einträgen und
categories mit etwa 400 einträgen
das script läuft durch einen verzeichnisbaum mit etwa 7000 files (eben das was in media auch drinsteht) drinnen und fragt dazu die jeweilige 'kategorie', sprich den Ordner auf dem Server welcher in categories definiert wird ab - ist eigetnlich ganz gut ersichtlich ausm script.
Jetzt aber das problem: das script brauch KRAAASSSS lange zum ausführen - etwa 3 minuten. Hab ich da grundlegend was falsch gemacht oder ist das einfach so lahm?!
danke für eure hilfe - hier ist der code...
PHP-Code:
//
// STEP 3
// Mediafiles Updaten und einfügen
//
if ($step==3)
{
echo "<u><font face=Verdana size=2 color=green><b>Step 3:</b> Show me what you've got! Spidering Mediafiles</u></font><br> <br>";
#echo "<b>Category-Database <font color=red>happily</font> destroyed - now rebuilding...</b><br><br>";
rekursiv_mediafiles($basedir);
}
function rekursiv_mediafiles($root)
{
chdir($root);
$folder = opendir($root);
while ($verz = readdir($folder))
{
if (is_dir($verz) && $verz != ".." && $verz != ".")
{
$path= $root;
$newroot = "$root/$verz";
rekursiv_mediafiles($newroot);
chdir($root);
}
elseif(!is_dir($verz))
{
if (substr($verz, 0, 2)!="t_")
{
$query_exsist = "SELECT * FROM media WHERE path = '$path/$verz'";
$query_exsist = mysql_query($query_exsist);
#$query_exsist = mysql_fetch_row($query_exsist);
if (mysql_num_rows($query_exsist)=='0')
{
$path= $root;
$query= "SELECT id FROM categories WHERE path = '$path'";
$query_parent_id = mysql_query($query);
if (mysql_num_rows($query_parent_id)>0)
{
$parent_id = mysql_result($query_parent_id,0,id);
}
else {
$parent_id="0";
}
$query_insert=mysql_query("INSERT INTO media (id,cat_id,path,caption) VALUES ('','$parent_id','$path/$verz','')");
echo "<b>$verz</b> - added<br>";
}
else
{
$path= $root;
$query= "SELECT * FROM categories WHERE path = '$path'";
$query_parent_id = mysql_query($query);
if (mysql_num_rows($query_parent_id)>0)
{
$parent_id = mysql_result($query_parent_id,0,id);
}
else {
$parent_id="0";
}
$query_update = mysql_query("UPDATE media SET cat_id = '$parent_id' WHERE path = '$path/$verz'");
echo "<b>$verz</b> - updated<br>";
}
}
}
}
closedir($folder);
}
danke für eure hilfe
Kommentar