php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-08-2006, 01:38
waos
 Newbie
Links : Onlinestatus : waos ist offline
Registriert seit: Aug 2006
Beiträge: 2
waos ist zur Zeit noch ein unbeschriebenes Blatt
Standard Nested-Sets: Alle Einträge eines Astes ohne Untereinträge ausgeben

Hallo,

ich habe eine Frage zu Nested-Sets, ich möchte nämlich alle Einträge eines Astes anzeigen lassen, ohne aber dessen Untereinträge zu zeigen, ich will sie also "zusammengeklappt".

Am besten lässt sich das an einem Beispiel schildern, folgender Baum sei gegeben:
Code:
root
|------ Entry1
|        |- Entry2
|        |- Entry3
|        |
|        |- Entry4
|        |  |
|        |  |- Entry5
|        |  |  |- Entry6
|        |  |  `- Entry7
|        |  |
|        |  `-Entry8
|        |
|        `- Entry9
|             |- Entry10
|             `- Entry11
|
|------ Entry12
`----- Entry13
Ein Szenario wäre, dass ich alle Äste/Blätter ab der Wurzel, ohne Untereinträge anzeigen will. Das Ergebnis sollte also so aussehen:
Code:
Entry1
Entry12
Entry13
Das selbe möchte ich jetzt z.B. für Entry4 machen. Das Ergebnis sollte dann wie folgt aussehen:
Code:
Entry5
Entry8

Ich hoffe, ich könnt mir helfen, schonmal danke im voraus!
Mit Zitat antworten
  #2 (permalink)  
Alt 01-08-2006, 02:52
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

keine Datenbankstruktur, kein Code

Werd dir dann wohl nicht helfen können, hab meine Glaskugel beim Kollegen vergessen
Mit Zitat antworten
  #3 (permalink)  
Alt 01-08-2006, 03:35
waos
 Newbie
Links : Onlinestatus : waos ist offline
Registriert seit: Aug 2006
Beiträge: 2
waos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn du deine Glaskugeln gerne verlegst, solltest du dir die vielleicht mal auf Vorrat kaufen, für Großbesteller gibt es meines Wissens sogar 10% Ermäßigung pro Pfund Glaskugel.

Naja, entschuldige, aber ich hielt die Datenbankstruktur nunmal für nebensächlich, dass der Baum in einer Tabelle mit rgt- und lft-Werten gespeichert wird, ist selbstverständlich und der Rest irrelevant.

Aber nun gut, die Datenbank hat eine Tabelle, die folgendermaßen aussieht:
Code:
+----------------------------------+
|   Tabelle: nested_sets_test      |
+----+-----------------+-----+-----+
| id |  name           | lft | rgt |
+----+-----------------+-----+-----+
|    |                 |     |     |
|    |                 |     |     |
|    |                 |     |     |
|    |                 |     |     |
|    |                 |     |     |
+----+-----------------+-----+-----+
Mit Zitat antworten
  #4 (permalink)  
Alt 01-08-2006, 10:57
axo
 Junior Member
Links : Onlinestatus : axo ist offline
Registriert seit: Jan 2006
Ort: 127.0.0.1
Beiträge: 196
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hi waos... im nested sets - modell ist es nicht so einfach, 'children' herauszufinden, ohne gleich den kompletten stammbaum zu bekommen.
es ist klar, dass du die knotentiefe brauchst. ein 'kind' hat seine lft, rgt zwischen den lft,rgt des elternknotens, und zusätzlich ist seine tiefe(level) genau um eins größer als die tiefe des elternknotens.

celko macht das mit einem view und damit einem subquery, indem er vom kompletten unterbaum die enkel wieder mit NOT EXISTS entfernt. dürfte nicht sehr effizient sein, arbeitet aber ausschließlich mit den originaldaten.
in der pear-implementierung ist das effizienter gelöst, indem einfach eine zusätzliche "level"-spalte die absolute knotentiefe im baum angibt. damit hast du bei inserts und updates zwar mehr zu tun, aber die an die kinder zu kommen ist dann trivial.

grüße
axo

Geändert von axo (01-08-2006 um 10:59 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni

-->
 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:19 Uhr.