Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сложный SQL запрос, ЧПУ, PHP

80K
02 марта 2012 года
Konstantos
1 / / 02.03.2012
Задача такова:
Есть ссылка вида sitename.com/category/subcat1/subcat2/subcat3/catwithpost/post.html

её расчленяет на массив с категориями, в котором:
[0] => category
[1] => subcat1
[2] => subcat2
[3] => subcat3
[4] => catwithpost

Таблица в БД выглядит так: (возможно так же менять как либо, не важно)
-categories
--cat_id
--cat_name //название на русском например
--cat_short_name //название на английском (оно в ссылке)
--cat_parent_id
--cat_tags

сейчас запрос не корректен, как вы догадались:


 
Код:
SELECT
`posts`.*,`categories`.`cat_id`,`categories`.`cat_short_name`
FROM
`categories`, `posts`
WHERE
`posts`.`post_name` = '$post_name'
AND
`categories`.`cat_id` = `posts`.`post_cat_id`
AND
 `categories`.`cat_short_name` = '$catwithpost'



Теперь самый сок! Надо построить цепочку от конца (catwithpost) до родителя, и проверить совпал ли путь.
Сейчас же выходит некрасиво, ссылка вида
sitename.com/category/subcat1/subcat2/subcat3/catwithpost/post.html
равна ссылке
sitename.com/category/catwithpost/post.html
366
02 марта 2012 года
int
668 / / 30.03.2005
Можно рекурсивно прогнать выборку
312
02 марта 2012 года
dead_star
392 / / 26.11.2006
Цитата: int
Можно рекурсивно прогнать выборку


не можно, а нужно или вводить Materialized Path

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог