Witam, mam spory problem. Stworzyłem skrypt kategorii na zasadzie:
tabela kategorii:
ID | Name | ...
tabela relacji:
ChildID | ParentID
i teraz tabela relacji łączy kategorie w sposób: kategoria - podkategoria. Podkategorie mogą być teoretycznie nieskończonego poziomu. Zrobiłem też funkcję rekurencyjną wypisującą drzewko kategorii:
function showchild($parentid=0, $level=' '){
global $db, $id, $tree;
$result=$db->select('cat_links, categories', 'categories.Name, categories.ID', 'cat_links.ChildID=categories.ID AND cat_links.ParentID='.$parentid);
while($rec=$db->fetch_assoc($result)){
if($id==$rec['ID'])
$name='<b>'.$rec['Name'].'</b>';
else
$name=$rec['Name'];
$tree.=$level.'<a href="cattree.php?ID='.$rec['ID'].'">'.$name.'</a>'.($id==$rec['ID']?'<img src="../Pictures/Graphic/Arrow.png" alt="" style="position: relative; top: 8px;"/>':'').'<br>';
showchild($rec['ID'], $level.' ');
}
}
Problem teraz jest taki, że przy większej (choć znowu nie tak dużej) ilości danych funkcja powoduje niedziałanie całego skryptu - dostaję na wyniku białą stronę. Drzewko jest mi bardzo potrzebne, jak mogę zrobić je inaczej, żeby nie... hmmm... nie zżerało tyle czasu? Zasobów? No, żeby to działało... :P