SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.06.2010, 12:54:10
Simon1990 Simon1990 ist offline
Anfänger
 
Registriert seit: Jun 2010
Alter: 33
Beiträge: 2
Nested Sets - Teilbaum zu mehreren Blättern ausgeben

Hallo Leute!

Ich hab grad ein Problem und hoffe, mir kann jemand kurz auf die Sprünge helfen.

Und zwar habe ich in meiner MySQL Datenbank eine Tabelle mit mehreren Artikeln. In einer weiteren Tabelle ist eine Kategorie-Struktur, nach dem "Nested Sets"-Prinzip angelegt. Die Artikel werden jeweils einer Kategorie zugeordnet.

Jetzt möchte ich anhand bestimmter Bedingungen (z.B. einem bestimmten Zeitraum) Artikel aus der Datenbank auslesen und diese in den Kategorien-Baum eingeordnet anzeigen.

Dabei sollen aber nur Teilzweige angezeigt werden, in denen es dann auch einen Artikel gibt.

Hat jemand vielleicht eine Idee? Ich häng grad irgendwie... =(

Vielen Dank schonmal im Voraus!

Gruß Simon
Mit Zitat antworten
  #2  
Alt 27.06.2010, 23:42:36
Simon1990 Simon1990 ist offline
Anfänger
 
Registriert seit: Jun 2010
Alter: 33
Beiträge: 2
AW: Nested Sets - Teilbaum zu mehreren Blättern ausgeben

Hallo,

da mir bisher leider noch keiner weiterhelfen konnte und ich denke, dass das vielleicht daran liegen könnte, dass ich mich noch nicht verständlich genug ausgedrückt habe, möchte ich es nun nochmal versuchen =)

wie man einen Baum aus einem Nested Set ermittelt, in dem ein bestimmtes Element vorhanden ist, weiß ich. Natürlich lässt sich das auch insofern erweitern, dass man für n gesuchte Elemente entsprechend n Bäume von Element e bis zur Wurzel ausgibt, was jedoch unsinnig viele Daten mehrfach erzeugt und die nachfolgende Verarbeitung kompliziert.

Bevor ich zu meiner konkretisierten Frage komme, eine kurze Darstellung des gesamten Baumes:
Code:
Id: 1
 |
 |- Id: 2
    |- Id: 3
    |- Id: 4
    |- Id: 5
    |- Id: 6
    |- Id: 7
    |- Id: 8
 |- Id: 9
 |- Id: 10
    |- Id: 11
    |- Id: 12
    |- Id: 13
 |- Id: 14
 |- Id: 15
Nehmen wir nun mal an, ich möchte diesen Baum haben, jedoch nicht mit allen Elementen, sondern nur mit den Elementen 4, 5 und 12, folglich:

Code:
Id: 1
 |
 |- Id: 2
    |- Id: 4
    |- Id: 5
 |- Id: 10
    |- Id: 12
Wie ich diese Abfrage nun gestalten soll, entzieht sich bislang meiner Vorstellungskraft. Setze ich die gewünschten Elemente (4, 5, 12) in den Bedingungsteil der Abfrage, erhalte ich, je nach Formulierung, entweder

NUR die gesuchten Elemente, nicht jedoch deren Eltern, sprich

Code:
SELECT
	d2.*
FROM
	datatest d1,
	datatest d2
WHERE
	d1.lft BETWEEN d2.lft AND d2.rgt
AND
	d2.id IN (4, 5, 12
AND
	d2.root_id = 1
AND
	d2.active = 1
AND
	d1.active = 1
GROUP BY
	d2.id
ORDER BY
	d1.lft, d2.lft

|- Id: 4
|- Id: 5
|- Id: 12
oder je einen gesamten Baum für jedes gesuchte Element, sprich

Code:
SELECT
	d2.*
FROM
	datatest d1,
	datatest d2
WHERE 
	d1.lft BETWEEN d2.lft AND d2.rgt
AND 
	d1.id IN (4, 5, 12)
AND
	d2.root_id = 1
AND
	d2.active = 1
AND
	d1.active = 1
ORDER BY 
	d1.lft, d2.lft

Id: 1
 |
 |- Id: 2
    |- Id: 4
Id: 1
 |
 |- Id: 2
    |- Id: 5
Id: 1
 |
 |- Id: 10
    |- Id: 12

PS an den Mod, der meinen Post verschoben hat: Ist das wirklich ein Anfänger-Problem und damit richtig im Grundlagen-Forum? Also entweder hab ich grad Tomaten auf den Augen (dann helft mir bitte sie loszuwerden xD) oder es ist kein sooo banales Problem. Finde dazu auch nichts bei google.. vielleicht such ich aber auch einfach nur nach dem falschen..

Wäre über Hilfe wirklich sehr dankbar. =)

Gruß Simon
Mit Zitat antworten
  #3  
Alt 28.06.2010, 12:12:51
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Nested Sets - Teilbaum zu mehreren Blättern ausgeben

Zitat:
Zitat von Simon1990 Beitrag anzeigen
Ist das wirklich ein Anfänger-Problem und damit richtig im Grundlagen-Forum?
schau dir mal den untertitel des forums an:

Zitat:
Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden
es ist ein grundlegendes problem. über Probleme und Bedenken talken klingt für mich ein wenig anders. darüber hinaus muss niemand angst haben, übersehen zu werden oder nicht mit den grossen jungs spielen zu dürfen .-

zu deinem problem: ich persönlich würde das prinzipiell nicht über sql lösen (sondern mittels php). darüber hinaus ist das, was du dir wünscht, meiner meinung nach nicht durch eine einzelne / beherrschbare sql-abfrage machbar. selbstverständlich kann man teilbäume statt des gesamten baums auslesen, aber dedizierte teilbäume einzelner elemente ohne redundante informationen...?

nutze jede programiersprache für ihren zweck: daten mittels sql so einfach wie möglich und so komplex wie nötig auslesen und mittels php (?) nachbearbeiten.

cx
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mysqleintäge in mehreren Spalten ausgeben larabadde PHP Grundlagen 5 23.02.2009 21:05:31
Nested Sets Klasse Socrates PHP Entwicklung und Softwaredesign 26 12.02.2009 01:33:21
Nested Set nur Level weise ausgeben jasonpetra PHP für Fortgeschrittene und Experten 9 27.12.2007 13:12:55


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:06:39 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt