Автор Тема: Проблема с меню из массива  (Прочитано 7114 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lbpf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с меню из массива
« : 28 Апреля 2006, 11:09:23 »
Есть массив
a [id] [parent_id] [name_cat]  где

id - № элемента,
parent_id - № родителя
name_cat - название


Как правильно сделать цикл для перебора и вывести это дело списком
     
  •  ?

Оффлайн ferryman

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 117
  • +0/-0
  • 0
    • Просмотр профиля
    • http://svitlan.lutsk.ua/forum/
Проблема с меню из массива
« Ответ #1 : 28 Апреля 2006, 11:13:33 »
for, foreach, while -тебе поможет

Оффлайн lbpf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с меню из массива
« Ответ #2 : 28 Апреля 2006, 11:39:58 »
Ну так я и спрашиваю как правильно построить цикл :)

Оффлайн ferryman

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 117
  • +0/-0
  • 0
    • Просмотр профиля
    • http://svitlan.lutsk.ua/forum/
Проблема с меню из массива
« Ответ #3 : 28 Апреля 2006, 12:27:22 »
За тебя ЭЭЭЭлементарные вещи никто писать не будет...

Оффлайн lbpf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с меню из массива
« Ответ #4 : 28 Апреля 2006, 12:36:16 »
злобные вы какие-то :(

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с меню из массива
« Ответ #5 : 28 Апреля 2006, 15:15:12 »
Выведи свой массив при помощи функции print_r


echo \'<pre>\';
print_r($a);
echo \'</pre>\';


и тебе сразу станет понятно как построить цикл и вывести это списком...

Если будет непонятно пиши, что-нибудь придумаем! )

Оффлайн lbpf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с меню из массива
« Ответ #6 : 28 Апреля 2006, 15:42:20 »
Ну я представляю что выведется, но к сожалению на мысли это не наводит :(

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с меню из массива
« Ответ #7 : 28 Апреля 2006, 16:11:23 »
Ты сделал как я тебя сказал или ты только представил?

Оффлайн lbpf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с меню из массива
« Ответ #8 : 28 Апреля 2006, 16:15:33 »
сделал:
Array
(
   
  • => Array

        (
            [ID] => 5
            [PARENT_ID] => 0
            [NAME] => "меню 5"
            [COLOR] => 0
        )

    [1] => Array
        (
            [ID] => 15
            [PARENT_ID] => 0
            [NAME] => "меню 15"
            [COLOR] => 0
        )

    [2] => Array
        (
            [ID] => 19
            [PARENT_ID] => 0
            [NAME] => "меню 19"
            [COLOR] => 0
        )

..........................................

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с меню из массива
« Ответ #9 : 28 Апреля 2006, 16:52:06 »
А ты до какой вложенности планируешь делать?

Оффлайн lbpf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с меню из массива
« Ответ #10 : 28 Апреля 2006, 17:02:11 »
всего более тысячи категорий, ну и соответственно вложенность

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с меню из массива
« Ответ #11 : 28 Апреля 2006, 17:11:14 »
Вот читай это то, что тебе нужно http://phpclub.ru/detail/article/2002-06-03

Оффлайн lbpf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Вот нашел ответ
« Ответ #12 : 02 Мая 2006, 16:11:29 »
Адрес статьи: http://www.activex.net.ru/docs/phpdtree.shtml

Построение DHTML-дерева с информацией из БД (PHP / MySQL)

Напишем скрипт, который формировал бы DHTML-дерево на стороне клиента на основе информации из таблицы БД. Основным преимуществом построения дерева на клиенте является то, что мы один раз отдаем сформированный код, а затем без обращений к серверу работаем с построенным деревом.
За основу для построения DHTML-дерева возьмем отличный скрипт dtree с сайта  http://www.destroydrop.com/.
Иерархию разделов будем хранить в таблице базы данных MySQL.
Ниже таблица (catalogue):

# id - первичный ключ таблицы
# pid - id родительского раздела
#title - название

Далее напишем следующий PHP-скрипт:
1. Файл dbopen.php (открывает соединение с MySQL)


<?php
  $hostName 
"localhost";
  
$userName "user";
  
$password "password";
  
$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" );

$sSQL "SELECT id, title, pid FROM catalogue ORDER BY title";

$result mysql_query($sSQL$link);

?>

<html>

<head>

<link rel="stylesheet" href="css/dtree.css" type="text/css" />

<script type="text/javascript" src="js/dtree.js"></script>

</head>

<body>

<div class="dtree">

<p><a href="javascript: d.openAll();">раскрыть дерево</a> | 

<a href="javascript: d.closeAll();">свернуть дерево</a></p>

<script language="javascript" type="text/javascript">

<!--

var d = new dTree(\'d\');

d.add(0, -1 , \'Корневой раздел\');

<?php

while ( $row mysql_fetch_array($result) ) {

?>

d.add(<?php echo($row["id"]);?><?php echo($row["pid"]);?>, \'<?php echo($row["title"]);?>\',\'#\');

<?php

}

?>

document.write(d);

//-->

</script>

</div>

</body>

</html>

<?php

mysql_close
($link);

?>


Пример работы в прикрепленном файле.

Пример проекта прилагается: phpdtree.zip

Все прекрасно работает. Каталог состоит из более 1000 разделов.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Проблема с меню из массива
« Ответ #13 : 02 Мая 2006, 17:00:10 »
lbpf
...и в итоге решил клиентским скриптом. Замечательно.

При чем здесь PHP?
Тема закрыта.
LJ: Backslashed life (rss)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28