[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: таблицы mySql и меню сайта
Serdg
Здравствуйте! такая ситуация возникла, вот пробую на ооп по шаблону MVC написать движок для сайта, ну для самообучения и для практики, есть меню например:
  • главная
  • новости
  • программы
  • уроки
    • английский
    • немецкий
    • французский


вобще я читал, что каждому пункту меню соответствует своя таблица, так ли это? просто суть в том, что вот пишуя я контроллер для отображения страниц, но меню то на русском языке, а как экшен контроллера может автоматически определить в какую таблицу ему обращиться? меню выводится автоматически, берётся оно из соответствующей таблицы, допустим если бы оно было бы на английском языке, тогда можно было бы сделать одноимённые таблицы для каждого пункта, ну например таблица news с новостями, таблица lesson с уроками, а чтобы попась в нужную таблицу в ссылке для каждого пункта добавлять название пункта, но так-как меню всё-таки на русском, то как быть? как объяснить экшену в какую таблицу обращаться? ведь на русском таблицы нехохошо вроде называть! если делать что-то типа переводчика, то опять же проблема, потомучто, если нужно будет через админку добавить ещё пункт меню, то потом придётся лезть в код и руками в переводчике добавлять новое слово!

так как же правильно организовывать русскоязычное меню на сайте и связывать его с таблицами в базе данных?
Valick
Serdg, вы пытаетесь верблюда накормить колючками через задний проход smile.gif
Вам нужна хорошая книга по ООП, хотя и по обычному тоже не помешает.
Цитата
вобще я читал, что каждому пункту меню соответствует своя таблица, так ли это?

нет это не так
Цитата
а чтобы попась в нужную таблицу в ссылке для каждого пункта добавлять название пункта

потенциальная огромная дыра в безопасности

_____________
Стимулятор ~yoomoney - 41001303250491
Serdg
тогда если знаете такую книгу где про это написано подскажите пожалуйста, или может ссылочку! или может вкраце можете объяснить как правильно?
SoMeOnE
Вы сначала Котерова почитайте.
http://codpro.ru/content/php-5-v-podlinnik...oterov-kostarev
Потом фреймворк разбирайте какой нибудь.
Valick
Цитата
или может вкраце можете объяснить

в том то и дело что вкратце тут не получится


_____________
Стимулятор ~yoomoney - 41001303250491
mvg
Я бы спросил причем пункты меню к таблицам, но спрошу что означает правильно?

По классике жанра рекомендуется вставлять код php в нужное для разработчика место, а там и выполняется то, что предусмотрит разработчик.
Serdg
я ещё наверное объяснил плохо, ну вот новости уроки и программы не запихнёшь же в одну таблицу, вернее запихнуть то можно что угодно, просто так не делается наверно или делается? а вобще меня интересует как связать меню и таблицы, ну вот нажимаю на новости, потом на программы, потом на уроки, а как при этом контроллер поймёт в какую таблицу обращаться за данными? если делать на все пункты меню один контроллер, но на каждый пункт меню свой экшен так это тоже неправильно, тут в другой теме говорилось что например для вывода страниц любых, будь то новости или программы, используется один и тот же контроллер и экшен, вот и возникает вопрос как экшен понимает в какую таблицу ему лезть, значит нужно ему в параметрах передавать при нажатии на ссылку название таблицы или часть названия, а потом его дополнять, так ведь? или я снова ерунду сморозил?
Valick
Serdg, ну вы как бы слышали звон, а тепеь пытаетесь свалить все это в большую кучу.
Поймите, архитектура БД не зависит (ну если не принимать во внимание денормализацию) от моделей и контроллеров (перестаньте мучать верблюда smile.gif ). Она зависит от сущностей и связей между этими сущностями. Разделите задачу на более мелкие подзадачи. Начтните с написания например новостей, без всяких там уроков и программ, тем более что это отдельные логические блоки.
Я конечно могу ошибаться, но мне кажется, что в вашем случае сказывается недостаток базовых знаний за долго до ООП, котроллеров и моделей. Вы пытаетесь объять необъятное и впихнуть невпихуемое. Представьте себе вы прыгнули с парашютом, а теперь по быстрому пытаетесь уточнить когда и за какое кольцо дергать.
Я ни в коем случае не отговариваю вас от энтузиазизма, просто советую вернуться чуть назад и выучить все то интересное что вы пропустили.

_____________
Стимулятор ~yoomoney - 41001303250491
Serdg
ну вы загадками говорите) может я тогда вкраце напишу какой у меня способ показа тех же новостей получился:


есть главный контроллер(FrontController) у него метод route, суть там в том что берётся адресная строка разбивается в массив по слешам, первый элемент массива - контроллер, второй - экшен, а остальные это параметры, ну то есть http:\\beta/index/view/news
index - контроллер
view - экшен
news - параметр

запускается значит IndexController его экшен viewAction в него передаётся параметр news
дальше идёт запрос query в базу данных:
$table = 'news_table'; //в переменную $table подставляется значение приходящее из адресной строки в виде параметра, добавляется _table, вот и получилось news_table
$sql = 'SELECT id, title, description FROM '.$table;

дальше идёт выборка данных и показ их на странице сайта!

вот таким образом у меня сейчас контроллер узнаёт в какую таблицу залезать если нажали ту или иную ссылку) я просто хотел узнать правильно ли это, по-моему должен быть другой нормальный способ, и вобще хотел узнать как это в профессиональных разработках делается, ну просто нигде не могу нормальных примеров найти, везде простейшие!

меня это интересует так-как в инете полно примеров MVC, где под каждый раздел меню есть одноимённый файл, например нажимаешь на ссылку новости и идёт долгая череда вычислений нужного контроллера и экшена а потом подключение в данном случае файла news.php, просто странный это подход, тогда никак нормальную админку не сделаешь, захотел добавить страничку рисунки и придётся лезть в код добавлять новый файл рисунки, и т.п.


вобще вопрос то простой как в MVC контроллер узнаёт в какую таблицу лезть?)

я понимаю что у меня пробел в знаниях, но даже в книге Котерова про это не написано, там MVC не шибко расписана, так поверхностно довольно
Быстрый ответ:

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