Jenius
Guest
Формирование XML для дерева
Существет таблица:
id title parent
1 Главная 0
2 Новости 0
3 О компании 2
4 Руководство администратора 0
5 Преимущество * - CMS 0
6 Контакты 0
7 Форум 0
8 Вопросы по управлению системы управления 7
9 Вопросы по работе компании * 7
10 Общие вопросы 7
11 Интернет - магазин 0
12 Автомобили 11
13 Отечественые 12
У каждой записи есть свой id, title и parent
Это дерево, потому у каждой записи есть свой родитель.
Как сделать так, чтобы на выходе получилось следущее:
Я написал следущее:
Только вот запутался и не могу осмыслить правильный алгоритм выборки. Существуют ли более рациональные способы? Дайте пару ссылок, где можно об этом почитать.
Существет таблица:
id title parent
1 Главная 0
2 Новости 0
3 О компании 2
4 Руководство администратора 0
5 Преимущество * - CMS 0
6 Контакты 0
7 Форум 0
8 Вопросы по управлению системы управления 7
9 Вопросы по работе компании * 7
10 Общие вопросы 7
11 Интернет - магазин 0
12 Автомобили 11
13 Отечественые 12
У каждой записи есть свой id, title и parent
Это дерево, потому у каждой записи есть свой родитель.
Как сделать так, чтобы на выходе получилось следущее:
Код:
<book title="bla">
<chapter title="Главная"></chapter>
<chapter title="Новости">
<section title="О компании"></section>
</chapter>
<chapter title="Руководство администратора"></chapter>
<chapter title="Преимущество * - CMS"></chapter>
<chapter title="Контакты"></chapter>
<chapter title="Форум">
<section title="Вопросы по управлению системы управления" />
<section title="Вопросы по работе компании *" />
<section title="Общие вопросы" />
</chapter>
<chapter title="Интернет - магазин">
<section title="Автомобили">
<section title="Отечественые">
<section title="ВАЗ"/>
<section title="Нива"/>
<section title="ОКА"/>
</section>
<section title="Зарубежные">
<section title="BMW" />
<section title="Mercedes - Benz" />
</section>
</section>
</chapter>
</book>
Я написал следущее:
Код:
<?php
require("../functions/mysql.class.php");
class xml extends mysql_class
{
function request_bd()
{
$this->sql_connect();
$this->sql_query='SELECT id, title, parent FROM content ORDER by ID';
$this->sql_execute();
$num = mysql_num_rows($this->sql_res);
$xml = '<?xml version="1.0"?><book title="bla">';
for ($i=0; $i>$num; $i++)
{
while(list($id, $title, $parent) = mysql_fetch_row($this->sql_res))
{
if($parent == 0)
{
$xml .= '<chapter title="'.$title.'"></chapter>';
}
}
}
$this->sql_close();
echo $xml."*";
}
}
$my = new xml;
$my->request_bd();
?>