[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Гибкий список
Slays
Вобщем ситуация следующая. Допустим, имеется у меня таблица БД:

id | объект | родитель |
1 | огород | 0 |
2 | теплица | 1 |
3 | огурцы | 2 |
4 | перцы | 2 |
5 | грядки | 1 |
6 | помидоры | 5 |
7 | капуста | 5 |
8 | кролики | 7 |
9 | волки | 8 |


пожалуй хватит =) Суть таблицы: есть какие угодно объекты, и некий указатель иерархии этих объектов в виде указания Id родителя (объекта из этой же таблицы). Иерархия может быть сколько угодно уровневая, нужно гибкое решение по ее отображению, например списками, 0 - указывает что объект находится вверху иерархии и не имеет родителей:

НР, в данном случае должно получиться:

<ul>огород
<li><ul>теплица
<li>огурцы</li>
<li>
перцы</li>
</ul>
<li><li>
<ul>
грядки
<li>помидоры</li>
<li><ul>
капуста
<li>
<ul>
кролики
<li>волки</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>



визуально

-огород:
-теплица:
-огурцы
-перцы

-грядки:
-помидоры
-капуста:
-кролики:
-волки



и тд, еще раз повторюсь, что вложений может быть сколько угодно и у каждого объекта указывается лишь предыдущий родитель, нужно гибкое оптимальное решение, которое адекватно обработало бы все случаи. Верхних иерархий (т.е. с родителем 0) может быть тоже сколько угодно.

Давайте думать, господа =) Я тоже в деле, естественно =)



Спустя 23 минуты, 3 секунды (31.07.2010 - 17:23) Ice написал(а):
Такое ощущение, что в таблице кой-чего не хватает. Иерархия иерархией, но вот принадлежность к какому-то родителю в одной иерархии хрен установишь: как удостовериться, что кролики - дочь капусты, а не помидоров.

Спустя 6 минут, 12 секунд (31.07.2010 - 17:30) Slays написал(а):
потому что
8 | кролики | 7 |
, а не
8 | кролики | 6 |

а 7 это капуста =)

структура таблицы не критична, если задачу можно более просто решить, используя другую структуру - тоже подойдет =)

Спустя 1 минута, 10 секунд (31.07.2010 - 17:31) Ice написал(а):
ух... протупил)))

Спустя 1 час, 11 секунд (31.07.2010 - 18:31) KaFe написал(а):
Первое что нужно сделать это определитель родителей для остальных объектов, это можно сделать если задать условие Родитель = 0.Дальше уже сложнее smile.gif Но задача решаемая, интригует smile.gif

Спустя 16 минут, 47 секунд (31.07.2010 - 18:48) Slays написал(а):
можно использовать много где, и в меню и в каталогах товаров )) По-этому и предлагаю нам всем подумать как это сделать =)

Спустя 2 часа, 46 минут, 1 секунда (31.07.2010 - 21:34) KaFe написал(а):
Slays а у тебя самого то идеи есть???

Спустя 17 минут, 25 секунд (31.07.2010 - 21:51) Slays написал(а):
целый день сижу экспериментирую, пока не выходит. Спросил не просто так, думал может кто направит в нужном направлении и общими силами эту идею добьем =)

Моск кипит уже )

Спустя 9 минут, 7 секунд (31.07.2010 - 22:00) KaFe написал(а):
Slays сегодня попытаюсь сделать, щас только алгоритм придумаю, код выложу.

Спустя 45 минут, 6 секунд (31.07.2010 - 22:45) Invis1ble написал(а):
ИМХО, правильнее было бы так:

<ul>
<li>
огород
<ul>
<li>
теплица
<ul>
<li>
огурцы
<li>перцы
</ul>
</ul>
<ul>
<li>
грядки
<ul>
<li>
помидоры
<li>капуста
<ul>
<li>
кролики
<ul>
<li>
волки
</ul>
</ul>
</ul>
</ul>
</ul>

Спустя 25 минут, 52 секунды (31.07.2010 - 23:11) Slays написал(а):
KaFe было бы хорошо, уже столько применений придумал, а решения не идут. Пробовал как-то все загонять в многомерный массив, пока не то =)

Invis1ble это да, но в данном случае не суть, подключайся к основной задаче =) user posted image

Спустя 5 минут, 53 секунды (31.07.2010 - 23:17) Invis1ble написал(а):
Slays Та я уже и так подключился smile.gif . Только пока тоже ничего на ум не приходит...

Спустя 23 минуты, 14 секунд (31.07.2010 - 23:40) KaFe написал(а):
Slays не знаю как ты думал, но у меня сразу решение вышло как только я нарисовал табличку (Если хочешь посмотреть она прикреплена к посту). Я сразу заметил очень интересную вещь, погонял свою серую жидкость и вуаля

<?
$array[] = array(1 , огород , 0);
$array[] = array(2 , теплица , 1 );
$array[] = array(3 , огурцы , 2 );
$array[] = array(4 , перцы , 2 );
$array[] = array(5 , грядки , 1 );
$array[] = array(6 , помидоры , 5 );
$array[] = array(7 , капуста , 5 );
$array[] = array(8 , кролики , 7 );
$array[] = array(9 , волки , 8 );
$array[] = array(10, горох , 2 );
$array[] = array(11, Дом , 0);
$array[] = array(12, Детская, 11);
$array[] = array(13, Игрушки, 12);

//Переделываем массив в таблицу
foreach ($array as $value )
$arr[$value[0]][$value[2]]= $value[1];
get_hierarchy($arr);

function get_hierarchy($array,$x=0, $y = 1)
{
echo "\n".'<ul>'."\n";
for ($y; $y <= count($array); $y++)
{
if ($array[$y][$x])
{
echo '<li>';
echo $array[$y][$x];
if ($array[($y+1)][$y]) get_hierarchy($array,$y,1);
echo '</li>'."\n";
}
}

echo '</ul>'."\n";
}
?>


smile.gif

Спустя 16 минут, 15 секунд (31.07.2010 - 23:57) Invis1ble написал(а):
KaFe Сильно..

Спустя 10 минут, 14 секунд (1.08.2010 - 00:07) KaFe написал(а):
Цитата (Invis1ble @ 31.07.2010 - 20:57)
KaFe Сильно..
К чему это ты??? smile.gif

Спустя 2 минуты, 55 секунд (1.08.2010 - 00:10) Slays написал(а):
KaFe, спасибо большое за проявленный интерес и помощь, да не смог я додумать, признаю =) В голове один винегрет, сам в ближайшее время врятли бы сделал.

user posted image

Спустя 37 секунд (1.08.2010 - 00:10) Invis1ble написал(а):
KaFe да так, мысли вслух... Просто тоже ломал голову, а ты все так технично разрулил

Спустя 6 минут, 19 секунд (1.08.2010 - 00:17) KaFe написал(а):
Ну это же я cool.gif Да и в принципе, мне данный код тоже нужен будет в ближайшее время, так что я старался на благо себя родимого laugh.gif

Спустя 12 часов, 1 минута, 32 секунды (1.08.2010 - 12:18) Slays написал(а):
наткнулся на проблему, если добавить пункт, например так

$array[] = array(1 , огород , 0);
$array[] = array(2 , теплица , 1 );
$array[] = array(3 , огурцы , 2 );
$array[] = array(4 , перцы , 2 );
$array[] = array(5 , грядки , 1 );
$array[] = array(6 , помидоры , 5 );
$array[] = array(7 , капуста , 5 );
$array[] = array(8 , кролики , 7 );
$array[] = array(9 , волки , 8 );
$array[] = array(10, горох , 2 );
$array[] = array(11, Дом , 0);
$array[] = array(12, Детская, 11);
$array[] = array(13, Игрушки, 12);
$array[] = array(14, чили, 4);


перестает работать =) Возможно перед выводом нужно производить еще какую-то сортировку

Спустя 51 минута, 20 секунд (1.08.2010 - 13:10) KaFe написал(а):

<?php
foreach ($array as $value )
$arr[$value[0]][$value[2]]= $value[1];

get_hierarchy($arr);

function get_hierarchy($array,$x=0)
{
echo "\n".'<ul>'."\n";
for ($y = 1 ; $y <= count($array); $y++)
{
if ($array[$y][$x])
{
echo '<li>';
echo $array[$y][$x];
get_hierarchy($array,$y);
echo '</li>'."\n";
}
}

echo '</ul>'."\n";
}
?>

А так wink.gif

Спустя 3 минуты, 58 секунд (1.08.2010 - 13:14) Slays написал(а):
а вот так уже гибко, то что надо =)
Только $y в таком случае в функцию уже не нужно передавать )

Спустя 2 минуты, 21 секунда (1.08.2010 - 13:16) KaFe написал(а):
Slays понял хоть что изменилось-то?

Спустя 7 минут, 54 секунды (1.08.2010 - 13:24) Slays написал(а):
конечно, в первом случае у нас функция останавливалась при несоблюденом условии if ($array[($y+1)][$y]), а теперь работает пока не кончиться массив =)

я пол кода перелопатил чтоб исправить, а оказывается так просто =) не могу я в голове алгоритмы прорабатывать, моя проблема ) свой вариант выложу если получиться, но не уверен пока

Спустя 17 минут, 40 секунд (1.08.2010 - 13:42) Ineed$ написал(а):
мда...
предлагаю сразу подумать, как при помощи таких вот вывертасов хранить :
- полный путь до выбраного каталога
- родительскую ветку
- всю ветку в которой находится каталог
и сколькими данными для этого надо будет оперировать(id, parent, level и т.п)

Спустя 8 минут, 26 секунд (1.08.2010 - 13:50) Slays написал(а):
никто не говорил, что это именно для каталогов, но применения есть, так что решение полезно. Выпадающее меню, карта сайта - что сразу приходит в голову, но мне понадобилось для более специфической задачи.

Спустя 11 минут, 2 секунды (1.08.2010 - 14:01) Ineed$ написал(а):
Цитата (Slays @ 1.08.2010 - 10:50)
применения есть, так что решение полезно

хочу посмотреть за сколько это решение с рекурсией справится с таблицей в миллион обьектов ) в соотношении с nested sets - разница будет неимоверная

Спустя 3 минуты, 39 секунд (1.08.2010 - 14:05) KaFe написал(а):
Цитата (Slays @ 1.08.2010 - 10:24)
конечно, в первом случае у нас функция останавливалась при несоблюденом условии if ($array[($y+1)][$y]), а теперь работает пока не кончиться массив =)

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

Но данный код нуждается в оптимизации, например нужно определить если у объекта дочерние объекты, если есть производить сканирование дочерних объектов, это будет очень большой прирост производительности и код будет идеальным.

Спустя 8 минут, 32 секунды (1.08.2010 - 14:13) KaFe написал(а):
Цитата
хочу посмотреть за сколько это решение с рекурсией справится с таблицей в миллион обьектов ) в соотношении с nested sets - разница будет неимоверная

А я хочу посмотреть как загнутся nested sets при построении таблицы в миллион объектов с большим количеством вложений.

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

P.S: Если оптимизировать данный код то он ни чем не уступит nested sets, а может даже и превзойдет его по производительности, сейчас же даже я вижу что он очень плох, на оптимизацию, но для небольших списков это идеальное решение.

Спустя 34 минуты, 3 секунды (1.08.2010 - 14:47) Slays написал(а):
KaFe попробовал переделать, посмотри на это =)
Теперь пустых <ul> и <li> нету, что скажешь =)

foreach ($array as $value ){
$arr[$value[2]][$value[0]]= $value[1]; // во-первых поменял структура массива $arr
}

ksort($arr);
get_hierarchy($arr,count($array));


function get_hierarchy($array,$count,$x=0){
if($array[$x]){
echo '<ul>';
for($i=$x+1;$i<=$count;$i++){
if($array[$x][$i]){
echo '<li>'.$array[$x][$i];
get_hierarchy($array,$count,$i);
echo '</li>';
}
}
echo '</ul>';
}
}

Спустя 40 минут, 26 секунд (1.08.2010 - 15:28) KaFe написал(а):
Slays Плохо сделано, иерархия не строится полностью.

Спустя 15 минут, 40 секунд (1.08.2010 - 15:43) Slays написал(а):
например ? вроде все работает, протестировал очень много вариантов

Спустя 9 минут, 39 секунд (1.08.2010 - 15:53) KaFe написал(а):
Все я оптимизировал код, сейчас он пойдет если даже будет миллионь вариантов :D

foreach ($array as $value )
$arr[$value[2]][$value[0]]= $value[1];

get_hierarchy($arr,count($arr));

function get_hierarchy($array,$count,$x=0)
{
if ($аrray[$x])
{
echo "\n".'<ul>'."\n";
foreach ($array[$x] as $key => $value)
{
echo '<li>';
echo $аrray[$x][$key];
get_hierarchy($array,$count,$key);
echo '</li>'."\n";
}
echo '</ul>'."\n";
}
}

Сейчас учтены все особенности многомерных массивов, этот код просто идеален. Готовое решение ;)

Кстати это он сделал
Цитата

    * огород
          o теплица
                + огурцы
                + перцы
                      # Чили
                + горох
          o грядки
                + помидоры
                + капуста
                      # кролики
                            * волки
                                  o Охуетник
    * Дом
          o Детская

Спустя 4 минуты, 21 секунда (1.08.2010 - 15:57) Slays написал(а):
KaFe оптимизировал то всеж мой вариант, который также работал =)) Только да, фореч пожалуй разумней будет ) Дело сделано !!!
user posted image

Спустя 10 минут, 23 секунды (1.08.2010 - 16:08) KaFe написал(а):
Slays ну в принципе да, я оптимизировал и доработал то, что ты доработал изначально в моем коде.

Код все равно изначально придуман мной. Вот такая философия.laugh.gif

Но ты молодец,по началу я думал, что у тебя вообще соображалка не работает wink.gif Сейчас мнение изменилось, чуть - чуть biggrin.gif

Спустя 4 минуты, 7 секунд (1.08.2010 - 16:12) Slays написал(а):
KaFe я не претендую на авторство =) Все прошло как я и хотел, создавая эту тему, общими усилиями поработали и сделали, очень этому рад =) user posted image

Спустя 2 минуты, 49 секунд (1.08.2010 - 16:15) KaFe написал(а):
Все наверно тему можно закрывать, более лучший код вряд ли кто представит.
Хотя я думаю лучше все это завернуть в класс =)

Спустя 15 минут, 38 секунд (1.08.2010 - 16:30) Ineed$ написал(а):
Цитата (KaFe @ 1.08.2010 - 11:13)
Думайте головой

кто бы говорил laugh.gif

любой квалифицированый программист вам скажет, что ваш подход - ламерский. вы кодер, а не программист

Спустя 5 минут, 28 секунд (1.08.2010 - 16:36) KaFe написал(а):
Ineed$ Покажи мне с**а не ламерский подход, если ты такой умный, жду листинга!

Спустя 2 минуты, 8 секунд (1.08.2010 - 16:38) Ineed$ написал(а):
ты с**а даже при дневном свете в упор под микроскопом не можешь золото от говна отличить, ламер

если таблица правильно организована достаточно написать вот такую функцию
//  вывод всего каталога в дерево
public function build_tree()
{
if($clsdb->execute("
SELECT *
FROM `tblcats`
WHERE `id_level` > 1
ORDER BY `id_lk`"
)
)
return ($clsdb->fetchall_assoc());
else die('build_tree error');
}

Спустя 7 минут, 38 секунд (1.08.2010 - 16:46) KaFe написал(а):
Цитата (Ineed$ @ 1.08.2010 - 13:38)
ты с**а даже при дневном свете в упор под микроскопом не можешь золото от говна отличить, ламер

laugh.gif

Зря ты так, зря, ща я корешей позову они все разрулят. laugh.giflaugh.giflaugh.giflaugh.gif

Спустя 2 минуты, 59 секунд (1.08.2010 - 16:49) Ineed$ написал(а):
Цитата (KaFe @ 1.08.2010 - 13:46)
Зря ты так, зря, ща я корешей позову они все разрулят. laugh.giflaugh.giflaugh.giflaugh.gif

зови своих корешей, зови кого хочешь. ты - ламером всёодно останешься и ТОЧКА. и научись разговаривать с людьми, задрот


 ! 

М
За оскорбление пользователей бан на три дня
HardWoman




 ! 

М
А за устроенный беспорядок в карме группа "забаненых" пожизненно.
Мусор в кармах расчистил.
FatCat

Спустя 1 минута, 46 секунд (1.08.2010 - 16:50) KaFe написал(а):
Цитата (Ineed$ @ 1.08.2010 - 13:49)
зови своих корешей, зови кого хочешь. ты - ламером всёодно останешься и ТОЧКА.

Ну давай, че ты, че ты, иди сюда на. Ну ка распиши ка, а? Кто я? Обаснуй laugh.gif laugh.gif laugh.gif
Цитата
и научись разговаривать с людьми

Одно да потому, кто меня спровоцировал, как ты думаешь???
Цитата
задрот

Не правильно, плохая деточка, нельзя так дядей взрослых называть. Меня зовут Дядя Фёдор, а тебя наверно девочка Рита biggrin.gif

Прозвучит как бред, но я все еще жду листинг твоего кода, я хочу надеяться, что ты не зря начал эту перепалку.

PS: Все кореша пришли, сейчас и меня в жопу выебут sad.gif


 ! 

М
И ты сходи в бан на три дня
HardWoman

Спустя 8 минут, 12 секунд (1.08.2010 - 16:58) HardWoman написал(а):
KaFe


А вы напрасно не обратили внимание на дельное замечание.

предлагаю сразу подумать, как при помощи таких вот вывертасов хранить :
- полный путь до выбраного каталога
- родительскую ветку
- всю ветку в которой находится каталог
и сколькими данными для этого надо будет оперировать(id, parent, level и т.п)

Спустя 7 минут, 23 секунды (1.08.2010 - 17:06) Гость_Kafe написал(а):
HardWoman я понимаю эти замечание,.
Но по-моему они не нужны так как код у нас выполняет всего лишь одно действие, строит иерархию объектов, если бы нам нужно было работать с этой иерархией, то я бы принял эти замечания и доработал код в соответствии с ними. Все вы жалкие убогие людишки

Спустя 52 секунды (1.08.2010 - 17:07) HardWoman написал(а):
А я еще усложню вам задачку для интереса.

Создаем несколько теплиц, а них еще грядки и кучу перчиков и моркови на них.

А потом ищем все грядки с перчиками и все теплицы в которых они есть.

Что будете делать?

Я рассчитываю на то что вы понимаете, что веду речь о дублировании объектов

Спустя 15 минут, 24 секунды (1.08.2010 - 17:22) Slays написал(а):
зачем все усложнять, придумать что угодно можно и усложнить насколько угодно тоже не проблема, в моем же случае стояла задача с которой этот код полностью справляется.
Кому интересно, можно конечно подумать и про всевозможные усложнения и сделать второй андронный коллайдер, но данная тема создавалась не для этого, она полностью себя оправдала и исчерпала.

Спустя 10 часов, 44 минуты, 55 секунд (2.08.2010 - 04:07) qpayct написал(а):
А то я думаю куда это japanx пропал со своими вопросами, а он оказывается крутым программистом стал. о-хо-хо =) и теперь его зовут просто - Федя ))

Спустя 6 часов, 19 минут, 22 секунды (2.08.2010 - 10:26) Slays написал(а):
Создал тему, чтоб мне помогли решить поставленную задачу, только один человек действительно заинтересовался и потратил свое время, нравится вам решение или нет - это ваше дело, вы все могли предложить свой вариант вместо пустых постов и вырезок запроса непонято откуда. Не хотите, дак и не надо сюда заходить, как куча стервятников налетело чтобы тупо свое гнилое "Я" показать. Хватит задирать свой нос, спуститесь уже на землю... я на этот форум, как и многие, пришел чтобы поднабраться в чем-то опыта, где-то совместными усилиями решить какие-то задачи и посмотреть решения других людей, да и новичкам помочь мне не зазорно. Меряйтесь писюнами в своих темах, мне ваще плевать какие вы программисты, если как люди вы дерьма собачьева не стоите. Всем мир, епт.

KaFe, спасибо еще раз.

Спустя 5 часов, 14 минут, 33 секунды (2.08.2010 - 15:41) igor717 написал(а):
Хочется стать на защиту KaFe. По-моему очень не плохой вариант для меню сайта или карты сайта. Один запрос к базе все остальное - работа с массивом. Другое дело что грубить не стоит...

Спустя 4 минуты, 4 секунды (2.08.2010 - 15:45) Slays написал(а):
Guest Рыдай не рыдай, мне разницы никакой.
Кто задирал нос ? послушать кого ? Помочь пытался только один человек, остальные свысока зашли посмотрели, ухмыльнулись и ушли, ни одного дельного совета по теме, одни пустые необоснованные понты что это гавно-код. Дак покажите как надо, если умные такие, от начал и до конца. Где ошибка, в чем код плохой. Тыкать готовым решением и куском запроса выдранного непонятно откуда и для чего - это и есть совет ? Стояла чотко сформулированная в начале темы задача, задача была решена, вложений с вашей стороны не было никаких. Профессора епт. Минусовать карму с оскорблением это еще веселей, детсад олигофренов.

Спустя 9 минут, 13 секунд (2.08.2010 - 15:54) Семён написал(а):
Большой брат смотрит за тобой ph34r.gif smile.gif

Спустя 4 дня, 8 часов, 23 минуты, 12 секунд (7.08.2010 - 00:17) Uri написал(а):
я не профи. и может по чьему то мнению "кодер" но по моему пример который привел Ineed$ и есть ламерский... почита про execute. говорят в следующих версиях вряд ли будет использоваться... по этому функция как мне кажется бесполезна) если не прав, скажите. мне будет интересно узнать ваше мнение

Спустя 9 минут, 42 секунды (7.08.2010 - 00:27) Uri написал(а):
а функция KaFe мне очень помогла)) в сочитании с jquery получилось очень симпотичное древовидное меню)) с множеством вариантов вложенности)) почет и уважение Slays за поднятие этой темы и KaFe за реализацию идеи)) очень полезная вещь получилась) cool.gif

Спустя 9 часов, 10 минут, 48 секунд (7.08.2010 - 09:38) igor717 написал(а):
Uri, выложи если не жалко исходники css и jquery, а то как раз нужно а у моего максимальную вложенность не обеспечишь (надо переписывать, а переписывать лянота wink.gif )

Спустя 16 часов, 44 минуты, 32 секунды (8.08.2010 - 02:22) Ineed$ написал(а):
Если хотите достичь чего то научитесь слушать и слышать, искать и проверять. Никто и не спорит, что функция кафе работает. Проблема в другом - этот подход изначально не правильный, потому что Т.С просил рассмотреть все возможные аспекты данного вопроса со всеэ сторон. Так что из-за своей ограниченности в действии пример кафе малоэффективен о чем вам и сказал.
Яж не просто так наверно советую в таких случаях рекурсию не использовать, а идти провереным путем.
Примеры теперь давать не буду, сами разберетесь кому надо, а то вообще обнаглели. Мало того, что 0 уважения так еще и примеры им подавай.

Спустя 19 часов, 14 минут, 21 секунда (8.08.2010 - 21:37) Uri написал(а):
huh.gif

<script type="text/javascript" src="http://uri-test.ekks.ru/design/jquery/jquery.min.js"></script>
<!-- Древовидное меню -->
<script type="text/javascript" src="http://uri-test.ekks.ru/design/jquery/jquery.cookie.js"></script>
<script
type="text/javascript" src="http://uri-test.ekks.ru/design/jquery/jquery.treeview.js"></script>
<script
type="text/javascript" src="http://uri-test.ekks.ru/design/jquery/jq.js"></script>
<link
rel="stylesheet" href="http://uri-test.ekks.ru/design/jquery/jquery.treeview.css">



function get_hierarchy($array,$count,$x=0)
{
if ($array[$x])
{
echo '<ul class="treeview-black">';
foreach ($array[$x] as $key => $value)
{
echo '<li>';
echo $array[$x][$key];
get_hierarchy($array,$count,$key);
echo '</li>';
}
echo '</ul>';
}
}



echo '<ul id="navigation">
<li class="filetree" ><a href="/" class="noneline">Home</a>'
;
$categories = mysql_query("SELECT * FROM categories ");
$items = mysql_query("SELECT * FROM subcategories ");
while($category = mysql_fetch_array($categories)){
$array[] = array($category['id'], '<a href="http://'.$_SERVER['HTTP_HOST'].@$GLOBALS['p'].'/cat/'.$category['id'].'/'.$page_str.'">'.$category['category_name'].'</a>', $category['root_category']);
while($item = mysql_fetch_array($items))
{
$array[] = array($item['id'], '<a href="http://'.$_SERVER['HTTP_HOST'].@$GLOBALS['p'].'/cat/'.$item['category'].'/item/'.$item['id'].'/">'.
$item['name'].'</a>', $item['category']);
foreach ($array as $value )$arr[$value[2]][$value[0]]= $value[1];
}
foreach ($array as $value )$arr[$value[2]][$value[0]]= $value[1];
}
get_hierarchy($arr,count($array));
echo '</li></ul>';

Спустя 5 минут (8.08.2010 - 21:42) Uri написал(а):
вот в моем исполнении)) если нужен код к jquery смотрите по ссылкам в <script
а если в css то в <link... это для тех кто не знает)) приличная критика привеДствуется)). к стати... посмотреть как работает можно там же) http://uri-test.ekks.ru/
или подробно http://www.linkexchanger.su/2008/49.html

Спустя 17 минут, 43 секунды (8.08.2010 - 22:00) Uri написал(а):
Ineed$ странный ты... по мне думается, ты слишком завышенного мнения о себе... где чувство юмора? и эта принципиальность никому не нужна... умничать можно сколько угодно. только вопрос, будет ли кто нибудь слушать... само собой, есть умные и есть мудрые. только мудрыми не рождаются, это приходит со временем и с определенными усилиями.. так что вот. как то так. борись с собой. иначе, своей смертью ты не умрешь ))) )))))) <=не принимай это близко к сердцу wink.gif

Спустя 1 час, 33 минуты, 3 секунды (8.08.2010 - 23:33) igor717 написал(а):
Uri, спасибо, я уже впринцепе свой вариант переделал и у меня вертикальное - мне там надо было css подправить. Хотя, разница между горизонтальным и вертикальным, только в стиля. За плагин спасибо, я пользуюсь другим, правда откуда он уже и не вспомню (но если надо могу скинуть).

Спустя 11 минут, 40 секунд (8.08.2010 - 23:44) Uri написал(а):
igor717 давай)) авось пригодится))

Спустя 24 минуты, 40 секунд (9.08.2010 - 00:09) igor717 написал(а):
Uri, я уже сення отрубаюсь, завтра все найду и выложу...
Вот как и обещал.

Спустя 13 часов, 4 минуты, 42 секунды (9.08.2010 - 13:14) Uri написал(а):
спс)) посмотрим что там))

Спустя 16 минут, 3 секунды (9.08.2010 - 13:30) Uri написал(а):
happy.gif симпотичное меню)) только поднастроить надо))))))

Спустя 1 минута, 24 секунды (9.08.2010 - 13:31) Uri написал(а):
вот)) может кому то пригадится ))
http://shebeko.com/99-texnik-sozdaniya-men...s-i-jquery.html = 99 техник создания меню для сайта CSS и jQuery

Спустя 7 минут, 19 секунд (9.08.2010 - 13:38) igor717 написал(а):
Uri, спасибо много интересного, можно на досуге поэкспериментировать rolleyes.gif

А а насчет того понятно, что стили под себя делать надо. Просто сам "аккордеон" вроде ничего там же еще и скорость появления где-то менять можно...

Спустя 9 минут, 3 секунды (9.08.2010 - 13:47) Uri написал(а):
ага )) только есть момент) в моем меню заголовки длинные. и поручается что их в три строки сжимает)... ну да ладно)) лично для меня это не критерий для горизонтального меню)) тем более что я уже нашел то что мне нужно) сейчас надо победить боевик опера против сессий))))))))))) схватка будет многообещающей)))))))))))))

Спустя 5 минут, 27 секунд (9.08.2010 - 13:53) igor717 написал(а):
Uri, так там же ширину в css можно изменить...

Спустя 9 минут, 37 секунд (9.08.2010 - 14:03) Uri написал(а):
можно) но этого мало)) заголовки очень длинные)) типа => Запчасти к грузоподъемной технике )) человеку которому сайт делаю. на столько пофик на все это biggrin.gif а я хочу портфолио более или мение приличное biggrin.gif а там куда я собираюсь потом устраиваться дизайнеры правят баллом)) и они эстеты)) мне уже довелось с ними работать. кошмар... врагу не пожелаю blink.gif

Спустя 2 минуты, 55 секунд (9.08.2010 - 14:05) Uri написал(а):
huh.gif че то я разошелся))))

Спустя 5 минут, 18 секунд (9.08.2010 - 14:11) Basili4 написал(а):
ИМХО тред пошел вообще не в то русло и его пора закрыть

Спустя 1 минута, 30 секунд (9.08.2010 - 14:12) Uri написал(а):
Basili4 ты прав)


_____________
если помог, не скупись на карму =)
Быстрый ответ:

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