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

Форум MySQL

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

 

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

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

тема: Разворачивание дерева по щелчку?
 
 автор: Boris   (17.01.2007 в 14:16)   письмо автору
 
 

Вот нашел в поиске:
http://softtime.ru/forum/read.php?id_forum=1&id_theme=10903&page=1


id nam pid 
---------- 
1  ass   0 
2  loop  1 
3  zxx   0 
4  flip  2  


Как бы этот скрипт переделать, чтобы сначала выводились страницы с pid=0, а после щелчка на нее считывалось id и выводились страницы с pid=id.
Лучше нарисую:


ass
zxx

Щелкаю на ass:
ass
   - loop
zxx

Щелкаю на loop:
ass
   -loop
       -flip
zxx



<? 
    
include "config.php"
    function 
tree($ids) { 
    
$query "SELECT id, nam, pid FROM catalog WHERE pid = " $ids " ORDER BY id ASC"
    
$result mysql_query($query); 
    echo 
"<ul>"
    while ( 
$print mysql_fetch_array($result)) { 
    
$ide $print['id']; 
    echo 
"<li>"
    echo 
"<a href=#?id=".$ide.">".$print['nam']."</a>"
    
tree($ide); 
    } 
    echo 
"</ul>"
    } 
    
tree(00); 
?>

   
 
 автор: himic   (17.01.2007 в 14:57)   письмо автору
 
   для: Boris   (17.01.2007 в 14:16)
 

Внутри while сделай ещё один селект, но для этого должна быть ещё одна таблица или ещё одно поле
в другой таблице делай ИД для связки с корнем
а если в другом поле то там нужна метка что это не корень а ветка

   
 
 автор: Boris   (18.01.2007 в 06:58)   письмо автору
 
   для: himic   (17.01.2007 в 14:57)
 

Чего-то я не понял, какая вторая таблица?
Если можно, напините эти две таблицы, как должно быть.

Я так понимаю эта схема часто используется, как правильно должны быть написаны таблицы?

   
 
 автор: ShadowXak   (18.01.2007 в 10:05)   письмо автору
 
   для: Boris   (18.01.2007 в 06:58)
 

Попробую я обяснить по своему:

есть 2 таблицы к примеру в мускл:
1. id - индентификатор
lvl - уровень
bid - принадлежность

2. id - индентификатор
name - название уровня

могу что то напутать или пропустить, пишу с работы...

   
 
 автор: Boris   (25.01.2007 в 12:47)   письмо автору
 
   для: ShadowXak   (18.01.2007 в 10:05)
 

Ага, кажется я понимаю!
У меня есть таблица:

 id_page   name             id_parent_page         id_vetka 
-------------------------------------------------------------------------
   1          продукция              0                                1
   2         для мужиков           1                                1
   3            для баб                  1                               1
   4             сапоги                  2                                1
   5           туфельки               3                                 1
   6          о компании            0                                 2


И код, в который я никак не могу вставить нужный кусочек про id_vetka!

<? include ('config.php');
  
   
  function 
tree($ids)
   { 
    
//Делаем выборку из БД, где номер страницы-родителя равен параметру функции.
    
$query "SELECT * FROM menu WHERE id_parent_page = ".$ids." ORDER BY id_page ASC";
    
    
//Разворачиваем в массив 
    
$result mysql_query($query);
     
    echo 
"<ul>";
    
    
//Цикл, пока не исчерпается массив 
    
while ( $print mysql_fetch_array($result))
     {
      
//Выбираем сраницу с id_page,
      //выводим ее ссылку 
      
$ide $print['id_page']; 
      echo 
"<li>"
      echo 
"<a href=?id_page=".$ide.">".$print['name']."</a>";
      
      
// Если установлено значение id_page и оно РАВНО  
      
if(isset($_GET['id_page']))
       {
        
$a $_GET['id_page'];
        
$query2 "SELECT * FROM menu WHERE id_parent_page = ".$a." ORDER BY id_page ASC";
        
$result2 mysql_query($query2);
        while ( 
$print2 mysql_fetch_array($result2))
        {
         
$b $print2['id_page']; 
         echo 
"<li>"
         echo 
"<a href=?id_page=".$b.">".$print2['name']."</a>";
        }
       } 
    echo 
"</ul>"
     }
   }   
   
tree(00); 
?>


Да, я так думаю что эта программа вечно будет циклиться, т.е. я никак не увижу "готово" в левом нижнем угле браузера! Это плохо или нет?

   
Rambler's Top100
вверх

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