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