SEO  -   СТАТЬИ
СтатьиИнтересные скрипты → Построение дерева иерархии с помощью PHP / MySQL.

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

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

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

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


 <?php
  $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 (основной скрипт)

<?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("<UL>\n");

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

$ID1 = $row["id"];

echo("<LI>\n");

echo("<A HREF=\"" . "?ID=" . $ID1 . "\">" . $row["title"] . "</A>" . "&nbsp;&nbsp;\n");

ShowTree($ID1, $lvl);

$lvl--;
}

echo("</UL>\n");

}


}


ShowTree(0, 0);



mysql_close($link);



?>



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

Если Вы заметили какие-либо неточности или ошибки в размещенной информации, просим сообщить о них администрации. SIGMA Logistics