![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
Как сделать вложеную страницу? Те например www.site.ru/stranica/ я выбираю так $sql = "SELECT * FROM `pages` WHERE `name_url`='stranica';"; а как сделать чтоб было www.site.ru/stranica/podstranica/ и можно было вывести в меню страница - подстраница1 - подстраница2 - подстраница3 и т д возможно до бесконечности вложений -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 2 Всего: 29 |
|
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
а можно по подробнее насчет получения тех самых данных из урла и тд
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 9 Всего: 401 |
americanets, а как у Вас эти страницы хранятся в базе? В виде популярного "id, parent_id, name_url" или как-то по-другому?
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Wolf1994 |
|
||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 2 Всего: 29 |
Не совсем понял вопрос... Я предположил что данные хранятся в виде:
Тогда, например, при запросе страницы: "page/subpage2/subsubpage1", будет браться "page/subpage2":
После чего запрос выберет:
|
||||||||
|
|||||||||
| americanets |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
Да есть id но parent_id нет, можно по подробнее о его использовании и что то не понял про
и как вывести в меню страница - подстраница1 - подстраница2 - подстраница3 вот в чем вопрос ? -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
||||
|
|||||
| skifoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 23.1.2006 Где: Россия Репутация: нет Всего: 1 |
parent_id подразумевает ID отца, то есть к какому разделу отноститься данная страница,
например у нас есть главный каталог name | id | parent_id main | 1 | 0 чтобы прикрутить к этому каталогу скажем подкаталог с название podmain1, вносим в таблицу вот такие данные podmain1 | 2 | 1 то есть пишем в parent_id, ID каталога к которому принадлежит данный каталог. |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
ага, тут понятно, а вот как получить нужные данные из урла? с одним просто pg=stranica а вот как stranica/podstranica/ и тд вопрос для меня большой
а как потом вывести все это в меню, чтоб не сортировалось по id или дате ? чтоб страница
подстраница
подстраница подстраница -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| wetlook |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 16.11.2006 Репутация: нет Всего: нет |
бeрем URI через $uri=$_SERVER['REQUEST_URI'];
Извлекаем в переменные как писал Wolf1994 через substr(); Должно получиться Это сообщение отредактировал(а) wetlook - 17.11.2006, 13:46 |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
буду прбовать, если что обращусь тк что-то мало понимаю пока
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
а можно все таки примерчик, а то никак не могу собрать все во едино если кто может помоч структурой базы и кодом PHP буду очень благодарен, заранее пасибо
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 2 Всего: 29 |
Можно сделать всё намного проще и вообще обойтись без БД.
Пример:
При этом Вы приобретёте лёгкость манипулирования и смены и информации в меню - не надо будет писать скрипт - редактор под БД. |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
можно и так но в конкретном случае нужна именно база и чтоб она обнавлялась и дополнялась чтоб не ручками там потом все писать а можно было структурировать и собрать скрипт -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
может кто-нибудь поможет примером, а то никак не могу разобраться,
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
Нашел вот такой код для парсинга URL (http://www.compdoc.ru/internet/php/user_friendly_urls/) , как мне думуется нужно в .htaccess написать RewriteRule ^(.*) content.php
и URL будет браться , а вот как на основании его выводить нужную страницу(вложенные страницы) и какова должна быть структура MySql?
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| Wolf1994 |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 2 Всего: 29 |
Зачем так усложнять? Почему нужна именно база данных? Меню априори имеет небольшой размер и для него вполне подойдёт текстовый файл (лёгкая модификация приведённого мной варианта).
Если обязательно нужно через БД, то стандартная структура:
Либо:
При этом выбирать по "page1", "page1/subpage1", etc... Это сообщение отредактировал(а) Wolf1994 - 19.11.2006, 22:30 |
||||||
|
|||||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
дуду разбираться дальше, а не подскажете где можно подобный пример скачать в исходнике, ?
Добавлено @ 14:14 а насчет усложнять не знаю, нужно и траницы создавать и выбирать их потом из базы в зависимости от урла буду пробовать -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
вобщем сделал так:
в htaccess
в content
в MySql
вобщем работает , но как быть если это просто www.site.ru те параметров нет и что делать если вводят не существующую страницу, как избежать ошибки 2. как автоматизировать добавление страниц в базу те в меню выбирать родитель страницы, чтоб он присваивал parent Это сообщение отредактировал(а) americanets - 20.11.2006, 19:24 -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
||||||
|
|||||||
| Wolf1994 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 2 Всего: 29 |
Вместо
Сделать:
|
||||
|
|||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
ага , пока правил пост вы уже ответили, там еще проблемка возникла, плз help
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
Еще баг нашел, вставил страницы, с такимиже названиями, но привязал к другой, а выводится не та что нужна
а ведь подобное не очень хорошо http://site.ru/satranica/podstresho/ http://site.ru/satranica/podstresho/podstresho/
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 2 Всего: 29 |
Приведите полный код скрипта, результат его работы и желаемый результат.
|
|||
|
||||
| americanets |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
выводится страницы из вложений к странице которая выше, те я считая count count($urls) вроде как не учел что у нижних страниц parent_id будет больше количества вложений а при наборе неверного адреса или просто www.site.ru ничего нет, а желательно чтоб была первая страница и 404-я соответственно Добавлено @ 21:54 желательный результат чтоб можно было выводить www.site.ru/stranica/podstranica/ www.site.ru/stranica2/podstranica/ ..... Заранее благодарен Добавлено @ 21:55 в config.php
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
||||
|
|||||
| SelenIT |
|
||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 9 Всего: 401 |
americanets, вот это уже та структура, про которую я вначале подумал.
В такой структуре однозначно найти страницу по пути можно так:
Соответственно, PHP-скрипт для генерации такого запроса будет примерно таким:
Это сообщение отредактировал(а) SelenIT - 21.11.2006, 01:44 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||
|
|||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
что-то не могу понять про t1 t2.. те структуру SQL
Добавлено @ 10:08 и как там привязаны страницы, и как потом их добовлять, а можно ли попробовать поправить мой код, он ведь от части рабочий -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 9 Всего: 401 |
americanets, t1, t2 и т.д. - это псевдонимы Вашей таблицы `pages`. Она связывается сама с собой столько раз, сколько уровней вложенности в адресе искомой страницы (на самом деле там есть ограничение - 31 раз в старых версиях и как минимум 60 - в 5-й, но для сайта этого, по-моему, должно быть достаточно). Причем связывание идет таким образом, что имена страниц могут повторяться как угодно - все равно выбираться будут только те, предками которых являются страницы с именами "старших" поразделов в соотвествующем адресу порядке. Причем делается это одним (хоть и сложноватым с виду) запросом, поэтому тормозить не должно (главное - нет запросов в цикле).
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
стало яснее , но можно как то собрать фсе это воедино, с дампом базы и PHP кодом, и как потом добавлять страницу, туповат что-то я пока в этом деле
ПЛЗ ХЕЛП -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 9 Всего: 401 |
americanets, это был пример для Вашего же дампа базы, приведенного несколькими постами выше. Мой код относится исключительно к выводу, добавление страниц будет таким же, как и ранее.
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| americanets |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
те вот это
я не использую а сразу использую код и вывожу из базы
? совсем запутался -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
||||
|
|||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 9 Всего: 401 |
Этим PHP-кодом Вы собираете SQL-запрос (подобный вышеприведенному), который вернет Вам страницу по данному URI. Сам запрос был приведен только для иллюстрации, строить Вы его будете динамически в зависимости от конкретных параметров URL.
Это сообщение отредактировал(а) SelenIT - 21.11.2006, 15:30 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
спасибо, буду пробовать
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
все разобрался, спасибо, только вот есть небольшая проблемка,
1. Что делать если пользователь зашел на сайт www.site.ru как сделать чтоб выводилась первая страница? 2. www.site.ru/stranica/ работает, а www.site.ru/stranica нет, те обязательно нужен завершающий слеш, можно ли этого избежать Это сообщение отредактировал(а) americanets - 21.11.2006, 18:23 -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 2 Всего: 29 |
||||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
а как быть с www.site.ru
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 9 Всего: 401 |
americanets, тут возможны варианты: либо для корневой страницы вообще не хранить путь в базе, а выводить ее по условию в самом скрипте (имхо, оправданный вариант, если это - сплэш-страница с другим шаблоном дизайна и т.п.), или хранить ее в базе как раздел первого уровня с name_url = ''. К тому же, алгоритм разбора REQUEST_URI почи наверняка придется усовершенствовать (дописывать слеш лишь к адресам определенного вида, обрезать "хвост" по точке или знаку вопроса и т.д.), в нем можно предусмотреть особый случай для URI == '/'. Я ведь показал лишь упрощенный схематичный пример, а окончательное решение зависит от условий конкретной задачи...
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
со слешами разобрался, осталось только с www.site.ru , еще есть вопросы по поиску, те поиск я делаю
но не знаю как вывести правильный URL те stranica/podstranica/... и как выводить заголовок Главная-> Подстраница ... Наверное нужно будет развернуть новую тему Это сообщение отредактировал(а) americanets - 23.11.2006, 22:36 -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
и все таки не решил проблему с www.site.ru HELP
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
с www.site.ru все оказалось проще чем думал
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
проблема со страницами такого плана www.site.ru/contact/ www.site.ru/eng/contact/ выводит инфу www.site.ru/contact/ по обоим запросам и допустим www.site.ru/eng/info доступна по www.site.ru/info / -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |