Seite 1 von 1

Funktion rekursiv aufrunfen

Verfasst: Sa 11. Sep 2004, 11:37
von bauer-martin.com
Ich hab eine Funktion welche einwandfrei funktioniert. Wenn ich diese aber rekursiv aufrufe, dann nimmt er immer nur den ersten Teil und bricht dann ganz ab. Wo liegt den der Fehler?

Code: Alles auswählen

if(!is_object($mydb)) {
    $mydb = new DB_Contenido;
}

function nav($kategorieid, $sub, $mydb) {
	$sql = "SELECT
				cat.idcat,
				cat_lang.name
			FROM
				www_cat AS cat,
				www_cat_lang AS cat_lang,
				www_cat_tree AS cat_tree
			WHERE
				cat.idcat     = cat_lang.idcat   AND
				cat.parentid  = ".$kategorieid." AND
				cat.idcat	  = cat_tree.idcat
			ORDER BY
				cat_tree.idtree;";
	$mydb->query($sql);

	while($mydb->next_record()) {
		if($mydb->f("name") == "_LEER_") {
			$content .= "<tr>
			  <td>&nbsp;</td>
			</tr>";
		} else {
			$content .= "<tr>
			  <td><a href=\"front_content.php?idcat=".$mydb->f("idcat")."\">".$mydb->f("name")."</a></td>
			</tr>";
			$content .= nav($mydb->f("idcat"),0, $mydb);
		}
	}
	
	return $content;	
}

Re: Funktion rekursiv aufrunfen

Verfasst: Sa 11. Sep 2004, 14:09
von emergence
bauer-martin.com hat geschrieben:Ich hab eine Funktion welche einwandfrei funktioniert. Wenn ich diese aber rekursiv aufrufe, dann nimmt er immer nur den ersten Teil und bricht dann ganz ab. Wo liegt den der Fehler?
du verwendest immer das selbe $mydb objekt...

Code: Alles auswählen

function nav($kategorieid, $sub) {
	$mydb = new DB_Contenido; // müsste hier initialisiert werden...
	$sql = "SELECT
				cat.idcat,
				cat_lang.name
			FROM
				www_cat AS cat,
				www_cat_lang AS cat_lang,
				www_cat_tree AS cat_tree
			WHERE
				cat.idcat     = cat_lang.idcat   AND
				cat.parentid  = ".$kategorieid." AND
				cat.idcat	  = cat_tree.idcat
			ORDER BY
				cat_tree.idtree;";
	$mydb->query($sql);

	while($mydb->next_record()) {
		if($mydb->f("name") == "_LEER_") {
			$content .= "<tr>
			  <td>&nbsp;</td>
			</tr>";
		} else {
			$content .= "<tr>
			  <td><a href="front_content.php?idcat=".$mydb->f("idcat")."">".$mydb->f("name")."</a></td>
			</tr>";
			$content .= nav($mydb->f("idcat"),0);
		}
	}
	
	return $content;	
}