Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Breadcrumbs id, parent_id
Форумы портала PHP.SU » PHP » Пользовательские функции » Breadcrumbs id, parent_id

Страниц (1): [1]
 

1. DeepVarvar - 29 Апреля, 2013 - 13:46:09 - перейти к сообщению
.
Это готовое решение

Готовое решение для тех, кто задался вопросом: как вывести хлебные крошки на сайте.

Имеем:

Таблица documents, где есть 4 поля:

id, parent_id, name, alias

Это не Nested Sets, не Materialized Path.
Имеем только то что имеем.

Задача:

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

Для этого используем хранимую процедуру.
Я искал в сети примеры. Все они были монстроподобны.
Вобщем наглядевшись на всякие страсти,
решил сделать это короче, красивее и адаптивнее.
Под спойлером результат:
Спойлер (Отобразить)

Процедура принимает два аргумента:
1) ID текущего документа, до которого нужно строить крошки.
2) 1 или 0 - добавить главную страницу в начало результата или нет.

Использование предельно просто:
CODE (SQL):
скопировать код в буфер обмена
  1. CALL get_breadcrumbs(22, 1);

После фетча результатов получаем массив вида:
Спойлер (Отобразить)


З.Ы.: Для тех кто использует не mysqli - имейте ввиду, процедура возвращает не один результат, а два: саму выборку и статус успеха.
Нам нужен только первый результат.
Кажется это не будет работать на старом драйвере без i в конце, увы.
Переезжайте на mysqli*
2. esterio - 29 Апреля, 2013 - 13:51:12 - перейти к сообщению
Спасибо, как раз искал что-то наподобии.
3. DeepVarvar - 29 Апреля, 2013 - 13:55:50 - перейти к сообщению
Да - очень многие задавались таким вопросом "А можно ли так?".
Да - можно. Закатив глазки
4. armancho7777777 - 29 Апреля, 2013 - 14:23:31 - перейти к сообщению
Интересное решение.
DeepVarvar, +1 в карму Подмигивание
5. Саныч - 29 Апреля, 2013 - 15:20:46 - перейти к сообщению
DeepVarvar, +1. Теперь понятно, к чему был вопрос про процедуры))

Всегда было не понятно, а почему "хлебные крошки"?
6. DeepVarvar - 29 Апреля, 2013 - 15:22:30 - перейти к сообщению
Я без понятия почему их так называют.
7. DelphinPRO - 29 Апреля, 2013 - 16:17:34 - перейти к сообщению
wp-kama.ru пишет:
Хлебные крошки (с англ. breadcrumbs) — это элемент навигации по сайту, выглядит как путь от главной страницы до текущей, на которой находится пользователь. Более логичное название — навигационная цепочка. Хлебные крошки называются так по ироничной анологии со сказкой, в которой дети, когда их завели в лес во второй раз, не смогли найти обратную дорогу, так как на этот раз вместо маленьких камешков они оставляли за собой хлебные крошки, впоследствии склеванные лесными птицами.


wp-kama.ru/id_541/samyie-hlebnyi e-kroshki-breabcrumbs-dlya-wordp ress.html

 

Powered by ExBB FM 1.0 RC1