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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Прошу помощи с рекурсией в smarty
 
 автор: Ильдар   (11.11.2008 в 12:51)   письмо автору
 
 

Поиск и предыдущие темы не помогли никак, самостоятельно справиться не смог лишь убил уйму времени, прошу вашей помощи, срочно!!
имею php код:
<?
function Tree($parent)  
{   
    
$result mysql_query("SELECT * FROM cat_razdel WHERE par_razd = '".$parent."';") or die (mysql_error());    
    while (
$row mysql_fetch_array($result))  
        { 
        
$tree[] = $row;
        
$subtree[] = Tree($row['id_razd']);
        }
}
$smarty->assign("tree",Tree(0));
?>


как теперь мне это раскидать в smarty????

  Ответить  
 
 автор: sim5   (11.11.2008 в 13:06)   письмо автору
 
   для: Ильдар   (11.11.2008 в 12:51)
 

Предыдущие темы, это какие темы?

  Ответить  
 
 автор: Ильдар   (11.11.2008 в 13:13)   письмо автору
 
   для: sim5   (11.11.2008 в 13:06)
 

под словом предыдущие я имел ввиду темы, которые уже обсуждались
http://softtime.ru/forum/read.php?id_forum=1&id_theme=58300
http://softtime.ru/forum/read.php?id_forum=1&id_theme=54580
http://softtime.ru/forum/read.php?id_forum=1&id_theme=54481

  Ответить  
 
 автор: sim5   (11.11.2008 в 13:20)   письмо автору
 
   для: Ильдар   (11.11.2008 в 13:13)
 

Вы запрос свой отсортируйте, это раз. Уж точно есть в вашей базе у категорий ID, это два, а значит дерево получить можно в Смарти, хотя бы по предложенному в http://softtime.ru/forum/read.php?id_forum=1&id_theme=58300, а если у вас есть в массиве элементы, по которым можно идентифицировать и стили HTML элементов для дерева, то задача решаема. А что у вас не получается?

  Ответить  
 
 автор: Ильдар   (11.11.2008 в 13:24)   письмо автору
 
   для: sim5   (11.11.2008 в 13:20)
 

у меня вообще не получается. Логики работы в голове нет.

  Ответить  
 
 автор: Ильдар   (11.11.2008 в 13:26)   письмо автору
 
   для: Ильдар   (11.11.2008 в 13:24)
 

CREATE TABLE IF NOT EXISTS `cat_razdel` (
  `id_razd` int(11) NOT NULL auto_increment,
  `par_razd` int(11) NOT NULL,
  `name_razd` varchar(256) NOT NULL,
  `page_parent` int(99) NOT NULL,
  PRIMARY KEY  (`id_razd`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

--
-- Дамп данных таблицы `cat_razdel`
--

INSERT INTO `cat_razdel` (`id_razd`, `par_razd`, `name_razd`, `page_parent`) VALUES
(1, 0, 'Посуда', 7),
(2, 0, 'Постель', 7),
(3, 0, 'Ложки', 7),
(4, 0, 'Столы', 7),
(5, 3, 'Ложки стальные', 7),
(6, 3, 'Ложки деревянные', 7),
(7, 5, 'С  рисунками', 7);

это таблица разделов

  Ответить  
 
 автор: sim5   (11.11.2008 в 13:31)   письмо автору
 
   для: Ильдар   (11.11.2008 в 13:26)
 

Так вы сначала запрос свой к базе приведите к "человеческому", а потом уже в Смарти его передавайте. Он у вас вообще ничего не возвращает, а если и сделать возврат, то далеко не требуемое вернет.

  Ответить  
 
 автор: Ильдар   (12.11.2008 в 00:50)   письмо автору
 
   для: sim5   (11.11.2008 в 13:31)
 

сделал я вот так
function showTree($parent_id,$level) { 
  global $link, $list; 
  $sql = "SELECT * FROM cat_razdel WHERE par_razd = '".$parent_id."' ORDER BY id_razd ASC"; 
  //echo $sql."<br>"; 
  $result = mysql_query($sql) or die (mysql_error()); 
   
  if ($level > 0 && mysql_num_rows($result) > 0) { 
     $ulopn = "<ul>"; 
     $ulcls = "</ul>"; 
} else $ulopn = $ulcls = ""; 
  $list .= $ulopn; 
  while ($row = mysql_fetch_row($result)) { 
    $list.= "<li><A HREF=\"?id_menu=$row[0]\">".htmlspecialchars($row[2])."</A>"; 
    showTree($row[0],$level+1); 
    $list.="</li>"; 
  } 
  $list .= $ulcls; 


showTree(0,0); 
$smarty->assign('menu', $list);

но здесь ведь уже всё в кодах html

  Ответить  
 
 автор: Ильдар   (12.11.2008 в 00:50)   письмо автору
 
   для: Ильдар   (12.11.2008 в 00:50)
 

п...ц нифига понять не могу!!!!!!!!(((((((

  Ответить  
Rambler's Top100
вверх

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