Построение дерева иерархии с помощью PHP / MySQL.

www.karman.com.ua
портал о хостинге в Украине
Хостинг + Украина = Karman.com.ua

Сайт от А до Б

/

Основы сайта

/

Интересные скрипты

/

Изучаем PHP

/

Как заработать на сайте

/

Раскрутка сайта

/

CMS


Построение дерева иерархии с помощью PHP / MySQL. 

Еще по теме:
  Код PHP в html и закачка на хостинг
  Написание автоматических тестов и среда PHPUnit
  Хостинг с PHP и MySQL. Аренда VPS
  Построение системы ссылок для SEO
  Тех. поддержка Hvostingа ЛУЧШАЯ!!! Не верите? А кому ещё хостер правил PHP скрипты?!
  Где посмотреть настройки PHP.ini
  PHP и HTML
  Системы управления контентом и Построение вашего интернет-бизнеса

Рассмотрим пример построения дерева иерархии (в развернутом виде) на основе информации из базы данных с помощью PHP и MySQL. Ключ к решению данной задачи - использование рекурсивной функции. Иерархия разделов будет храниться в таблице базы данных MySQL.
Ниже на скриншоте показана данная таблица (catalogue):

id - первичный ключ таблицы
pid - id родительского раздела

Далее напишем следующий PHP-скрипт:
1. Файл dbopen.php (открывает соединение с MySQL)


$hostName = "";
$userName =
"yura";
$password = "yura";
$databaseName =
"tree";
if
(!($link=mysql_connect($hostName,$userName,$password)))
{
printf("Ошибка при соединении с MySQL
!\n");
exit();
}
if
(!mysql_select_db($databaseName, $link)) {
printf("Ошибка
базы данных !");
exit();
}

?>


2. Файл index.php (основной скрипт)



include( "dbopen.php" );



function ShowTree($ParentID, $lvl) {



global $link;

global $lvl;

$lvl++;


$sSQL = "SELECT id, title, pid FROM catalogue WHERE pid = " . $ParentID . " ORDER BY title";


$result = mysql_query($sSQL, $link);


if (mysql_num_rows($result) > 0) {

echo("

    \n");

    while ( $row = mysql_fetch_array($result) ) {

    $ID1 = $row["id"];

    echo("
  • \n");

    echo("" . $row["title"] . "" . "  \n");

    ShowTree($ID1, $lvl);

    $lvl--;
    }

    echo("
\n");

}


}


ShowTree(0, 0);



mysql_close($link);



?>



Всю работу выполняет рекурсивная функция ShowTree(). Ниже на скриншоте показан пример работы index.php:


Чтобы обсудить это в форуме, нажмите здесь.


Хостинг-источник: http://karman.com.ua, http://lib.protoplex.ru/lib_show/185.hml
  Как установить и настроить базу данных MySQL?
  Теперь, когда PHPMyAdmin поддерживает "родные" MySQL 4.1.x комментарии столбцов, что случится с моими комментариями столбцов, сохраненных в pmadb?
Есть вопросы о хостинге и о сайтах?
и получи ответ от профессионалов, которые обожают помогать людям :).
Еще по теме:
  После установки поддержки разделения в MySQL, Apache выдаёт дампы сразу после загрузки libPHP4.so. Можно ли это исправить?
  Клиентские библиотеки MySQL больше не включены в PHP 5, как это отразится на мне? Могу ли я всё так же использовать MySQL c PHP? Я пытаюсь работать с MySQL и получаю ошибки "function undefined"
  Я обновился до PHP 4 и теперь MySQl постоянно выдает "Warning: MySQL: Unable to save result set in ..." (Предупреждение: MySQL: Не могу сохранить результат в ...). Что это?
  Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?
  Где можно найти старые версии PHP?
  Я получил последнюю версию исходного кода PHP из CVS. Что нужно для компиляции его под Windows?
  Как подключить библиотеки PHP?
  Доступны ли прекомпилированные бинарники PHP?
  Где я могу взять PHP?
  Какие отличия между PHP 3 и PHP 4?
  Какая связь между версиями PHP?
  Что PHP означает?
  Права доступа к PHP-скриптам.

© СПД Праведно-Счастливый Аладдин Ярославович, 2004-2008. Все права защищены. При цитировании материалов ссылка на www.karman.com.ua обязательна. Редакция "Кармана" может не разделять точку зрения авторов статей, сообщений и ответственности за их содержание не несет.

Быстрый переход к содержимому сайта Karman.com.ua:
Новости, советы, углубленные знания, знания для новичков, законодательство, интересные скрипты, фотогалереи, отчеты, статьи о хостинге: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24
Часто задаваемые общие вопросы о хостинге, про FTP, PHPMyAdmin и MySQL, CPanel, Предустановленные скрипты, WHM, Cron, .htaccess, SSH, Паролирование директорий, О доменах, о работе с сайтом, о Раскрутке сайта, об Электронной почте, про Основы web-программирования: 0, 1
Энциклопедия основных терминов хостинга, программного обеспечения, железной стороны хостинга, технологий, электронной почты и доменов: 0, 1, 2, 3, 4, 5, 6
Сайты о хостинге (форумы, хостинг-провайдеры, студии веб-дизайна, домен-регистраторы, инструментарии в помощь вебмастеру): 0, 1, 2

Rambler's Top100