| | | | |
| |||||||
| Datenbanken SQL und Co |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Neuer Benutzer Registriert seit: 10.08.2009
Beiträge: 6
PHP-Kenntnisse: Fortgeschritten ![]() | Ich habe mir das hier durchgelesen und muss zugeben, ich habe von diesem Model noch nicht gehört. Ich sage es mal so: es würde mir weiterhelfen, ist aber umständlich in der Handhabung (SQL-Statements) und lässt noch ein paar Fragen offen. Eine Frage, die sich mir schon zu Anfang des Artikels auftat ist: Was ist, wenn die "Wurzel" dicker ist, als nur ein Eintrag, wie es bei mir der Fall ist. So, wie es dort beschrieben wurde, habe ich das Gefühl, dass alles nur von einem Nennen abstammen darf. |
| | |
| | |||
| Neuer Benutzer Registriert seit: 06.08.2009
Beiträge: 28
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Hier siehst du ja ein paar Beispielabfragen und drei Modelle im Vergleich: Nested Sets – Verschachtelte Bäume mit MySQL - Arne Klempert Zitat:
Zwei Möglichkeiten die mir spontan einfallen: 1. Du hängst dann einfach einen Wurzelknoten in den Baum, den du nicht mit ausgibst 2. Du führst eine root_id in der Tabelle ein die immer die ID der Wurzel des Teilbaums enthält | ||
| | |
| | |||
| Neuer Benutzer Registriert seit: 10.08.2009
Beiträge: 6
PHP-Kenntnisse: Fortgeschritten ![]() | Moin, nach einer erholsamen und ausgeschlafenen Nacht, habe ich auf dem Weg zur Arbeit mir das alles durch den Kopf gehen lassen. Ich werde mir eine Klasse schreiben, da ich eh alles in OOP mache, die das ganze handhabt. Da fällt das Rumhantieren mit den SQL-Abfragen weg. Zitat:
Zitat:
| ||
| | |
| | |
| Erfahrener Benutzer Registriert seit: 02.04.2008
Beiträge: 4.032
![]() | Z.B. Stored Procedures
__________________ Gruss L |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 03.06.2009
Beiträge: 140
PHP-Kenntnisse: Anfänger ![]() | schau mal hier rein Count von Produkten in Kategorien und Unterkategorien, hatte da eine procedure geschrieben um aus der jetzigen Struktur das nested-set aufzubauen, vielleicht erklärt es auch einpaar fragen zum Aufbau von procedures in mysql. wenn du konkrete implementierungen von procedures für deine Abfragen besprechen willst, müsstest du hier noch beschreiben, wie die Änderungen in der Struktur durchgeführt werden sollen. thomas |
| | |
| | ||
| Neuer Benutzer Registriert seit: 10.08.2009
Beiträge: 6
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
| |
| | |
| | |
| Neuer Benutzer Registriert seit: 10.08.2009
Beiträge: 6
PHP-Kenntnisse: Fortgeschritten ![]() | Ich habe mich ein wenig in die Server-Routinen eingelesen und bleibe vorerst doch bei einer einfachen Klasse. Ist sonst zu viel neues zum "verdauen". Hab aber noch eine Frage bezüglich NestedSets. Ich möchte die Navigation verzeichnisweise auslesen. Habe ein Testscript geschrieben, mit dem ich mir alles ausgeben lasse. Wenn ich die ganze Navigation anzeigen will, wird es richtig gemacht und es kommt das hier: Code: root - 7
Aktivitäten - 2
Gruppen - 1
Fotografen - 0
bds_aktuell - 3
januar - 0
februar - 0
märz - 0
(titel / offspring)
Code: root - 7
Aktivitäten - 2
bds_aktuell - 3
januar - 0
Code: root - 7
bds_aktuell - 3
januar - 0
Die SQL-Abfragen habe ich aus den Beispiel übernommen und in einer Klasse angepasst. Code: public function get($id="") {
if(!$this->result) {
if($id) {
$sql="
SELECT p.*,
ROUND ((p.rgt - p.lft - 1) / 2) AS offspring
FROM ".$this->table." n,
".$this->table." p
WHERE n.lft BETWEEN p.lft AND p.rgt
AND n.id = ".$id."
ORDER BY n.lft;";
} else {
$sql="
SELECT n.*,
COUNT(*)-1 AS level,
ROUND ((n.rgt - n.lft - 1) / 2) AS offspring
FROM ".$this->table." AS n,
".$this->table." AS p
WHERE n.lft BETWEEN p.lft AND p.rgt
GROUP BY n.lft
ORDER BY n.lft;";
}
$this->result = $this->db->query($sql);
}
$i = $this->db->fetchArray($this->result);
if(!$i)
$this->result = $i;
return $i;
}
Code: // [Datenbank-Objekt], [NestedSet-Tabelle] $ns = new NestedSet($db, "navigation"); while($i = $ns->get(19)) echo $i['title']." - ".$i['offspring']."<br>"; Code: id title query status LFT RGT 1 root NULL 0 1 16 2 Aktivitäten 1 2 7 4 Gruppen 1 3 6 12 bds_aktuell 1 8 15 19 januar 1 9 10 20 februar 1 11 12 21 märz 1 13 14 22 Fotografen 1 4 5 |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] 2 Select-Abfragen in eine Variable speichern | TheMav | Datenbanken | 3 | 18.06.2009 00:29 |
| [Erledigt] Select * where in (Select ...) Geschwindigkeitsproblem | Wolla | Datenbanken | 14 | 20.05.2009 15:16 |
| SQL select fehlerhafte Resultate. Ist PHP 64 Bit das Problem? | peterw | Server, Hosting und Workstations | 6 | 21.04.2009 09:19 |
| miltiple select formula | mike12 | PHP Tipps 2009 | 5 | 10.02.2009 00:20 |
| [Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) | dr.e. | Datenbanken | 4 | 15.06.2008 19:54 |
| [Erledigt] Mysql Insert Select + Concat | Hu5eL | Datenbanken | 14 | 10.06.2008 10:39 |
| [gelöst] SELECT COUNT(*) FROM SUBSELECT braucht ewig! | stefanjann | Datenbanken | 3 | 25.02.2008 08:44 |
| Select - Preselect | simsalabim | HTML, Usability und Barrierefreiheit | 6 | 22.11.2007 20:21 |
| SELECT AS geht bei AVG net | cyberholic | Datenbanken | 0 | 04.05.2006 09:43 |
| [JavaScript] Event Handler in form select - Syntax? | winfo_cologne | HTML, Usability und Barrierefreiheit | 5 | 29.03.2006 16:47 |
| Probleme mit Inner Select | Datenbanken | 0 | 19.10.2005 15:22 | |
| selbst gelöst! Select <option> kleines Problem Dropdow | 24bits | PHP Tipps 2005-2 | 0 | 15.10.2005 19:19 |
| [Erledigt] SELECT in SELECT | PHP Tipps 2005 | 5 | 06.04.2005 22:30 | |
| [Erledigt] 2 mal select 1 form | PHP-Fortgeschrittene | 1 | 01.09.2004 20:13 | |
| selektierter wert in select box anzeigen | PHP Tipps 2004 | 6 | 30.08.2004 13:49 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| http://www.php.de/datenbanken/57941-tree-menue-navigation-mit-einem-select.html, php tree navigation, php tree menu, php tree, navigation tree php, menünavigation mit php, html select baum, tree menu ordner php, mysql baum auslesen, navigation menu php klasse datenbank, tree navigation, html select tree, php mysql tree navigation, php tree menu mysql, php navigation tree, treemenu php, php navigation baum, tree mysql auslesen, tree menu select, tree menu php |