Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Рекурсия=вывод подкаталога с MySQL по клику

Сообщения:  [1-6] 

 
 автор: virtus   (16.05.2006 в 18:48)   письмо автору
 
   для: namo   (16.05.2006 в 18:44)
 

NAMO - спасибо ;) только мне попроще нужно

   
 
 автор: namo   (16.05.2006 в 18:44)   письмо автору
 
   для: 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;
    }
?>

   
 
 автор: virtus   (16.05.2006 в 17:25)   письмо автору
 
   для: virtus   (16.05.2006 в 15:45)
 

УТОЧНЮ:
нужно сделать чтобы направить рекурсию по нужной ветке дерева в зависимости от $_GET["id"]

   
 
 автор: virtus   (16.05.2006 в 16:31)   письмо автору
 
   для: kaoz   (16.05.2006 в 16:22)
 

ну так там нет примера никакого... :(

   
 
 автор: kaoz   (16.05.2006 в 16:22)   письмо автору
 
   для: virtus   (16.05.2006 в 15:45)
 

в этой теме описан каталог с бесконечно вложенной структурой

http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=15065&page=1

   
 
 автор: virtus   (16.05.2006 в 15:45)   письмо автору
 
 

Помогите, поделитесь живим примером каталога... Вот как необходимо:

Пункт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;


СПАСИБО БОЛЬШЕ

   

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования