|
|
|
|
|
для: name
(14.06.2007 в 15:58)
| | . | |
|
|
|
|
|
|
|
|
для: Trianon
(14.06.2007 в 12:43)
| | Большое спасибо за помощь, Trianon!
Может Вы сталкивались с подобной задачей, знаете еще какие-нибудь скрипты (решения) и можете посоветовать как быть?
Реализовать многоуровневое меню (выплывающее), которое не будет зависить от вложенности, у меня так и не получилось. | |
|
|
|
|
|
|
|
для: name
(14.06.2007 в 12:07)
| | кроме того, опять нарушается рекусивная структура - опять с массивом работать невозможно.
Листовые элементы каталога ничем не отличаются от нелистовых. Не надо делать их какими-то особенными. | |
|
|
|
|
|
|
|
для: name
(14.06.2007 в 12:07)
| | нельзя.
Поскольку значений 0 1 2 нет в соответствующих строках таблицы. | |
|
|
|
|
|
|
|
для: name
(14.06.2007 в 12:07)
| |
<?php include 'config.inc.php';
$sql = "SELECT id, id_parent AS pid, name FROM catalog ORDER BY pid, id";
$res = mysql_query($sql) or die("Error in $sql: ". mysql_error());
$list = array();
function create_tree($list, $root)
{
$res = array();
$x = $list[$root];
foreach($x as $k => $v)
{
$res[$v] = isset($list[$k])
? create_tree($list, $k)
: array();
}
return $res;
}
if(mysql_num_rows($res))
{
while($row = mysql_fetch_assoc($res))
{
$id = $row['id'];
$pid = $row['pid'];
$name = $row['name'];
if(!isset($list[$pid]))
$list[$pid] = array($id=>$name);
else
$list[$pid][$id] = $name;
}
}
$out = create_tree($list, 0);
echo '<pre>';
print_r($out);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(14.06.2007 в 12:05)
| | а такой, можно?
$out = array('каталог' =>
array('вибродиагностика' =>
id title
array('0' => 'переносная',
'1' => 'стендовая'),
'балансировка' =>
array('2' => 'стационарная')
),
);
|
подскажите пожалуйста и если да, то как | |
|
|
|
|
|
|
|
для: name
(14.06.2007 в 11:48)
| | ну если Вы не знаете, то я - тем более :)) | |
|
|
|
|
|
|
|
для: Trianon
(14.06.2007 в 11:41)
| | Наверное, только, что будет в последних массивах - данные из бд по каждому из этих пунктов?
Посути, нужно чтобы у последних пунктов был id и title, чтобы можно было сформировать ссылку вида - <a href="index.php?action=menu&id=$id">$title</a>.
Какого вида должны быть последние вложения, я не знаю :( | |
|
|
|
|
|
|
|
для: name
(14.06.2007 в 11:26)
| | может быть так?
$out = array('каталог' =>
array('вибродиагностика' =>
array('переносная' =>array() ,
'стендовая' =>array() ),
'балансировка' =>
array('стационарная' =>array() )
)
);
|
Это было бы самым логичным. | |
|
|
|
|