[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Карта сайта
Shurick
Очень хочется разобраться как реализовать подобную карту сайта имея в БД значения id и parent

есть исходники сайтов, но не могу разобраться в них, потому пока даже не знаю с чего начать

Так же эта функция край как нужна в админ панель, потому как каждый из подуровней в данный момент я выбираю с помощью дополнительной выборкой из БД



Спустя 11 минут, 57 секунд (9.06.2009 - 17:33) waldicom написал(а):
Так если есть исходники, не легче посмотреть там (потихоньку потихоньку).
Сначала посмотреть, в каком месте выводится это меню, затем посмотреть, как формируется этот массив (в какой функции). Скорее всего, если количество вложенных категорий не ограничено, то там рекурсия.

Спустя 3 минуты, 1 секунда (9.06.2009 - 17:36) Shurick написал(а):
в том то и дело что там не все так просто. методом "Потихоньку" я три дня просидел но так не понял что там и где. я ведь обращаюсь не для того что бы шустро все сделать smile.gif а для того что бы основательно разобраться.

вот уже что то
Цитата (waldicom @ 9.06.2009 - 14:33)
  Скорее всего, если количество вложенных категорий не ограничено, то там рекурсия.


ща разберемся))))

Спустя 54 минуты, 7 секунд (9.06.2009 - 18:30) glock18 написал(а):
Цитата
Скорее всего, если количество вложенных категорий не ограничено, то там рекурсия.

Именно, скорее всего smile.gif

Спустя 16 минут, 43 секунды (9.06.2009 - 18:46) waldicom написал(а):
Цитата (glock18 @ 9.06.2009 - 17:30)
Цитата
Скорее всего, если количество вложенных категорий не ограничено, то там рекурсия.

Именно, скорее всего smile.gif

Это в смысле? Какой из вариантов?
1. Дв вот именно, что "скорее всего"... Я лично так не думаю.
2. Да, я тоже так думаю

Спустя 24 минуты, 25 секунд (9.06.2009 - 19:11) Shurick написал(а):
вот

PHP
function ChildrenAll($uid) {
$map_result = "SELECT * FROM shop_groups WHERE parent=$uid";
$map_query = mysql_query($map_result);
while(
$row_map = mysql_fetch_array($map_query)) {



echo $row_map['name']."<br />";


ChildrenAll($row_map["id"]);

}
}

ChildrenAll(0, $conn);


авторский вариант

PHP
function tree($uid, $conn) {

$sql = "SELECT * FROM x_table WHERE parent_id=$uid";
$a = mysql_query($sql, $conn);

while(
$x = mysql_fetch_array($a)) {

....
 какие-то действия...

tree($x["uid"], $conn); 

}

}


что это $conn. когда я вставляю в свой код то вылазит следующее

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\mysite.ru\www\catalogue.php on line 34

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\mysite.ru\www\catalogue.php on line 35

----------------------------------------------------------------------------------------

код формирует список, но я не могу забрать данный с функции - return не проходит

По моему это не совсем универсальная функция

Спустя 27 минут, 25 секунд (9.06.2009 - 19:38) vasa_c написал(а):

Спустя 34 минуты, 43 секунды (9.06.2009 - 20:13) Shurick написал(а):
Цитата (vasa_c @ 9.06.2009 - 16:38)
http://phpclub.ru/detail/article/db_tree
http://phpclub.ru/faq/Tree

да, этот метод используется в ABO.CMS. для меня это пока слишком сложно...

Спустя 18 минут, 2 секунды (9.06.2009 - 20:31) glock18 написал(а):
Цитата (waldicom @ 9.06.2009 - 15:46)
Это в смысле? Какой из вариантов?
1. Дв вот именно, что "скорее всего"... Я лично так не думаю.
2. Да, я тоже так думаю


Ну просто я, пожалуй, по-другому бы делал. Хотя рекурсия - старый проверенный способ. Проверенный-проверенным, но я бы делал по-другому. Ближе ко 2 варианту, я действительно думаю, что рекурсия здесь наиболее популярна.

Спустя 11 дней, 21 час, 8 минут, 22 секунды (21.06.2009 - 17:39) Shurick написал(а):
вообщем сделал так

PHP
function ChildrenAll($uid) {
$map_arr = array();
$map_result "SELECT * FROM shop_groups WHERE parent=$uid";
$map_query mysql_query($map_result);
while(
$row_map mysql_fetch_array($map_query)) {
$map_arr[] = array('name' => $row_map['name'], 'id' => $row_map['id'], 'parent' => $row_map['parent'],);
}

$html "";
if(
$items['parent'] !== 0$html .= '<ul>';
foreach (
$map_arr as $items){

if(
$items['parent'] == 0)$html .= "<li id=\"page".$items['id']."\"><b><a href='#'>".$items['name']."</a></b>";
else 
$html .= "<li id=\"page".$items['id']."\"><a href='#'>".$items['name']."</a>";

$html .= ChildrenAll($items['id']);

}
if(
$items['parent'] !== 0$html .= '</ul>';
return 
$html;
}


$content ChildrenAll(0);

echo 
$content;


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

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