hi markus!
nein, perl schränkt hier meines wissens nach in keiner weise ein.
die frage ist ja, ob du deine routine wirklich 16x in sich selbst verschachteln musst?
ein stück code ist hier wohl unabdingbar...
OK
Die Datenbanktstruktur sieht wie folgt aus:
+-------+--------+-------+--------+
| ID | name | layer | parent |
+-------+--------+-------+--------+
| 1 | Home | 0 | 1 |
| 2 | test1 | 1 | 1 |
. . . .
. . . .
. . . .
| 38086 | test2 | 1 | 1 |
| 38087 | blabla | 2 | 1 |
+-------+--------+-------+--------+
das script wie folgt:
sub checkchild {
my $tree;
my @vars = sql(qq{
SELECT * FROM ebay_categories
WHERE parent = '$_[0]' AND ID != parent});
my $count = (@vars/4);
if ($count > 0)
{
for (my $c = 0; $c < $count; $c++)
{
my $layer = "";
while ($vars[2+$c*4] >= 0)
{
$layer.=" ";
$vars[2+$c*4]--;
if ($vars[2+$c*4] == 0)
{
$layer.="»";
}
}
$tree.="$layer<a href="#">$vars[1+$c*4]</a><br>\n";
$tree.=checkchild($vars[0+$c*4]);
}
}
return($tree);
}
print checkchild('1');
vielleicht sieht ja nun jemand, was ich 'falsch' mache...
Gruß, Markus