php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.05.2008, 21:37  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 561
BartTheDevil89 kann nur auf Besserung hoffen
Standard Mit php und mysql baumstrukturartiges-Menü erstellen

Hallo,

ich möchte ein Menü mit Baumstruktur erstellen. Also ich meine sowas hier:

Auto
- Sub1
- Sub2
-- Untersub1
-- Untersub2
- Sub3
Meine
- Sub4
- Sub5
...

Also ein Menü mit Unterpunkten, die sich beliebig weit nach unte ziehen.
Ich hab jetzt folgende Datenbankstruktur erstellt:

id/name/top

id also die Id, name ist der Titel und top hat die id des darüberliegenden drin.

Jetzt muss ich ja das Menü irgendwie ausgeben. Allerdings hab ich dabei jetzt paar Probleme. Denn:
Ich weiß, dass ich es über eine Funktion machen muss. Also ich rufe die erste Ebene auf also die Einträge in dem top = 0 ist. Jetzt muss ich überprüfen, ob es Einträge mit top = $idDesEintragesInDerErstenEbene gibt. Wenn ja, soll er weiter nach unten vorgehen, wenn nein einfach die Funktion weiter durchlaufen.

Aber wie läuft das...wie schaffe ich es, dass er eben weiter nach unten dann geht? Ich hab jetzt schon meine Funktion mal soweit gemacht bis zu dem Schritt, wo das Problem auftritt:

PHP-Code:
function makemenu() {

$result mysql_query("SELECT * FROM menu_eintrag where top = 0");
while (
$line mysql_fetch_array($result)) {
$menureturn .= "$line[id]
"
;
$menuid $line['id'];
$numresult mysql_query("SELECT * FROM menu_eintrag where top = '$menuid'"); 
$rows mysql_num_rows($numresult);
if(
$rows != 0){
//ab hier dann weiter in die Tiefe gehen
}
}
mysql_free_result($result);
return 
$menureturn;


Kann mir jemand helfen?

Danke
BartTheDevil89 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.05.2008, 22:08  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Ich würde dir empfehlen auf folgende Methode zurückzugreifen:

http://www.klempert.de/nested_sets/

Ist zwar etwas komplizierter, aber wesentlich performanter, da du die Struktur nicht rekursiv auslesen musst.


mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline  
Alt 11.05.2008, 22:37  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo Bart,

das Thema wurde im Forum bereits n Mal behandelt. Bitte nutze die Forensuche!

Thread ist geschlossen!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 11.05.2008, 22:44  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo, Baumstrukturen stellst du am besten mit Nested Sets dar, wenn dir das zu kompliziert ist, solltest du dich mit Rekursion beschaeftigen. Das sind sich selbst aufrufende Funktionen.
Zergling-new ist offline  
 


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
[Erledigt] MySQL Datenbank erstellen, nur wie? Datenbanken 9 24.04.2012 15:04
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
[Erledigt] Collations für MySQL selber erstellen? Datenbanken 0 25.11.2005 19:01
mysql dump erstellen PHP Tipps 2005-2 4 03.09.2005 22:02
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
datenbanken in mysql erstellen??? PHP Tipps 2005-2 0 05.08.2005 19:41
Benötige Hilfe - Gästebuch erstellen (php, mysql) PHP Tipps 2005-2 20 02.07.2005 13:00
MySQL PrimaryKey von erstellen Datensatz? PHP Tipps 2005 2 09.05.2005 02:31
mysql tabelle erstellen - name variable möchtegernchegga PHP Tipps 2005 10 24.04.2005 21:01
Wieder mal MySQL Arlam !!! (datensatz erstellen) PHP Tipps 2005 4 07.03.2005 21:08
[Erledigt] MySQL User erstellen Datenbanken 2 17.02.2005 17:23
mit mysql und php eine datenbank erstellen? Großes Problem PHP Tipps 2004-2 1 16.12.2004 14:53
Erstellen spalten in MySQL tabelle Datenbanken 7 14.11.2004 19:53
Wer kann mir in PHP MYSQL eine Datenbank erstellen? Beitragsarchiv 5 29.10.2004 12:05
neue mysql tabelle per php erstellen PHP Tipps 2004 2 05.09.2004 16:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php menu erstellen, http://www.php.de/php-tipps-2008/45904-mit-php-und-mysql-baumstrukturartiges-menue-erstellen.html, mysql baumstruktur, php mysql baumstruktur, menu mit php erstellen, php baumstruktur mysql, baumstruktur php mysql, homepage menu erstellen, php mysql menü erstellen, php baumstruktur erstellen, baumstruktur erstellen, php menue erstellen, menü erstellen php, mysql php menü or navigation erstellen, mysql menu@erstellen, mysql php menu, baumstruktur php datenbank, php script baumstruktur, menü erstellen mit php, mit php menü erstellen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:22 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.