kostenloser Webspace werbefrei: lima-city


Gültigkeitsbereiche von Variablen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sebastian-online

    sebastian-online hat kostenlosen Webspace.

    Hallo,

    ich bin dabei ein CMS zu entwickeln , für die Menüstruktur gibt es tag/folgende struktur">folgende Struktur der DB-Tabelle rubrik:

    rubrik_id: Hier wird die ID gespeichert ^^ zum aufrufen

    id_text: Hier wird eine ID von DB Text gespeichert

    text_link_name: Hier wird der Linkname gespeichert

    parent_id: die ID von der Rubrik dadrüber - Anfangs-ID:0

    over_id: Hiermit erzeuge ich eine gewisse reinfolge der Links unter einer
    Kategorie- es ist die Id von dem Objekt dadrüber

    virtuel: unsichtbar /sichtbar

    menue: welches menue

    So mein Ziel ist es für ein Controlcenter den kompletten Baum auszugeben und zwar in einem Array

    Dazu habe ich eine rekursive Methode in einer Klasse rubrik. Die rekursive Funktion bekommt immer eine parent_id übergeben- Dann wird die Anzahl der Links von der Rubrik dieser parent_id gezählt. Die Datensätze werden einzelnd ausgelesen und nach der richtigen Reinfolge in das Array eingefügt. Dabei wird jedesmal geprüft -ob es bei den Links eine Rubrik darunter gibt - ist dies der Fall wird die Methode nochmal aufgerufen.

    function get_tree($parent_id,$ebene,$menue){
                    //erstmal einmal herausfinden - wieviele datensätze es gibt
    		$result_oben = $this->sql_result("SELECT * FROM rubrik WHERE
                    parent_id = '$parent_id' AND menue = '$menue';");
    
    		$zaehler = mysql_num_rows($result_oben);
    		if(!(mysql_result($result_oben,0,0)))
    			return 0;
    		$this->n2 = 0;
                    //in einer for schleife ausgeben
    		for($z = 0;$z<mysql_num_rows($result_oben);$z++){//Zaehlen wie oft das vorkommt
    			$resultat = $this->sql_result("SELECT * FROM rubrik WHERE parent_id = '$parent_id' AND over_id='$this->n2' AND menue = '$menue';");
    			$this->n2 = mysql_result($resultat,0,"rubrik_id");
    //in einem Array speichern:			  $this->tree[]=array(mysql_result($resultat,0,"rubrik_id"),$this->n2,mysql_result($resultat,0,"id_text"),mysql_result($resultat,0,"text_link_name"),mysql_result($resultat,0,"parent_id"),mysql_result($resultat,0,"over_id"),mysql_result($resultat,0,"virtuel"),$ebene);
    
    			if($this->links_darunter($this->n2)){
    				$this->get_tree($this->n2,$ebene+1,$menue);
    			}	
    		}
    		if($ebene == 0)
    			return $this->tree;
    		else
    			return;
    
    	}

    ----
    Mein Problem ist, dass vermutlich die lokalen Variablen von der aufrufenden Methode wie z.B. result_oben sich durch die aufgerufene Methode ändern. Was kann ich tun, um das zu verhindern?

    MfG Sebastian

    Beitrag geaendert: 1.6.2007 20:07:36 von sebastian-online

    Beitrag geaendert: 1.6.2007 20:09:09 von sebastian-online

    Beitrag geändert: 8.6.2007 17:31:34 von sebastian-online
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s***h

    Und was ist jetzt deine Frage?

    PS: Könntest du deinen Code in die [ code ] -Tags schreiben? das ist ein wenig übersichtlicher ;)

    Beitrag geaendert: 1.6.2007 19:58:19 von sesch
  4. Autor dieses Themas

    sebastian-online

    sebastian-online hat kostenlosen Webspace.

    Hallo,


    sesch schrieb:
    Und was ist jetzt deine Frage?

    PS: Könntest du deinen Code in die [ code ] -Tags schreiben? das ist ein wenig übersichtlicher ;)


    sorry - ich hatte eben ein kleines Problem mit Firefox - so jetzt habe ich die version bearbeitet

    MFG Sebastian
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!