Главная » Полезные статьи » Язык PHP » Построение дерева иерархии с помощью PHP / MySQL
Распечатать статью

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

Рассмотрим пример построения дерева иерархии (в развернутом виде) на основе информации из базы данных с помощью 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:

Источник:   codingrus.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи