art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 30.08.2004, 20:38   #1
TP-Senior
 
Registriert seit: Aug 2003
Ort: Kaiserslautern
khromium macht alles soweit korrekt
Question

Rekursive Navigation


Also folgendes, ich versuche im Moment eine etwas kompliziertere Navigation zu programmieren, die ich für meine Homepage benötigen werde. Habe mich damit jetzt auch schon einige Zeit beschäftig, komme aber irgendwie auf keinen grünen Zweig. Das Problem liegt, denke ich zumindest, darin, dass ich zwar die Einträge richtig aus der Datenbank bekomme, diese Daten aber nicht 'organisieren' kann.
Erstmal ein Beispiel:

Datenbankstrukur:
id - parentID - name
1 0 Baum1
2 0 Baum2
3 1 Ast1
4 1 Ast2
5 3 Blatt1
6 3 Blatt2

Wenn ich also auf den Link Blatt2 klick sollte das ganze später so aussehen:
Baum1
- Ast1
-- Blatt1
-- Blatt2 (selektiert)
- Ast2
Baum2

Diese Funktionen habe ich bis jetzt programmiert:
PHP-Code:
private function getLayerID($oldLayerID)
{
$queryStr "SELECT parentID FROM navigation
     WHERE ID = " 
$oldLayerID "
     AND active = 1"
;
$result $this->dbObject->getOne($queryStr);
$newLayerID $result['parentID'];
if(
$newLayerID 0)
    throw new 
ExtException('Could not get layerID with this navigationID (' $oldLayerID ')',1);
return 
$newLayerID;
}
 
private function 
buildNavigationArrays($layerID)
{
$queryStr "SELECT ID, name, source, parentID
     FROM navigation
     WHERE groupID = " 
$this->groupID "
     AND parentID = " 
$layerID "
     AND active = 1 
     ORDER BY sequence ASC"
;
$this->dbObject->query($queryStr);
$counter 0
while(
$row $this->dbObject->nextRecord())

    if(
$layerID != 0)
    {
     
$this->subNavigationArray[$layerID][$counter] = $row;
     
$this->subNavigationArray[$layerID][$counter]['linkSource'] = $this->getLinkSource($row['ID']);
    }
    else
    {        
     
$this->navigationArray[$counter] = $row;
     
$this->navigationArray[$counter]['linkSource'] = $this->getLinkSource($row['ID']);    
    }
    
$counter++;

if(
$layerID != 0)

    
$layerID $this->getLayerID($layerID);    
    
$this->buildNavigationArrays($layerID);
}
 

Erläuterung: Als Startwert wirt nur die navID vom selektierten Link (hier: Baum2) verwendet. Die Funktion fängt also von hinten an und holt sich erst alle Blätter, dann die Äste und dann die Bäume ^^?

Das Problem ist, dass ich irgendwie nicht dahinterkomme wie ich diese Arrays wieder verknüpfen soll, so dass sie auch die richtige Struktur bei der Ausgabe ausbilden. Als Hinweis, hier soll noch keinerlei Html eingepflechtet werden, da ich für die Formatierung Smarty verwende/verwenden muss.

Ich hoffe ihr könnt mir weiterhelfen.
khromi

Geändert von khromium (30.08.2004 um 20:41 Uhr).
khromium ist offline   Mit Zitat antworten


Alt 30.08.2004, 21:00   #2
TP-Junior
 
Registriert seit: Aug 2004
torfnase macht alles soweit korrekt
Für das Abbilden von Baumstrukturen in einer Mysql-Tabelle würde ich in jedem Falle das Prinzip der Nested Sets verwenden.
Unter dem Stichwort findest du sicherlich eine genaue Beschreibung, aber wenn du damit Probleme hast, kannst du mich gerne noch mal ansprechen.
torfnase ist offline   Mit Zitat antworten
Alt 30.08.2004, 21:42   #3
TP-Senior
 
Registriert seit: Aug 2003
Ort: Kaiserslautern
khromium macht alles soweit korrekt
Ey, das Prinzip ist einfach nur genial ^^. Aber muss das jetzt erstmal schlucken. Melde mich nochmal...
khromium ist offline   Mit Zitat antworten
Alt 30.08.2004, 22:00   #4
TP-Veteran
 
Benutzerbild von fettmme
 
Registriert seit: Feb 2002
fettmme bringt sich richtig einfettmme bringt sich richtig ein
Nested Sets
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
fettmme ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Rekursive Navigation Rekursive Navigation
« einträge in der mysql datenbank zählen? | Textfile nach Tags durchsuchen und filtern »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
3 ebenen navigation schritt für schritt warabunga Fireworks 3 30.06.2004 21:28
Navigation im Framset AxelM Dreamweaver 4 24.03.2003 17:40
Datensatz Navigation jasmin2701 Dreamweaver 2 24.03.2003 17:18
Tips und tricks zu Navigation? html'er Webdesign & Co. 3 04.05.2002 11:31
Navigation mit Java-Script? IST DAS GUT? Fischzuechter Webdesign & Co. 2 17.03.2002 04:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:13 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67