Gültigkeitsbereiche von Variablen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfang
aufruf
beitrag
datensatz
eben
folgende struktur
fragen
kategorie
klasse
men
menstruktur
methode
objekt
rubrik
speicher
tabelle
tag
wieviele datenstze
zhler
bersichtlicher beitrag
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage