Hmm, this doesnt seems to work either:
Code: Select all
function list_cats($parent,$categories,$lev) {
print $lev.",";
$space = "";
for ($x = 0; $x < $lev; $x++) {
$space .= " · ";
}
$query = "SELECT * FROM `categories` WHERE `parent`='$parent' ORDER BY `title` ASC";
$result = mysql_query($query);
echo mysql_error();
if (mysql_num_rows($result) != 0){
while ($row = mysql_fetch_array($result)) {
$id = intval($row['id']);
$title = $row['title'];
$categories .= "<option value=\"$id\">$lev$space$title</option>\n";
$again = list_cats($id,$categories,$lev+1);
}
return $again;
}
else{
return $categories;
}
}
$smarty->assign('categories', list_cats(0,"",0));
This line:
prints:
Code: Select all
0,1,1,1,1,1,1,1,1,1,1,2,3,2,2,2,1,2,
$categories only outputs:
Code: Select all
<option value="6">0Advertising</option>
<option value="10">0Audio</option>
<option value="9">0Content</option>
<option value="11">0Merc</option>
<option value="8">0Our office</option>
<option value="12">0Our pages</option>
<option value="4">0Programs</option>
<option value="7">0Public</option>
<option value="23">0Russian</option>
<option value="5">0Services</option>
<option value="13">0Staff</option>
<option value="15">1 · test</option>
the categories display correctly when I print them instead of assigning value to $categories:
Code: Select all
//$categories .= "<option value=\"$id\">$lev$space$title</option>\n";
print "<option value=\"$id\">$lev$space$title</option>\n";
Here's what it prints and should have assigned to $categories:
Code: Select all
<option value="6">0Advertising</option>
<option value="10">0Audio</option>
<option value="9">0Content</option>
<option value="11">0Merc</option>
<option value="8">0Our office</option>
<option value="12">0Our pages</option>
<option value="4">0Programs</option>
<option value="7">0Public</option>
<option value="23">0Russian</option>
<option value="5">0Services</option>
<option value="14">1 · test2</option>
<option value="19">2 · · test6</option>
<option value="16">1 · test3</option>
<option value="18">1 · test5</option>
<option value="20">1 · test7</option>
<option value="13">0Staff</option>
<option value="15">1 · test</option>
I'm a bit confused here
