Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Иерархическое меню

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: Sfinks   (01.11.2013 в 09:51)   письмо автору
 
   для: Вопросик   (30.10.2013 в 13:23)
 

Правда думаете, что больше нечего делать кроме как кого-то в чем-то убеждать?
Можно включить голову и подумать самому что лучше и почему.
А если не хотите, то я за вас это делать не собираюсь.
Репетиторством не увлекаюсь.

  Ответить  
 
 автор: Вопросик   (30.10.2013 в 13:23)   письмо автору
 
   для: Sfinks   (25.10.2013 в 08:04)
 

Хотелось услышать доки, что лучше.
Одноого афиширования декларации, извините, но любому недостаточно
Хотелось бы аргументироать.
Если нет аргументов, то факт не существует.

  Ответить  
 
 автор: Sfinks   (25.10.2013 в 08:04)   письмо автору
 
   для: Вопросик   (24.10.2013 в 15:59)
 

во-первых - решения я так и не увидел, вы тоже не пишете, что решили, а по ссылке - решение готово
во-вторых - ваша структура предполагает либо обращение к БД в цикле, что всегда плохо. Либо вытаскивание в ПХП всей структуры и рекурсивный разбор данных. Что медленно.
По ссылке же представлена структура, из которой вы можете одним запросом к БД выбрать любой срез дерева: Уровень, ветку, всех родителей и т.п.

  Ответить  
 
 автор: Вопросик   (24.10.2013 в 15:59)   письмо автору
 
   для: Sfinks   (15.10.2013 в 09:45)
 

Чем эта плоха

  Ответить  
 
 автор: Вопросик   (15.10.2013 в 22:19)   письмо автору
 
   для: psychomc   (15.10.2013 в 11:47)
 

Пока не очень понял Ваш код, буду смотреть позже

  Ответить  
 
 автор: psychomc   (15.10.2013 в 11:47)   письмо автору
 
   для: Вопросик   (14.10.2013 в 19:49)
 

можете отталкивать от этого

<?php
function recursion(array $array, array &$result$key$parent_key$start 0) {
    foreach (
$array as $k=>$v) {
        if (
$v[$parent_key] === $start) {
            
$result[] = $v;
            unset(
$array[$k]);
            
recursion($array$result$key$parent_key$v[$key]);
        }
    }
}

$categories = array(
    array(
        
'id'  =>1,
        
'name'=>'category 1',
        
'pid' =>0,
    ),
    array(
        
'id'  =>2,
        
'name'=>'category 2',
        
'pid' =>0,
    ),
    array(
        
'id'  =>3,
        
'name'=>'category 3',
        
'pid' =>0,
    ),
    array(
        
'id'  =>4,
        
'name'=>'category 1.1',
        
'pid' =>1,
    ),
    array(
        
'id'  =>5,
        
'name'=>'category 1.2',
        
'pid' =>1,
    ),
    array(
        
'id'  =>6,
        
'name'=>'category 2.1',
        
'pid' =>2,
    ),
    array(
        
'id'  =>7,
        
'name'=>'category 3.1',
        
'pid' =>3,
    ),
    array(
        
'id'  =>8,
        
'name'=>'category 2.1.1',
        
'pid' =>2,
    ),
    array(
        
'id'  =>9,
        
'name'=>'category 3.1.1',
        
'pid' =>7,
    ),
);


$result = array();

recursion($categories$result'id''pid');

echo 
'<pre>';
print_r($result);
?>

  Ответить  
 
 автор: Sfinks   (15.10.2013 в 09:45)   письмо автору
 
   для: Вопросик   (14.10.2013 в 21:33)
 

Рассмотрите такую структуру хранения данных.
Она на первый взгляд достаточно сложна, но эффективна и универсальна.

  Ответить  
 
 автор: Вопросик   (14.10.2013 в 21:33)   письмо автору
 
   для: cheops   (14.10.2013 в 21:12)
 

Ни как. Тут сть выделенная (активизированная) категория и структура зависит от нее.
Это типа как http://my-shop.ru/shop/catalogue/3397/sort/a/page/1.html

\
\ косая ветвь
\
\_ Выделенная категория
|
| вертикальная ветвь
|
|
2 цикла получается.
Если выводить все корни, то 3 цикла получается

  Ответить  
 
 автор: cheops   (14.10.2013 в 21:12)   письмо автору
 
   для: Вопросик   (14.10.2013 в 10:21)
 

Лучше всего извлечь содержимое меню каталога или подкаталога в память, а потом разобрать этот список при помощи рекурсивной функции.

  Ответить  
 
 автор: Вопросик   (14.10.2013 в 20:04)   письмо автору
 
   для: mihdan   (14.10.2013 в 18:28)
 

Есть на JavaScript, а на PHP не нашел,
Только у Колисниченко "Движок для вашего сайта". Но там, что то наворочено несколько путано

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования