Правда все они выводятся как были занесены, подряд, а надо что-бы подстранциа была под своим родителем, можно как то эт сотворить
ORDER BY `pid` ADN `order` и ORDER BY `pid, `order` делал таже байда
Привер:
-- Страница 1 - родитель 0
---- Страница 2 - родитель 1
------ Страница 3 - родитель 2
------ Страница 4 - родитель 2
-------- Страница 5 - родитель 3
-------- Страница 6 - родитель 4
А нужно само собой что-бы дочернии страницы выводились снизу родителей
Голову ломаю который день помогите кто чем сможет
Спустя 3 часа, 37 минут (5.04.2008 - 01:19) qpayct написал(а):
что именно надо то??
под списком родителей соответственных детей??
дк используй для этого базу данных, две таблицы:
1. tblparents
2. tblchildrens
------------------------------
tblparents
- id
- name
- link - ссылка на страницу
- childs - только номер(колличество детей)
tblchildrens
- id
- name
- link - ссылка на страницу
- parents - список всех родителей через разделитель "|"
в tblchildrens в строку id_parents добавляешь так - id_parents . newparent . "|";
понятно?
это же простейшее построение простенького форума насколько я понимаю..
под списком родителей соответственных детей??
дк используй для этого базу данных, две таблицы:
1. tblparents
2. tblchildrens
------------------------------
tblparents
- id
- name
- link - ссылка на страницу
- childs - только номер(колличество детей)
tblchildrens
- id
- name
- link - ссылка на страницу
- parents - список всех родителей через разделитель "|"
в tblchildrens в строку id_parents добавляешь так - id_parents . newparent . "|";
Код
// достаём родителей
$parents = explode("|",id_parents)
for ($i=0; $i<count($parents); $i++)) {
echo $childs[$i] . "<br />";
}
$parents = explode("|",id_parents)
for ($i=0; $i<count($parents); $i++)) {
echo $childs[$i] . "<br />";
}
понятно?
это же простейшее построение простенького форума насколько я понимаю..
Спустя 13 часов, 8 минут, 1 секунда (5.04.2008 - 14:27) Ramazan написал(а):
НЕ двумя таблицами не соорудить, вложеность бесконечная, т.е. дочерняя страница может быть и родителем , у меня страница в тсранице и все они в одной базе разделять на две таблицы смысла нет.
Талица страниц id, parent_id и т.д.
Талица страниц id, parent_id и т.д.
Спустя 10 часов, 16 минут, 6 секунд (6.04.2008 - 00:43) evgenijj написал(а):
Код
<?php
// Получаем дерево категорий
$categories = get_ctgs_tree( 0, 0 );
echo '<h3>Дерево каталога</h3>';
foreach ( $categories as $ctg )
{
// выводим массив
// $ctg[0] - уникальный ID категории
// $ctg[1] - наименование категории
// $ctg[2] - уровень вложенности (чтобы делать отступы)
}
// Функция возвращает дерево категорий в виде массива
function get_ctgs_tree($parent, $level)
{
$query = "SELECT id_ctg, name FROM categories WHERE parent=".$parent." ORDER BY orders";
$res = mysql_query( $query ) or die (mysql_error());
$ctg = array(); // категории
while ($row = mysql_fetch_row($res))
{
// Уровень вложенности категории
$row[2] = $level;
$ctg[] = $row;
// получаем подкатегории для текущей категории
$children = get_ctgs_tree($row[0], $level+1);
// добавляем детей текущей категории в конец массива $ctg[]
for ($j=0; $j<count($children); $j++)
{
$ctg[] = $children[$j];
}
}
return $ctg;
}
?>
// Получаем дерево категорий
$categories = get_ctgs_tree( 0, 0 );
echo '<h3>Дерево каталога</h3>';
foreach ( $categories as $ctg )
{
// выводим массив
// $ctg[0] - уникальный ID категории
// $ctg[1] - наименование категории
// $ctg[2] - уровень вложенности (чтобы делать отступы)
}
// Функция возвращает дерево категорий в виде массива
function get_ctgs_tree($parent, $level)
{
$query = "SELECT id_ctg, name FROM categories WHERE parent=".$parent." ORDER BY orders";
$res = mysql_query( $query ) or die (mysql_error());
$ctg = array(); // категории
while ($row = mysql_fetch_row($res))
{
// Уровень вложенности категории
$row[2] = $level;
$ctg[] = $row;
// получаем подкатегории для текущей категории
$children = get_ctgs_tree($row[0], $level+1);
// добавляем детей текущей категории в конец массива $ctg[]
for ($j=0; $j<count($children); $j++)
{
$ctg[] = $children[$j];
}
}
return $ctg;
}
?>
_____________