| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 09.03.2005
Beiträge: 219
![]() | Nested Sets ist eigentlich nicht sehr kompliziert, wenn man sich einmal eingearbeitet hat. Ich würde es dir für dein Vorhaben empfehlen, wenn deine Menüstruktur komplexer werden sollte. Ein deutsches Tutorial, was eigentlich alle wichtigen Punkte erklärt: http://www.klempert.de/nested_sets/artikel/ Auch die Datenbankausgabe von Mysql. Übrigens der 1. Link bei Google für den Suchbegriff "nested sets" |
| |
| | |
| Erfahrener Benutzer Registriert seit: 07.11.2003
Beiträge: 526
![]() | br.... eben die nested sets kenne ich und habe ich reichlich gefunden. davon wollte ich eben wegkommen. ich denke es geht doch auch einfacher oder? ich hab da jetzt das hier gefunden (wird auch so bei oscommerce benutzt, allerdings komischerweise mit einer nummer pro offener kategorie HIER: PHP-Code: aktiv "strategie", also die kategorie id 8 (parent = 6) 0_1 - hardware # 1_2 mainboards # 1_3 grafikkarten 0_4 - software # 4_5 - programme ## 5_9 - windows ## 5_10- linux # 4_6 - spiele ## 6_7 - action ## 6_8 - strategie dann sollte das menü so aussehen: - hardware - software -- programme -- spiele ---- action ---- strategie
__________________ mfg Alexander Haim |
| |
| | ||
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Hast du den das Prinzip von Nested Sets verstanden? http://de.wikipedia.org/wiki/Nested_Set Zitat:
Ein Nested Set Element speichert einen linken und einen rechten Wert. Die Werte dazwischen sind seine Unterelemente. Somit kannst du, wenn du ein Element auswählst mit nur einem SELECT seine kompletten Unterelemente erfassen (eben alle, deren IDs zwischen dem links- und rechts-Wert des Hauptmenüs liegen). Natürlich muss nach jedem Einfügen eines neuen Menüpunktes die Datenbank reorganisiert werden. Das kannst du aber automatisieren. Werd dir einfach nur über die Funktionsweise klar und leg dir dann einfach ein Skript zu, dass die ganze Arbeit für dich übernimmt. Edit: Na gut, aber performant ist das ganze dann nicht und außerdem, wie findest du mit einem SQL-Query alle Unterelemente von XY. Du musst jeden Zweig einzeln durchlaufen (und genau das macht deine gepostete Funktion ja auch). Keine schöne Lösung. Dir kann es doch letztlich eigentlich egal sein, wie dein Menü organisiert ist, solange der Algorithmus gut gekapselt (also nach außen nicht sichtbar) ist. Schreib dir eine Funktion addMenu(), removeMenu(), getChildElements(), getParentElement() und die Funktionalität versteckst du dahinter. | |
| |
| | ||
| Erfahrener Benutzer Registriert seit: 07.11.2003
Beiträge: 526
![]() | Zitat:
hier in den shops ist das irgendwie anders gelöst: http://www.gamespot.at/catalog/defau...?cPath=1_31_81 nur weiss ich eben nicht wie. es wird doch mehrere leute geben die auch so ein problem hatten oder? sprich wenn man ein cms mit einem menü und unbegrenzten submenüs machen möchte. wäre super wenn ihr mir da einen lösungsvorschlag liefern könntet, mit dem ich, als php mittelmässiger zurecht komme.
__________________ mfg Alexander Haim | |
| |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Also so ganz verstehe ich dich nicht. Wenn dir Nested Sets zu komplziert zum programmieren ist, dann bleiben dir doch nur 2 Möglichkeiten: a) Ein Skript downloaden. zB das hier: http://www.phpclasses.org/browse/package/2547.html b) Eben nicht Nested Sets zu verwenden, mit all den Vor- und Nachteilen |
| |
| | |
| Erfahrener Benutzer Registriert seit: 07.11.2003
Beiträge: 526
![]() | ich denke ich bin einfach zu doof für das. wie kann ich denn das realisieren. zerbreche mir seit stunden den kopf. in der db mit parent_id speichern. root = 0. bsp: id, parent_id, name 1, 0, haupt1 2, 0, haupt2 3, 1, unterkat1_von_haupt1 4, 3, unterunterkat_von_unterkat1 auf der webseite dann stehe ich an und bekomme einen knopf ins hirn: abfrage und anzeigen der hauptkategorien (link mit urlübergabe der id derselben) ist ja kein problem (select ... where parent_id = 0). die nächste generation der gerade aktiven hauptkategorie auszulesen ist auch kein problem (select ... where parent_id = url_id). mein problem ist das ganze dann zu kombinieren? bsp: Code: <?php
/* db: menue
id, parent_id, name
1, 0, hauptkat1
2, 0, hauptkat2
3, 1, unterkat von hauptkat1
4, 3, unterkat von unterkat der hauptkat1
*/
// ausgabe der hauptkategorien
$sql = "SELECT id, parent_id, name FROM menue WHERE parent_id = 0";
$query = mysql_query($sql);
$output = ''
while($data = mysql_fetch_assoc($query) {
$output.= ''.$data['name'].'';
}
// anzahl der töchter ausgeben
$sql = "SELECT id, parent_id, name FROM menue WHERE parent_id = $id";
$query = mysql_query($sql);
// nur wie kann ich das dann mit dem oberen kombinieren?
// navigation ausgeben:
echo $output;
?>
__________________ mfg Alexander Haim |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Nested Sets und viele Fragen... | BartTheDevil89 | Datenbanken | 7 | 13.08.2008 10:18 |
| nested set dbmodell subtrees verschieben | raffnix | Datenbanken | 12 | 08.06.2008 13:27 |
| Nested Sets oder Rekursion? | litterauspirna | PHP Tipps 2008 | 8 | 06.06.2008 16:57 |
| Nested Sets in ein Mehrdimensionales Array | Simon9990 | PHP-Fortgeschrittene | 2 | 29.10.2007 17:38 |
| Nested Sets Query | GSJLink | Datenbanken | 12 | 08.09.2007 10:55 |
| nested oder getrennt? was meint ihr? | Promaetheus | PHP Tipps 2006 | 4 | 01.07.2006 18:18 |
| Nested Sets und Silbings | nightfreak | Datenbanken | 10 | 06.01.2006 13:58 |
| Nested Sets History | Sirke | PHP-Fortgeschrittene | 1 | 21.10.2005 08:50 |
| erklärung gesucht: nested set query! | Sirke | Datenbanken | 0 | 19.09.2005 17:24 |
| Alternative zu Nested Sets | fantast | Datenbanken | 1 | 16.08.2005 01:14 |
| hilfe nested sets | zapate | Datenbanken | 6 | 02.08.2005 02:58 |
| Nested Sets mit Berechtigungen? | daniel987 | Datenbanken | 3 | 07.06.2005 22:18 |
| [Erledigt] Frage zu nested sets... | PHP-Fortgeschrittene | 2 | 04.03.2005 09:57 | |
| Nested Set Trees und Pfade | Datenbanken | 0 | 16.12.2004 16:51 | |
| NESTED SETS dieses Thema sollte abgehakt werden | PHP Tipps 2004 | 0 | 12.10.2004 18:18 | |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.