[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка данных
Ramazan
Tсть таблица старниц, каждая страница имеет бесконечную вложеность, сортируются по `order`.

Правда все они выводятся как были занесены, подряд, а надо что-бы подстранциа была под своим родителем, можно как то эт сотворить

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 . "|";

Код
// достаём родителей
$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 и т.д.

Спустя 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;
}
?>


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.