hallo kann mir jemand helfen ich benötige eine rekursive funktion in der aus einer datenbank alle darüberliegenden und alle darunterliegenden einträge ausgelesen werden. Kann mir vielleicht jemand ein beispiel dafür posten da ich im moment wirklich ratlos bin.
rekursive funktion datenbankabfrage
Einklappen
X
-
-
ich kapier schon die rekursive funktion ich hab mal kurz damit angefangen nur irgendwie funktioniert die nicht ganz so wie ich will, überspringt level, und desweiteren soll diese ja die kinder und die eltern rausfinden:
DB: company = PK
parent = parent
PHP-Code:function select_parents($id)
{
global $DB, $parentarray, $user, $TbCompany;
$sql = $DB->query("SELECT company, parent FROM $TbCompany WHERE company = $id");
$rows = @$DB->num_rows($sql);
if ($rows > 0)
{
while ($parent[$result] = $DB->fetch_array($sql))
{
if (!in_array($parent[$result]["company"], $parentarray))
{
$parentarray[] = $parent[$result]["company"];
}
select_parents($parent[$result]["parent"]);
}
}
}
Zuletzt geändert von Blutgraf; 15.11.2004, 09:48.Unix Rulez
Kommentar
-
max. 30-40.
struktur hab ich doch schon kurz erklärt.
OK nochmal:
company = Primary Key mit auto_increment
parent = company welcher dieser Wert hängt.
Ja ist für das Web. Ich hab allerdings keinen Schimmer welche andere Vorgehensweise ich denn hier wählen sollte!Unix Rulez
Kommentar
-
-
schau dir das mal an http://www.php-resource.de/forum/sho...threadid=44274 , ist zwar mssql, aber sollte kein Problem sein
Kommentar
-
wow 30-40 halte ich für etwas viel
ums einfach zu machen ich würde die abfrage aufsplitten,
d.h. einmal kinknoten und einmal elternknoten abragen. mit etwas
mehr sql know how lässt sich das bestimmt kombinieren.
dann würde ich zusehen das die ausgabe ordentlich gecacht
wird sonst bekommt deine db herzflimmern.
Kommentar
Kommentar