Формирование XML для дерева

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

Это дерево, потому у каждой записи есть свой родитель.

Как сделать так, чтобы на выходе получилось следущее:
Код:
<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();

?>
Только вот запутался и не могу осмыслить правильный алгоритм выборки. Существуют ли более рациональные способы? Дайте пару ссылок, где можно об этом почитать.
 

Jenius

Guest
Мне надо не вывести, а создать XML код.

-~{}~ 15.08.06 17:45:

Принцип один и тот же, правда алгоритм немного иной. Не получается найти правильное решение. Правильный алгоритм.
 

WP

^_^
Пилите, Шура, пилите...

Построй дерево в массив, для этого есть готовые решения, а потом выведи в каком угодно формате. В XML очень просто.
 

Jenius

Guest
Пилю.)

Можно привести пример готовых решений?
 

WP

^_^
Готовое решение хранится в библеотеке работы с деревьяви.
 

zarus

Хитрожопый макак
За 50 баксов приведу пример готового решения...
 
Сверху