Hallo Leute,
hier mein Problem:
Ich hab ein Kategoriesystem entworfen das in der Tiefe nicht beschränkt ist.
Funktioniert auch soweit...hier ein Auszug aus der Datenbank:
Tabelle Kategorie
und nun möchte ich mit Hilfe dieser Daten den Code einer DropDown Box generieren die aussieht wie folgt.
hierfür benutze ich folgenden Code
das funktioniert auch soweit... nur hab ich eben die Rekursion drin
und das belastet die Datenbank.
kennt jemand eine möglichkeit wie ich mit möglichst nur einer Abfrage eine solche DropDown Box erstellen kann?
bye
Micha
hier mein Problem:
Ich hab ein Kategoriesystem entworfen das in der Tiefe nicht beschränkt ist.
Funktioniert auch soweit...hier ein Auszug aus der Datenbank:
Tabelle Kategorie
Code:
catid name parentid parentlist 1 t1 0 0 2 t2 0 0 3 subt1 1 0.1 4 subt2 2 0.2 5 subsub 3 0.1.3
PHP-Code:
<select name="katid">
<option value="0"> <i>(keine Kategorie)</i></option>
<option value="1"> >t1 </option>
<option value="3"> =>subt1 </option>
<option value="1"> ==>subsub</option>
<option value="2"> >t2 </option>
<option value="4"> =>subt1 </option>
</select>
PHP-Code:
function filebase_OutputKategorieComboListe($parentid=0)
{
$result = $db->query("SELECT * FROM kategorie
WHERE parentid = $parentid ORDER BY name");
$num_rows = $db->num_rows();
if($parentid==0)
{
$flist = '<select name="katid">';
$flist .= '<option value="0"><i>(keine Kategorie)</i></option>';
}
for($i=0;$i<$num_rows;$i++)
{
$db->row_seek($i,$result);
$db->fetch_row($row,$result);
//Line String generieren
$line = "";
$deep = substr_count($row['parentlist'],'.');
for($ii=0;$ii<$deep;$ii++)
{
$line .= "=";
}
$line .= ">";
$flist .= '<option
value="'.$row['kategorieid'].'">'.$line.$row['name'].'</option>';
//Unterkategorien (Rekursion)
$flist .= filebase_OutputKategorieComboListe($row['kategorieid']);
}//end for
if($parentid==0) $flist .= '</select>';
return($flist);
}//end function
und das belastet die Datenbank.
kennt jemand eine möglichkeit wie ich mit möglichst nur einer Abfrage eine solche DropDown Box erstellen kann?
bye
Micha
Kommentar