|
|
|
| Вот нашел в поиске:
http://softtime.ru/forum/read.php?id_forum=1&id_theme=10903&page=1
id nam pid
----------
1 ass 0
2 loop 1
3 zxx 0
4 flip 2
|
Как бы этот скрипт переделать, чтобы сначала выводились страницы с pid=0, а после щелчка на нее считывалось id и выводились страницы с pid=id.
Лучше нарисую:
ass
zxx
Щелкаю на ass:
ass
- loop
zxx
Щелкаю на loop:
ass
-loop
-flip
zxx
|
<?
include "config.php";
function tree($ids) {
$query = "SELECT id, nam, pid FROM catalog WHERE pid = " . $ids . " ORDER BY id ASC";
$result = mysql_query($query);
echo "<ul>";
while ( $print = mysql_fetch_array($result)) {
$ide = $print['id'];
echo "<li>";
echo "<a href=#?id=".$ide.">".$print['nam']."</a>";
tree($ide);
}
echo "</ul>";
}
tree(0, 0);
?>
|
| |
|
|
|
|
|
|
|
для: Boris
(17.01.2007 в 14:16)
| | Внутри while сделай ещё один селект, но для этого должна быть ещё одна таблица или ещё одно поле
в другой таблице делай ИД для связки с корнем
а если в другом поле то там нужна метка что это не корень а ветка | |
|
|
|
|
|
|
|
для: himic
(17.01.2007 в 14:57)
| | Чего-то я не понял, какая вторая таблица?
Если можно, напините эти две таблицы, как должно быть.
Я так понимаю эта схема часто используется, как правильно должны быть написаны таблицы? | |
|
|
|
|
|
|
|
для: Boris
(18.01.2007 в 06:58)
| | Попробую я обяснить по своему:
есть 2 таблицы к примеру в мускл:
1. id - индентификатор
lvl - уровень
bid - принадлежность
2. id - индентификатор
name - название уровня
могу что то напутать или пропустить, пишу с работы... | |
|
|
|
|
|
|
|
для: ShadowXak
(18.01.2007 в 10:05)
| | Ага, кажется я понимаю!
У меня есть таблица:
id_page name id_parent_page id_vetka
-------------------------------------------------------------------------
1 продукция 0 1
2 для мужиков 1 1
3 для баб 1 1
4 сапоги 2 1
5 туфельки 3 1
6 о компании 0 2
|
И код, в который я никак не могу вставить нужный кусочек про id_vetka!
<? include ('config.php');
function tree($ids)
{
//Делаем выборку из БД, где номер страницы-родителя равен параметру функции.
$query = "SELECT * FROM menu WHERE id_parent_page = ".$ids." ORDER BY id_page ASC";
//Разворачиваем в массив
$result = mysql_query($query);
echo "<ul>";
//Цикл, пока не исчерпается массив
while ( $print = mysql_fetch_array($result))
{
//Выбираем сраницу с id_page,
//выводим ее ссылку
$ide = $print['id_page'];
echo "<li>";
echo "<a href=?id_page=".$ide.">".$print['name']."</a>";
// Если установлено значение id_page и оно РАВНО
if(isset($_GET['id_page']))
{
$a = $_GET['id_page'];
$query2 = "SELECT * FROM menu WHERE id_parent_page = ".$a." ORDER BY id_page ASC";
$result2 = mysql_query($query2);
while ( $print2 = mysql_fetch_array($result2))
{
$b = $print2['id_page'];
echo "<li>";
echo "<a href=?id_page=".$b.">".$print2['name']."</a>";
}
}
echo "</ul>";
}
}
tree(0, 0);
?>
|
Да, я так думаю что эта программа вечно будет циклиться, т.е. я никак не увижу "готово" в левом нижнем угле браузера! Это плохо или нет? | |
|
|
|