Portal > Foren > PHP > PHP-Programmierung > [PHP]Navigation erstellen
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 06.06.2007, 13:47 Nach oben    #1
Benutzer
 
Registriert seit: 18.06.2006
Ort: Straubing
Beiträge: 85
Standard [PHP]Navigation erstellen

Hallo zusammen. Ich habe in einer Klasse folgende Funktion um die Navigations-Elemente aus der Datenbank abzufufen:

PHP-Code:
<?php

    
class bwEngine
    
{
        
/**
         * Create navigation tree
         *
         * @access    public
         * @return    array $navigation_array
         */
        
public function get_navigation_array()
        {
            
$navigation_array = array();

            
$sql $this->_db->query("SELECT * FROM `bero__pages` WHERE `pagelevel` = '1' ORDER BY `sort` ASC");

            while (
$row $this->_db->fetch_assoc($sql)) {
                if (
$row['expand'] != '') {
                    
$row['submenu'] = array();

                    
$sql_2 $this->_db->query("SELECT * FROM `bero__pages` WHERE `pagelevel` = '2' AND `pageid` = '"$row['ID'] ."' ORDER BY `sort` ASC");
                    while (
$row_2 $this->_db->fetch_assoc($sql_2)) {
                        
$row['submenu'][] = $row_2;
                    }
                }
                
$navigation_array[] = $row;
            }
            
$this->navigation_array $navigation_array;

            return 
$navigation_array;
        }

        
/**
         * Restilicher Code ausgeklammert
         */
    
}

?>
Wenn ich diese Funktion aufrufe sollte eigentlich ein in einem anderen Code ein Navigations-Baum erstellt werden. Aber es wird mir immer nur der erste Datensatz aus der Datenbank abgerufen und sonst kein weiterer.

Wenn ich die 2. Datensatz-Abfrage weglasse ($sql_2) dann werden alle Oberpunkte abgerufen, aber eben keine Unterpunkte.

Wo liegt hier der Fehler.

Mfg, berti
Berti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2007, 13:50 Nach oben    #2
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Der Fehler liegt darin, dass du einen Query in der Schleife um deinen ersten Query ausführst. So wird nämlich der Schleifen-Query überschrieben.
PHP-Code:
<?php
           
// Schleifen-Query
            
while ($row $this->_db->fetch_assoc($sql)) {
                if (
$row['expand'] != '') {
                    
$row['submenu'] = array();

                    
// Dein 2ter Query, der den ersten überschreibt
                    
$sql_2 $this->_db->query("SELECT * FROM `bero__pages` WHERE `pagelevel` = '2' AND `pageid` = '"$row['ID'] ."' ORDER BY `sort` ASC");
                    while (
$row_2 $this->_db->fetch_assoc($sql_2)) {
                        
$row['submenu'][] = $row_2;
                    }
?>
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2007, 14:06 Nach oben    #3
Benutzer
 
Registriert seit: 18.06.2006
Ort: Straubing
Beiträge: 85
Standard

Hi danke. Problem gelöst. Ich hab einfach eine 2. Funktion erstellt. Aber ich hab gleich das nächste Problem. Ich will das ganze in einem Smarty-templae ausgeben lassen.
Dazu verwende ich folgenden Code.
Code:
{foreach from=$navigation_array item=item}
    {$item.title}
    {foreach from=$item.submenu item=sub_item}
        {$sub_item.title}
    {/foreach}
{/foreach}
Aber irgendiwe wird auch hier die 2. Schleife nicht ausgegeben. Geht das bei Smarty nicht?
Berti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2007, 14:22 Nach oben    #4
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.204
Standard

hast du mal mittels var_dump() überprüft ob das array jett alles das enthält was es soll ?


btw:
gibt es nur eine 2-Dimensionale NAV ?
robo47 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2007, 14:44 Nach oben    #5
Benutzer
 
Registriert seit: 18.06.2006
Ort: Straubing
Beiträge: 85
Standard

jo hab ich. es enthält auch alles was es soll...
Berti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


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

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] thumbnails erstellen - kleine Funktion Jann Hendrik Tutorials 2 16.01.2008 10:38
[Anfänger!] mySQL Tabellen erstellen & lesen Tobiaz Datenbanken 5 07.01.2006 13:12
Report erstellen und ausdrucken Waldi5001 Desktop-Applikationen und Grafik 6 14.12.2005 05:23
[PHP] Wie kann ich eine Textdatei erstellen und mit Inhalt füllen? Ben Tutorials 2 06.09.2005 11:17
Java-Docs erstellen?!?! DirkHo Allgemeine Java-Programmierung 3 04.08.2004 12:07


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45