Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2012, 22:16   #1
Abuhamed
Форумчанин
 
Аватар для Abuhamed
 
Регистрация: 27.01.2010
Сообщений: 330
По умолчанию Список страниц

Делаю мини движок и дошел до создания страниц. Вопрос в следующем. Хочется что бы при создании страниц выкладывало дерево из существующих страниц такого вида:

Цитата:
Главная
-Продукция
--Сигареты
--Пиво
---Детское
---Взрослое
--Мыло
-Контакты
-О нас
--О персонале
Как красиво оформить в базе и сделать всё одним запросом к БД?!
Abuhamed вне форума Ответить с цитированием
Старый 03.04.2012, 23:15   #2
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Да применяйте логику!
Дерево!
Цитата:
[1][0]Главная
[2][1]Продукция
[3][2]Сигареты
[4][2]Пиво
[5][4]Детское
[6][4]Взрослое
Идея ясна?
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 03.04.2012, 23:22   #3
Abuhamed
Форумчанин
 
Аватар для Abuhamed
 
Регистрация: 27.01.2010
Сообщений: 330
По умолчанию

Ёптить! Запрос мне нужен! У меня и так в базе есть |id|t_id|

t_id - ид страницы к которой относится подстраница. Оно в таком виде лежит, запрос к mysql проблема!
Abuhamed вне форума Ответить с цитированием
Старый 03.04.2012, 23:23   #4
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Для формирования:
PHP код:
function gettree($query$id) {
while(
$row mysql_fetch_array($query)) {
 if(
$row['id']==$id) {
  echo 
$row['name'];
  if(
$id != -1) {
    
gettree($query$row['nextid']);
  }
 }
}

не уверен, что работает
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 04.04.2012, 01:17   #5
Abuhamed
Форумчанин
 
Аватар для Abuhamed
 
Регистрация: 27.01.2010
Сообщений: 330
По умолчанию

id - id страницы
pid - ид страницы к которой относится данная страница

PHP код:
<?php
  
function view_tree() {
    
$query mysql_query("SELECT id,pid,name,num FROM pages") or die("Извините, произошла ошибка");
    while (
$row mysql_fetch_row($query)) {
      if (
$row[1] == '0') {
        
$one_lvl[] = array ($row[0], $row[1], $row[2], $row[3]);
      } else {
        
$next_lvl[] = array ($row[0], $row[1], $row[2], $row[3]);
      }
    }
    foreach (
$one_lvl as $key){
      print 
'-<a href="?'.$key[0].'">'.$key[2].'</a><br>'//1st level
    
view_tree_next_level($key[0], $next_lvl);
    }
  }


  function 
view_tree_next_level($family$next_lvl) {
    foreach (
$next_lvl as $key) {
      if (
$key[1]==$family) {
        
$num "";
        for(
$c=1;$c<=$key[3];$c++){
            
$num .="-";
        }
        print 
''.$num.'<a href="?'.$key[0].'">'.$key[2].'</a><br>'//next levels
        
view_tree_next_level($key[0], $next_lvl);
      }
    }
  }
  
view_tree();
?>
Abuhamed вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список с заглавным звеном, из текстового файла получить список из записей и по нему уже сделать задание Zigfried Помощь студентам 2 04.10.2010 20:29
связать список строк и список целых чисел lirikoff Помощь студентам 5 31.08.2010 13:23
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43