|
|
|
| Помогите, поделитесь живим примером каталога... Вот как необходимо:
Пункт1
Пункт2
Пункт3
Пункт4
[i]После клика на пункт 3[/i
]Пункт1
Пункт2
Пункт3
-подпункт1
-подпункт2
Пункт4
После клика на подпункт1
Пункт1
Пункт2
Пункт3
-подпункт1
--под-подпункт1
-подпункт2
Пункт4
|
НУ И ТАК ДАЛЕЕ.. НЕ JS - только PHP
структура базы
CREATE TABLE catalog_cat (
idcat int(11) NOT NULL auto_increment,
pidcat int(11) NOT NULL default '0',
name varchar(255) NOT NULL default '',
description text NOT NULL,
PRIMARY KEY (idcat)
) ENGINE=MyISAM;
|
СПАСИБО БОЛЬШЕ | |
|
|
|
|
|
|
|
для: virtus
(16.05.2006 в 15:45)
| | в этой теме описан каталог с бесконечно вложенной структурой
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=15065&page=1 | |
|
|
|
|
|
|
|
для: kaoz
(16.05.2006 в 16:22)
| | ну так там нет примера никакого... :( | |
|
|
|
|
|
|
|
для: virtus
(16.05.2006 в 15:45)
| | УТОЧНЮ:
нужно сделать чтобы направить рекурсию по нужной ветке дерева в зависимости от $_GET["id"] | |
|
|
|
|
|
|
|
для: virtus
(16.05.2006 в 17:25)
| | Вот мое дерево :)
CREATE TABLE 'cms_pages' (
'id' int(6) NOT NULL auto_increment,
'name' varchar(255) default NULL,
'displaySubPages' int(1) NOT NULL default '0',
'public' int(1) NOT NULL default '0',
'parent' int(6) NOT NULL default '0',
'anonce' text,
'full' text,
'prior' int(1) NOT NULL default '0',
'main' int(1) NOT NULL default '0',
PRIMARY KEY ('id')
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9 ;
|
А вот функции :)
<?
function processCategories($level, $path, $sel)
{
global $cfg;
$out = array();
$cnt = 0;
$q = mysql_query("SELECT 'id', 'name', 'main' FROM '".$cfg['sql']['pref']."pages' where 'parent' = '$path[$level]' AND 'public' = '1' order by 'prior'") or die (mysql_error());
while ($row = mysql_fetch_row($q))
{
$out[$cnt][0] = $row[0];
$out[$cnt][1] = $row[1];
$out[$cnt][2] = $row[2];
$out[$cnt][3] = $level;
$cnt++;
if ($level+1<count($path) && $row[0] == $path[$level+1])
{
$sub_out = $this->processCategories($level+1,$path,$sel);
for ($j=0; $j<count($sub_out); $j++)
{
$out[] = $sub_out[$j];
$cnt++;
}
}
}
return $out;
}
function CatList($parent,$level)
{
global $cfg;
$q = mysql_query("SELECT 'id', 'name', 'public', 'prior', 'main' FROM '".$cfg['sql']['pref']."pages' WHERE 'parent' = '$parent' ORDER BY 'prior'");
$a = array();
while ($row = mysql_fetch_assoc($q))
{
$row['level'] = $level;
$a[] = $row;
$b = $this->CatList($row['id'],$level+1);
for ($j=0; $j<count($b); $j++)
{
$a[] = $b[$j];
}
}
return $a;
}
?>
|
| |
|
|
|
|
|
|
|
для: namo
(16.05.2006 в 18:44)
| | NAMO - спасибо ;) только мне попроще нужно | |
|
|
|