";
$cid=$_GET['c'];
// взято с http://www.realcoding.net/article/view/2771
// выбираем все дерево в массив
$query = "SELECT cat.cid, cat.parent, cat.name FROM cat WHERE cat.count > 0 ORDER by cat.name";
$res = mysql_query ($query);
$total=mysql_num_rows($res);
while($row = mysql_fetch_assoc($res)){
$tree[$row['parent']][$row['cid']] = $row['name'];
}
// print_r($tree); // проверяем что в массиве
function ShowTree($tree, $cid){
echo "
";
foreach($tree as $id=>$root){
if($cid!=$id)continue;
if(count($root)){
foreach($root as $key => $name){
$rescount=mysql_result(mysql_query("SELECT cat.count FROM cat WHERE cat.cid='$key' LIMIT 1"),0,0);
$cntr= "[". $rescount . "]"; // рисуем счетчик
echo "
" . preg_replace("/[0-9]/","",$name, 3) . " " . $cntr . "";
// Именно во втором цикле надо вызывать рекурсию, для чего сначала проверим, а есть ли потомки с таким родителем
if(count($tree[$key]))ShowTree($tree,$key);
}
}
}
echo "
";
}
// выводим дерево
ShowTree ($tree, $cid);
// END of Function
/*
// карта сайта
function get_data ()
{
$query = "SELECT cat.name, cat_linear.cid, cat.parent FROM cat_linear, cat WHERE cat.cid=cat_linear.cid ORDER by cat_linear.name;";
$res = mysql_query ($query);
$data = array ();
while ($row = mysql_fetch_assoc ($res))
{
$data [] = $row;
}
return $data;
}
function print_three ($data, $parent = 0)
{
static $counter = 0;
$counter += 5;
for ($i = 0; $i < count ($data); $i ++)
{
if ($data [$i] ['parent'] == $parent)
{
for ($j = 0; $j < $counter; $j ++)
echo " ";
echo "•" . preg_replace("/[0-9]/","",$data [$i] ['name'], 3) . " ";
print_three ($data, $data [$i] ['cid']);
}
}
$counter -= 5;
}
$d = get_data ();
print_three ($d);
*/
echo "