Markus: rekursion... Perl verweigert den Dienst...

Beitrag lesen

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.="&nbsp;";
     $vars[2+$c*4]--;
     if ($vars[2+$c*4] == 0)
      {
      $layer.="&raquo;";
      }
     }
    $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