Суббота, 28.12.2024, 12:01
Приветствую Вас Гость

Меню сайта
Web-программирование
Категории раздела
Наш опрос
Какой браузер Вы используете?
Всего ответов: 1423
Статистика

Анализ веб сайтов
Главная » Статьи » Статьи о PHP

Построение дерева иерархии с помощью PHP / 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(
"
    \n");
    while (
    $row = mysql_fetch_array($result) ) {
    $ID1 = $row["id"];
    echo(
    "
  • \n");
    echo(
    "?ID=".$ID1."\">".$row["title"].""." \n");
    ShowTree($ID1, $lvl);
    $lvl--;
    }
    echo(
    "
\n"
);
}

}

ShowTree(0, 0);

mysql_close($link);

?>

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

Категория: Статьи о PHP | Добавил: Rammstein (08.12.2010)
Просмотров: 868 | Рейтинг: 0.0/0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Реклама
Поиск
Друзья сайта
Топ100- Веб-дизайн free counters