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

Форум PHP

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

 

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

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

тема: Помогите создать иерархию вложенности
 
 автор: Maxam   (22.04.2010 в 14:55)   письмо автору
 
 

Помогите создать иерархию вложенности.

Что-то вроде:
0: Раздел 1
2: - Подраздел 1 раздела 1
3: - Подраздел 2 раздела 1
7: -- Подподраздел 1 подраздела 2 раздела 1
8: -- Подподраздел 2 подраздела 2 раздела 1
9: -- Подподраздел 3 подраздела 2 раздела 1
4: - Подраздел 3 раздела 1
5: - Подраздел 4 раздела 1
6: - Подраздел 5 раздела 1
1: Раздел 2


Как такое реализовать?



Я думаю записывать данные так (razdely.txt):
id раздела | относиться к id | Название
0 |  | Раздел 1
2 | 0 | Подраздел 1 раздела 1
3 | 0 | Подраздел 2 раздела 1
4 | 0 | Подраздел 3 раздела 1
5 | 0 | Подраздел 4 раздела 1
6 | 0 | Подраздел 5 раздела 1
7 | 3 | Подподраздел 1 подраздела 2 раздела 1
8 | 3 | Подподраздел 2 подраздела 2 раздела 1
9 | 3 | Подподраздел 3 подраздела 2 раздела 1

  Ответить  
 
 автор: Maxam   (22.04.2010 в 14:56)   письмо автору
 
   для: Maxam   (22.04.2010 в 14:55)
 

Только не нужно предлагать:
for ( ... )
{
   for ( ... )
   {
   }
}
Это тормозит!

  Ответить  
 
 автор: Valick   (22.04.2010 в 16:02)   письмо автору
 
   для: Maxam   (22.04.2010 в 14:56)
 

это вообще что?
если не собираетесь работать с базой, то лучшая иерархия это папки и файлы...

  Ответить  
 
 автор: bab-nike   (22.04.2010 в 16:29)   письмо автору
 
   для: Maxam   (22.04.2010 в 14:55)
 

вот, смотрите сдесь
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=71392&page=1

  Ответить  
 
 автор: Maxam   (22.04.2010 в 18:33)   письмо автору
 
   для: bab-nike   (22.04.2010 в 16:29)
 

Помоему там варианты как раз такие, которые я попросил не предлагать, т.е. запрос к таблице базы данных осуществляется много раз.

  Ответить  
 
 автор: bab-nike   (23.04.2010 в 02:13)   письмо автору
 
   для: Maxam   (22.04.2010 в 18:33)
 

посмотрите ответ автора, от maxfade .

  Ответить  
 
 автор: oliss   (23.04.2010 в 09:57)   письмо автору
 
   для: Maxam   (22.04.2010 в 18:33)
 

выбирайте одним запросом в массив а потом работайте с ним

  Ответить  
 
 автор: Maxam   (23.04.2010 в 21:57)   письмо автору
 
   для: oliss   (23.04.2010 в 09:57)
 

Да, именно так я и хотел!

  Ответить  
 
 автор: oliss   (24.04.2010 в 15:09)   письмо автору
 
   для: Maxam   (23.04.2010 в 21:57)
 

структуру таблицы давайте

  Ответить  
 
 автор: Ури Геллер   (24.04.2010 в 15:34)   письмо автору
 
   для: oliss   (24.04.2010 в 15:09)
 

он её уже привёл вообщето ид, ид родителя, название.

[поправлено модератором]

  Ответить  
 
 автор: oliss   (24.04.2010 в 19:56)   письмо автору
 
   для: Ури Геллер   (24.04.2010 в 15:34)
 

Это вам, кажется ,что он привёл ,а на самом деле нет структура делается через CREATE TABLE

  Ответить  
 
 автор: mihdan   (23.04.2010 в 13:53)   письмо автору
 
   для: Maxam   (22.04.2010 в 14:55)
 

Рекурсия вас не устраивает?

  Ответить  
 
 автор: Ури Геллер   (24.04.2010 в 14:28)   письмо автору
 
   для: Maxam   (22.04.2010 в 14:55)
 

test.php

<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

include "TreeItems.php";

// Корневой элемент всегда должен быть первым.
// +-------------------------+
// | ID     | PID    | DATA  |
// +-------------------------+
$items = array(
    array(
0NULL"Корень"),
    array(
10"Заголовок 1"),
    array(
20"Заголовок 2"),
    array(
32"Заголовок 2.1"),
    array(
41"Заголовок 1.1"),
    array(
50"Заголовок 3"),
    array(
64"Заголовок 1.1.1"),
);

echo 
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n";
echo 
"<html>\n<head><title>Тест</title>\n<meta http-enquiv=\"Content-type\" content=\"text/html; charset=utf-8;\" />\n</head>\n";
echo 
"<body>\n<div>\n";
PrintTree(getTroot($items));
echo 
"</div>\n</body>\n</html>";

?>



Выводит в браузер:


Корень
    Заголовок 1
        Заголовок 1.1
            Заголовок 1.1.1
    Заголовок 2
        Заголовок 2.1
    Заголовок 3


[поправлено модератором]

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

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