Mailinglisten-Archive |
Hi, > PHP-Tree ist *fast* genau das, was ich seit langem suche. Ich kapiere > einfach nicht, wie eine rekursive Funktion funktionieren kann, die > einzelne Nodes (ist das Wort an dieser Stelle richtig?), die eine > unique id und einen Zeiger auf den parent haben, korrekt (und auch > eine Gruppe von children alphabetisch sortiert) als Baum in HTML > ausgibt - <aufheul> bin schon am verzweifeln </aufheul>. <? # Funktion für showbaum # # Macht $anz Linien nebeneinander. # function makelinie($anz) { for ($i=0; $i<=$anz; $i++) { echo "<IMG ALIGN=top SRC=\"/admin/e_linie.gif\" WIDTH=20 HEIGHT=16 ALT=\"\">"; } } # Zeigt die Baumstruktur mit Bereichen/Seiten rekursiv an. # Hierbei ist eine beliebige Tiefe für die Bereiche möglich. # function showbaum($mybid) { GLOBAL $zaehler,$mybaum; $query="SELECT * FROM bereich WHERE oberbereich='$mybid' ORDER BY bereichsname"; if ($result=mysql_query($query)) { while ($row=mysql_fetch_array($result)) { $name=$row[bereichsname]; $berid=$row[b_id]; $boid=$row[oberbereich]; $name=eregi_replace(" "," ",$name); if ($zaehler>0) { makelinie($zaehler-1); } echo "<IMG ALIGN=top SRC=\"e_t-stueck.gif\" WIDTH=20 HEIGHT=16 ALT=\"\">"; echo "<A HREF=\"links.php3?bid=$berid\"><IMG ALIGN=top SRC=\"e_verzeichnis.gif\" WIDTH=20 HEIGHT=16 border=0 ALT=\"\">$name</A> "; echo "[<A HREF=\"bereich.php3?option=neu&oid=$berid\" target=\"rechts\">N</A>]"; echo "[<A HREF=\"bereich.php3?option=cha&id=$berid&oid=$boid\" target=\"rechts\">E</A>]"; echo "[<A HREF=\"bereich_del.php3?oid=$berid\" target=\"rechts\">D</A>]"; echo "<BR>\n"; # Seiten zum Bereich anzeigen # if (($zaehler<count($mybaum)) && $mybaum[$zaehler]==$berid) { $myres=mysql_query("SELECT * FROM seite WHERE bereich='$berid' order by dateiname"); while ($myrow=mysql_fetch_array($myres)) { #if ($zaehler>0) { makelinie($zaehler); #} echo "<IMG ALIGN=top src=\"e_t-stueck.gif\" width=20 height=16 alt=\"\"> "; $hf=$myrow[dateiname]; if ($hf=="") { $hf="kein Dateiname!!"; } echo "<b><a href=\"seite.php3?option=edit&id=$myrow[sid]\" target=\"rechts\">$hf</a></b>"; if ($hf!="") { $hbereich=$myrow[bereich]; $vz=bastel_serververzeichnis($hbereich); $url=$vz.$hf; echo " [<a href=\"/$url\" target=\"_blank\">S</a>]"; } echo "<br>\n"; } makelinie($zaehler); echo "<IMG ALIGN=top src=\"e_t-stueck.gif\" width=20 height=16 alt=\"\"> "; echo "<a href=\"seite.php3?option=neu&oid=$berid\" target=\"rechts\">Neue Seite</a><br>\n"; } # # Anzeigeende if (($zaehler<count($mybaum)) && $mybaum[$zaehler]==$berid) { $zaehler++; showbaum($berid); $zaehler--; } } } } ?> Restliche Implementation ist Hausaufgabe. Aufgerufen wird die Funktion mit dem Parameter "0". -- Björn Schotte 09364/810492 PHP-Center -> <http://www.php-center.de/>
php::bar PHP Wiki - Listenarchive