php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.12.2005, 21:20  
Gast
 
Beiträge: n/a
Standard Verschachtelte Datenbankabfrage - wie fange ich an?

Hallo habe ein Problem (Weiß noch nicht mal genauwie ich es erklären soll).

Stellt Euch folgende Datenbank (id-Feld weggelassen), vor:

Tabelle: Daten

ebene | name | elternebene
====================
40 | Gerd | NULL
40 | Maria | NULL
50 | Franz | Gerd
50 | Johann | Gerd
60 | Gabi | Franz
60 | Anna | Johann
...
...

Im entferntesten ist es eine Art Stammbaum. Gerd wäre z.B. Vorfahr von Franz und Johann, Gabi wäre ein Kind von Franz.
Es ist in meiner Tabelle nicht möglich, dass Ein Kind aus Ebene 60 ein Elternteil aus Ebene 40 (also zwei Ebenen höher) hat.

Ich möchte dies nun hirarchisch darstellen, also oben den "Stammeshöchsten" Hier einen aus Ebene 40, unter diesem direkt seine Nachkommen. Unter jedem Nachkommen den nächsten usw.

Es sollte also irgendwie so aussehen:

-> Gerd
-> Franz
-> Gabi
-> Johann
-> Anna
-> Maria

Gelingt mir das mit einer Select * from Daten - Abfrage und geschickter Sortierung des Ergebnisareys oder muss ich lauter ineinander verschachtelte Abfragen machen?

Ich stehe hier echt auf dem Schlauch und wäre für einen Ansatz sehr dankbar...
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.12.2005, 21:22  
Gast
 
Beiträge: n/a
Standard

Mist... jetzt ist die Einrückung weggefallen.... Also das Ergebnis soll so aussehen:

-> Gerd
---> Franz
-----> Gabi
---> Johann
-----> Anna
-> Maria

Ist das so verständlich?
 
Alt 27.12.2005, 10:22  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hilft dir das?
http://www.php-homepage.de/artikel/artikel13.html
(siehe "Stammbaum")

Gefunden über Google: stammbaum php
Zergling-new ist offline  
Alt 27.12.2005, 22:16  
Gast
 
Beiträge: n/a
Standard

Code:
function get_tree($who,$ebene) {
 $res=mysql_query ("select * from stammbaum where nachfahre_von=$who;");
  while ($verwandter=mysql_fetch_array($res)) {
    echo $ebene.$verwandter[name]."
";
    get_tree($verwandter[id],$ebene."");
  } 
}
Mir ist das mit dem $ebene nicht klar. Das ist doch immer "" (leer) oder wo ist der Haken. Wo kommt die Einrückung in der zweiten Stufe her?

Oder anders gesagt... was macht die Zeile
Code:
....$ebene."");
 
Alt 28.12.2005, 00:09  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Die rückt ein.
Statt $ebene."" hätte der Autor auch ++$ebene verwenden können. Er gibt wohl die "Tiefe" an. Allerings wäre die Ausgabe dann

Code:
1 Vater
2 Sohn
3 Enkelsohn
3 Enkeltochter
2 Tochter
Da ist das Einrücken mit Leerzeichen doch übersichtlicher:
Code:
Vater
  Sohn
    Enkelsohn
    Enkeltochter
  Tochter
Das kannst du aber nach Belieben anpassen.
Zergling-new ist offline  
Alt 28.12.2005, 10:30  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Letztendlich würde ich für jede Ebene eine Liste nehmen und die Einrückung mit Stylesheets vornehmen.
xabbuh ist offline  
Alt 28.12.2005, 10:49  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Klar, Inhalt und Design sollten getrennt werden, auch schon durch die PHP Funktion. War ja nur ein kopiertes Beispiel aus Google (!). Wer sucht der findet...
Zergling-new ist offline  
Alt 28.12.2005, 11:17  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Zergling
Klar, Inhalt und Design sollten getrennt werden, auch schon durch die PHP Funktion. War ja nur ein kopiertes Beispiel aus Google (!). Wer sucht der findet...
Schon klar. :-) Wollte nur darauf hingewiesen haben.
xabbuh ist offline  
Alt 29.12.2005, 11:00  
Gast
 
Beiträge: n/a
Standard

Hi... danke schonmal...
ich werde es mal probieren und mich melden wies geklappt hat. Bin nun leider gerade an einer anderen Baustelle...
 
Alt 02.02.2006, 11:09  
Gast
 
Beiträge: n/a
Standard

Zitat:
Statt $ebene."" hätte der Autor auch ++$ebene verwenden können. Er gibt wohl die "Tiefe" an. Allerings wäre die Ausgabe dann

Code:
1 Vater
2 Sohn
3 Enkelsohn
3 Enkeltochter
2 Tochter
Wie kann ich denn nun am einfachsten aufaddieren wie viele Ergebnisse ich in 1. Ebene, 2. Ebene, usw. erhalten habe (Im obigen Beispiel sollte dann stehen 1.Ebene=1; 2.Ebene=2, 3.Ebene=2)
Sollte ich hierzu für jede Ebene einen Zähler machen und mit der If-Anweisung den jeweiligen Zähler um 1 erhöhen oder gibts da was einfacheres?

Die Idee mit den Stylesheets werde ich auch gleich mal probieren. Dann kann ich das vielleicht schön "tabellarisch" darstellen.
Danke für die Hinweise....
 
 


Themen-Optionen
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
datenbankabfrage nach funktionsübergabe obi PHP Tipps 2007 9 13.04.2007 02:01
Datenbankabfrage mit variablen select-Auswahlfeldern tinchen PHP Tipps 2006 1 11.04.2006 10:40
Struktur der Datenbankabfrage tinchen PHP Tipps 2006 2 07.04.2006 13:35
problem bei distinct datenbankabfrage... Promaetheus Datenbanken 2 25.01.2006 17:28
Probleme bei Datenbankabfrage - blättern maccoder PHP Tipps 2005-2 2 23.10.2005 05:18
[Erledigt] 2 verschiedene Datum vergleichen - Datenbankabfrage Datenbanken 3 19.06.2005 10:29
datenbankabfrage faultier PHP Tipps 2005-2 10 13.06.2005 11:40
Datenbankabfrage Serverübergreifend PHP Tipps 2005 22 04.05.2005 12:42
Datenbankabfrage: Ergebnisse anzeigen PHP Tipps 2005 5 07.04.2005 10:31
Datenbankabfrage für Singlesuche ThaRider Datenbanken 6 27.03.2005 09:35
suche bestimmte Datenbankabfrage mit SUM() Datenbanken 4 21.01.2005 13:40
[Erledigt] Verschachtelte Arrays ausgeben PHP-Fortgeschrittene 2 10.12.2004 11:29
zu langsame Datenbankabfrage Datenbanken 3 09.11.2004 16:24
[Erledigt] Datenbankabfrage Datenbanken 4 30.10.2004 22:46
2 verschachtelte Divlayer und der Firefox. Tutti HTML, Usability und Barrierefreiheit 2 26.07.2004 22:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
verschachtelte datenbankabfrage, php function datenbankabfrage, verschachtelte datenbankabfragen, datenbankabfrage beispiel, php datenbankabfrage beispiel, php verschachtelte datenbank abfragen, php verschachtelte datenbank abfrage, beispiel für datenbank abfrage php, datenbankabfrage wie, php query von stammbaum datenbank, verschachtelte datenbank abfrage, php datenbank stammbaum, datenbankabfrage beispiele, php datenbank abfrage, http://www.php.de/php-tipps-2007/35207-verschachtelte-datenbankabfrage-wie-fange-ich.html, php datenbankabfrage in einer funktion, php verschachtelte datenbankabfragen, php funktion für datenbankabfrage, datenbankabfrage funktion php, php if-anweisung in datenbankabfrage

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.