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 > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.01.2006, 11:49:46
Funjoy Funjoy ist offline
Anfänger
 
Registriert seit: Mar 2003
Ort: Berlin
Beiträge: 141
Funjoy eine Nachricht über ICQ schicken
Rekursive Funktion + Array

Hallo,
Ich habe ein kleines Problem bei einer rekursiven Funktion, diese Funktion dient dazu mein Menü auszugeben. Weill ich mit der Template Klasse Smarty arbeite kann ich den return wert nicht als string zurückgeben sondern als ein array und da ist dann auch das Problem.

Hier erstmal der aufbau von meiner DB=> jag_menu: klick hier !

So nun zu der Funktion:
PHP-Code:
<?php 
/* Menü Funktion
*  >> Eine Rekrusive Funktion um das Menü auszugeben.
*/
    
function menu_ausgeben($ausrichtung,$zuordnung=0,$schluessel="") {
        global 
$db,$mysql,$user_ist_angemeldet;
        static 
$box;
        
$menuquery $db->sql_normal_query("SELECT 
                                                menuid,ausrichtung,sortierung,zuordnung,titel,name,fertiges_modul,pfad_zum_modul,modul,rechte
                                            FROM
                                                "
.$mysql['prefix']."_menu
                                            WHERE
                                                ausrichtung='"
.$ausrichtung."' AND zuordnung='".$zuordnung."'
                                            ORDER BY
                                                zuordnung,sortierung ASC"
);
        
        
        while(
$menu $db->sql_fetch_object($menuquery)){
            
//> Boxen ausgeben.
            
if($menu->rechte != FALSE && $user_ist_angemeldet == TRUE) {
                
#> Wird später definiert 
            
} else if($menu->rechte == FALSE) {
                if(
$menu->titel == "ja" && $menu->fertiges_modul == "nein") {
                    
$box = array($menu->name => "");
                } elseif (
$menu->titel == "ja" && $menu->fertiges_modul == "ja") {
                    
$box = array($menu->name => array(=> "../".$menu->pfad_zum_modul));
                } elseif(
$menu->titel == "nein" && $schluessel !="") {
                    
$box[$schluessel] = array($menu->modul => $menu->name);
                } 
                
                
menu_ausgeben($ausrichtung,$menu->menuid,$menu->name);
            }
        }
        
        return 
$box;
    }
?>
So wird die Funktion ausgeführt:

PHP-Code:
<?php 
/* Menu.
*  <1> Menu für die Linke Seite ausgeben.
*/
    
$menu_links menu_ausgeben("links");
    
$smarty->assign("menu_links",$menu_links);
?>

So mein Problem ist das er mir nich alles ausgibt sondern nur ein teil!
Habe mal print_r() angewendet und da sieht es dann so aus:
Array ( [Homepage] => Array ( [2] => Server Regeln ) )

sollte aber so aussehen:
Array([Login] => Array([0] => modul/templates/login.html),[Homepage] => Array([1] => Startseite, [2] => Server Regeln))

Hoffe irgendwer sieht den fehler in meiner Funktion :)

MfG Funjoy

Ps: Ich habe auch schon anstatt static $box; global $box; versucht macht kein unterschied. Ich glaube mal ich setzt die Rekrusive Funktion Falsch.
__________________
Ich bin ein KLEINER Webmaster werde aber immer GRÖßER ;)

Geändert von Funjoy (23.01.2006 um 11:57:14 Uhr)
Mit Zitat antworten
  #2  
Alt 23.01.2006, 12:23:30
Funjoy Funjoy ist offline
Anfänger
 
Registriert seit: Mar 2003
Ort: Berlin
Beiträge: 141
Funjoy eine Nachricht über ICQ schicken
AW: Rekursive Funktion + Array

Hallo so schnell ich diesen Post auch geschrieben habe, habe ich auch die Lösung gefunden gg

Der Fehler lag einfach daran das, dass Array $box immer wieder +Übreschrieben wurde und bei den inhalt von dem Array $box ebenfalls.

Die Lösung sieht also so aus:
PHP-Code:
<?php 
/* Menü Funktion
*  >> Eine Rekrusive Funktion um das Menü auszugeben.
*/
    
function menu_ausgeben($ausrichtung,$zuordnung=0,$schluessel="") {
        global 
$db,$mysql,$user_ist_angemeldet;
        static 
$box;
        
$menuquery $db->sql_normal_query("SELECT 
                                                menuid,ausrichtung,sortierung,zuordnung,titel,name,fertiges_modul,pfad_zum_modul,modul,rechte
                                            FROM
                                                "
.$mysql['prefix']."_menu
                                            WHERE
                                                ausrichtung='"
.$ausrichtung."' AND zuordnung='".$zuordnung."'
                                            ORDER BY
                                                zuordnung,sortierung ASC"
);
        
        
        while(
$menu $db->sql_fetch_object($menuquery)){
            
//> Boxen ausgeben.
            
if($menu->rechte != FALSE && $user_ist_angemeldet == TRUE) {
                
#> Wird später definiert !!!
            
} else if($menu->rechte == FALSE) {
                if(
$menu->titel == "ja" && $menu->fertiges_modul == "nein") {
                    
$box[$menu->name] = "";
                } elseif (
$menu->titel == "ja" && $menu->fertiges_modul == "ja") {
                    
$links['0'] = "../".$menu->pfad_zum_modul;
                    
$box[$menu->name] = $links;
                } elseif(
$menu->titel == "nein" && $schluessel !="") {
                    
$links[$menu->modul] = $menu->name;
                    
$box[$schluessel] = $links;
                } 
                
                
menu_ausgeben($ausrichtung,$menu->menuid,$menu->name);
            }
        }
        
        return 
$box;
    }
?>
So das wars auch gg

MfG Funjoy

Achja Coola hilft meistens beim Denken *lol*
__________________
Ich bin ein KLEINER Webmaster werde aber immer GRÖßER ;)

Geändert von Funjoy (23.01.2006 um 12:23:51 Uhr)
Mit Zitat antworten
Antwort


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

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
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 13:36:58
Funktion die eine "Zeile" in einem Array zurückgibt? (ähnlich wie mysql_fetch_array() mad-boy PHP Grundlagen 2 01.12.2004 00:29:03
count funktion bei einem 2D Array Skar PHP Grundlagen 7 13.08.2004 14:46:59
array spuckt innerhalb einer funktion nichts aus... *soifz* loflof PHP Grundlagen 2 27.11.2003 12:49:45
rekursive funktion ( baumstruktur sortieren ) Redoc PHP für Fortgeschrittene und Experten 3 10.10.2003 14:16:53


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


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


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