peshkov
Новичок
Помогите с деревом каталога
Есть скрипт кторый выводит дерево каталога
Проблема в следующем дерево каталога выводиться неправельно
помогите разобраться или посоветуйте что можно зделать только без javascript
SQL Dump
CREATE TABLE `menu` (
`id` int(11) NOT NULL auto_increment,
`pid` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=14 ;
--
-- Дамп данных таблицы `menu`
--
INSERT INTO `menu` VALUES (1, 0, 'qwwwq');
INSERT INTO `menu` VALUES (2, 0, 'qwwwq 2');
INSERT INTO `menu` VALUES (11, 8, 'test');
INSERT INTO `menu` VALUES (3, 0, 'qwwwq 3');
INSERT INTO `menu` VALUES (12, 11, 'test 2');
INSERT INTO `menu` VALUES (7, 1, 'eewew 1');
INSERT INTO `menu` VALUES (8, 1, 'eewew 2');
INSERT INTO `menu` VALUES (9, 1, 'eewew 3');
INSERT INTO `menu` VALUES (13, 9, 'test3');
Есть скрипт кторый выводит дерево каталога
Проблема в следующем дерево каталога выводиться неправельно
помогите разобраться или посоветуйте что можно зделать только без javascript
SQL Dump
CREATE TABLE `menu` (
`id` int(11) NOT NULL auto_increment,
`pid` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=14 ;
--
-- Дамп данных таблицы `menu`
--
INSERT INTO `menu` VALUES (1, 0, 'qwwwq');
INSERT INTO `menu` VALUES (2, 0, 'qwwwq 2');
INSERT INTO `menu` VALUES (11, 8, 'test');
INSERT INTO `menu` VALUES (3, 0, 'qwwwq 3');
INSERT INTO `menu` VALUES (12, 11, 'test 2');
INSERT INTO `menu` VALUES (7, 1, 'eewew 1');
INSERT INTO `menu` VALUES (8, 1, 'eewew 2');
INSERT INTO `menu` VALUES (9, 1, 'eewew 3');
INSERT INTO `menu` VALUES (13, 9, 'test3');
PHP:
?>Дерево каталога<br><table border="1"><?
function get_tree($parent_id=0,$nbsp=''){
//sql запрос
$i=0;
$sql = "SELECT * FROM menu WHERE pid='$parent_id'";
$ok = mysql_query($sql);
while ($row = mysql_fetch_array($ok)){
//счетчик оборотов
$i++;
//условия для первого уровня
if ($row['pid']==0){
$i=0;
}
//цикл подсчета отспупа перед вложенными уровнями
for ($x=0;$x<$i;$x++)
{
$nbsp.=' ';
}
//получение имени из базы данных
$name = $row['name'];
$level = $row['id'];
//получение длины отступа и имени
print "<TR><TD>$nbsp$name</TD></TR>";
//вывод информации полученного каталога
get_tree($row['id'],$nbsp);
}
}
get_tree();
?></table>