Hallo liebe Community,
irgendwie habe ich ein grundsätzliches Verständnisproblem mit der Rückgabe von rekursiven Funktionen.
Was habe ich vor?
- Baumstruktur von Kategorien in der Datenbank abgebildet (ID und Vater-ID)
- Prüfe, ob Beschreibung vorhanden ist. Wenn nein, nimm die Beschreibung der nächsthöheren Seite
- Prinzip: prüfe auf vorhandene Beschreibung, nimm alternativ die nächst höhere Beschreibung und wenn die vorhanden ist, brich die Rekusion ab.
Die Abbruchbedingung funktioniert, aber die Rückgabe ist NULL. Gebe ich den Wert mit echo aus, wird der korrekte Wert ausgegeben.
irgendwie habe ich ein grundsätzliches Verständnisproblem mit der Rückgabe von rekursiven Funktionen.
Was habe ich vor?
- Baumstruktur von Kategorien in der Datenbank abgebildet (ID und Vater-ID)
- Prüfe, ob Beschreibung vorhanden ist. Wenn nein, nimm die Beschreibung der nächsthöheren Seite
- Prinzip: prüfe auf vorhandene Beschreibung, nimm alternativ die nächst höhere Beschreibung und wenn die vorhanden ist, brich die Rekusion ab.
Die Abbruchbedingung funktioniert, aber die Rückgabe ist NULL. Gebe ich den Wert mit echo aus, wird der korrekte Wert ausgegeben.
PHP-Code:
function getCatDescriptionForProd($ref_id) {
# Übergeordnete Kategorie auslesen
$query = "SELECT * FROM kategorie WHERE cat_id = '$ref_id' LIMIT 1";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
$row = mysql_fetch_assoc($result);
if ($row['beschreibung'] != '') {
return $row['beschreibung']; // <-- Warum gibt er an dieser Stelle NULL aus?
} else {
getCatDescriptionForProd($row['ref_id']);
}
# Wenn kein Datensatz gefunden wird (bsp. bei Root-Seite)
} else {
return FALSE;
}
}
Kommentar