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

Форум PHP

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

 

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

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

тема: Адаптировать HTML (дерево) для PHP
 
 автор: OLi   (07.08.2011 в 00:32)   письмо автору
 
 

Доброго! Вот 3 день мучаюсь с скриптом, осталась мелочь, но эта мелочь никак не выходит у меня..
Пытаюсь адаптировать дерево на js html код http://javascript.ru/ui/tree
для вывода данных с базы. Иначе говоря обвернуть мой выводимый текст в HTML теги для получения структуры дерева.
Понимаю, что мой скрипт далеко не правильный и не читаемый, но такой написал:
Вот что имею:

<? function show_categories($id) {
    global 
$db,$count,$mass,$count_cat,$i,$cat,$pod_cat;
  
   
$e=$db->query("SELECT * FROM " PREFIX "_category where parentid='".$id."' and id <>19");
    
       
       
$mass['left'][]='<ul class="Container">'
    while ( 
$row $db->get_row($e)) {
    
$query_all $db->query("SELECT * FROM `".PREFIX."_post` where category LIKE '%".$row['id']."%'");
            
$count $db->num_rows($query_all); 
   
    if (
$i<=intval($count_cat/2)){
    
    if (
$row['parentid']!=0) {$mass['left'][]='<ul class="Container">
      <li class="Node ExpandLeaf">
        <div class="Expand"></div>
        <div class="Content_tree">'
.$row['name'].'</div>
      </li>
    </ul></li>

'
;}    else {
    
    
$mass['left'][]='<li class="Node IsRoot ExpandClosed">
    <div class="Expand"></div>
    <div class="Content_tree">'
.$row['name'].'</div>';
    
    
}
    


  }
  
  
  else { 
/*
     if ($row['parentid']!=0) {$mass['right'][]='<ul class="Container">
      <li class="Node ExpandLeaf">
        <div class="Expand"></div>
        <div class="Content_tree">'.$row['name'].'</div>
      </li>
    </ul></li>

';}    else {
    
    $mass['right'][]='<li class="Node IsRoot ExpandClosed">
    <div class="Expand"></div>
    <div class="Content_tree">'.$row['name'].'</div>';
    
    
}*/
  
}          
            
      
$i++; 
          
show_categories$row['id'] ); 
      
             
        } 
        
$mass['left'][]='</ul>';
     return 
$mass;     
}

$mass show_categories(0);

?>

<div onclick="tree_toggle(arguments[0])">
<div>Root</div>


                    <div style="float:left; height:auto; width:300px; border:1px solid #ccc"><?
                
foreach ($mass['left'] as $d) {
   echo 
$d;
}

                    
                    
?>
                    </div>
                    
                    
                    <div style="height:auto; width:300px; border:1px solid red; margin-top:250px"><? 
                    
foreach ($mass['right'] as $d) {
 
//echo $d;
}

?></div>              

                    
                    </div>

В теле функции идет проверка на "дитя", если есть - то оно обворачивается одним HTML кодом, если нет - то другим (исходя из структуры представленной на сайте выше) .
Помогите пожалуйста, думаю тут нужны спецы и "острый" глаз

  Ответить  
 
 автор: OLi   (07.08.2011 в 03:44)   письмо автору
 
   для: OLi   (07.08.2011 в 00:32)
 

Вот исходный пример дерева с 1 вложенностью:
<ul class="Container">
  <li class="Node IsRoot ExpandOpen">
    <div class="Expand"></div>
    <div class="Content">Root</div>
    <ul class="Container">
      <li class="Node ExpandLeaf">
        <div class="Expand"></div>
        <div class="Content">Item 1</div>
      </li>
    </ul>
  </li>
</ul>


Для всех "детей" обрамлял в:
<ul class="Container">
      <li class="Node ExpandLeaf">
        <div class="Expand"></div>
        <div class="Content">Item 1</div>
      </li>
    </ul>


И родителей в:
<ul class="Container">
  <li class="Node IsRoot ExpandOpen">
    <div class="Expand"></div>
    <div class="Content">Корень</div>
...

</li>
</ul>


Нуждаюсь в помощи!!

  Ответить  
 
 автор: OLi   (07.08.2011 в 17:35)   письмо автору
 
   для: OLi   (07.08.2011 в 03:44)
 

Все в отпуске что-ли? Если что-то не понятно, могу дать объяснения для скорейшего решения задачи.

  Ответить  
 
 автор: cheops   (07.08.2011 в 21:03)   письмо автору
 
   для: OLi   (07.08.2011 в 17:35)
 

Можно ускорить решение, если дадите кусочек дампа вашей базы данных, многих останавливает то, что ситуацию нельзя воспроизвести, чтобы посмотреть что получается и как поправить код.

  Ответить  
 
 автор: OLi   (07.08.2011 в 23:17)   письмо автору
 
   для: cheops   (07.08.2011 в 21:03)
 

Пожалуйста:

-- Структура таблицы `dle_category`
-- 

CREATE TABLE `dle_category` (
  `id` smallint(5) NOT NULL auto_increment,
  `parentid` smallint(5) NOT NULL default '0',
  `posi` smallint(5) NOT NULL default '1',
  `name` varchar(50) NOT NULL default '',
  `alt_name` varchar(50) NOT NULL default '',
  `icon` varchar(200) NOT NULL default '',
  `skin` varchar(50) NOT NULL default '',
  `descr` varchar(200) NOT NULL default '',
  `keywords` text NOT NULL,
  `news_sort` varchar(10) NOT NULL default '',
  `news_msort` varchar(4) NOT NULL default '',
  `news_number` smallint(5) NOT NULL default '0',
  `short_tpl` varchar(40) NOT NULL default '',
  `full_tpl` varchar(40) NOT NULL default '',
  `metatitle` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 AUTO_INCREMENT=27 ;

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

INSERT INTO `dle_category` VALUES (2, 0, 1, 'Транспорт и перевозки', 'transport-i-perevozki', '{THEME}/images/icon/01.gif', '', 'Транспорт и перевозки', 'Транспорт и перевозки', 'title', 'ASC', 0, '', '', 'Транспорт и перевозки');
INSERT INTO `dle_category` VALUES (3, 0, 1, 'Техника для дома и офиса', 'tehnika-dlya-doma-i-ofisa', '{THEME}/icon/03.gif', '', 'Техника для дома и офиса', 'Техника для дома и офиса', '', '', 0, '', '', 'Техника для дома и офиса');
INSERT INTO `dle_category` VALUES (4, 0, 1, 'Мебель и Все для комфорта', 'mebel-i-vse-dlya-komforta', '{THEME}/icon/02.gif', '', 'Мебель и Все для комфорта', 'Мебель и Все для комфорта', '', '', 0, '', '', 'Мебель и Все для комфорта');
INSERT INTO `dle_category` VALUES (5, 0, 1, 'Потребительские товары', 'potrebitelskie-tovary', '{THEME}/icon/04.gif', '', 'Потребительские товары', 'Потребительские товары', '', '', 0, '', '', 'Потребительские товары');
INSERT INTO `dle_category` VALUES (6, 0, 1, 'Продукты питания и напитки', 'produkty-pitaniya-i-napitki', '{THEME}/icon/05.gif', '', 'Продукты питания и напитки', 'Продукты питания и напитки', '', '', 0, '', '', 'Продукты питания и напитки');
INSERT INTO `dle_category` VALUES (7, 0, 1, 'Торговые центры Рынки', 'torgovye-centry-ynki', '{THEME}/icon/06.gif', '', 'Торговые центры Рынки', 'Торговые центры Рынки', '', '', 0, '', '', 'Торговые центры Рынки');
INSERT INTO `dle_category` VALUES (8, 0, 1, 'Финансовые и страховые учреждения', 'finansovye-i-strahovye-uchrezhdeniya', '{THEME}/icon/07.gif', '', 'Финансовые и страховые учреждения', 'Финансовые и страховые учреждения', '', '', 0, '', '', 'Финансовые и страховые учреждения');
.................
........................
..............................



Думаю стоит обратиться к первоисточнику на сайт, чтобы понять как обвернуть хтмл-ем...

  Ответить  
 
 автор: OLi   (08.08.2011 в 16:33)   письмо автору
 
   для: OLi   (07.08.2011 в 23:17)
 

Народ, неужели так сложно? там дело только в HTML

  Ответить  
 
 автор: OLi   (10.08.2011 в 18:06)   письмо автору
 
   для: OLi   (08.08.2011 в 16:33)
 

Вопрос решен

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

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