![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
|
Всем приветы!
Переписываю уже не в первый раз интерфейс для БД (точнее одной единственной таблицы, но это неважно, можно расширить -- принцип тот же). Итак. Должен быть реализован трехуровневый принцип: контроллер, движок (сами ф-ции), БД (ну, и, понятно, уровень 0 -- сама панель). Контроллеру передается команда с параметрами, под которую он "подыскивает" соответствующую функцию, обращающуюся в свою очередь к БД. С фунциями, назначение которых изменять что-то в БД (например, select() или add()) проблем нет. Неприятности возникают с функицией, возвращающей данные в броузер (select()). Проблема в том, что данные должны по сути запрашиваться и выдаваться в разных файлах, иначе нарушится структура. Сталкивался уже кто-либо с подобной проблемой? Спасибо. ЗЫ аттач |
|
|||||
|
ИМХО - медленный и печальный подход к работе с БД.
Аттача нет, но можешь изложить причины такой заморочки ?
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
|
Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
|
Картинка была слишком большая, вот аттач и не загрузился...
Так вот, зачем заморочка: во-первых, мне сама идея разделения очень нравится -- позволяет разбиват программу на части, что делает возможным программирование (и перепрограммирование!) отдельных кусков независимо друг от друга. Кроме того это делает код обозримым и понятным, что особенно важно при отладке, а также переработке пару месяцев/лет спустя после написания приложения. Да и коллегам (если работаешь не один) проще. Во-вторых... требують, хотять... ![]() Почему "медленный и печальный подход к работе с БД"? |
|
|||||
|
Потому что php - скриптовый язык, призванный не обеспечить удобство разработчика и читаемость кода, а быстрое выполнение маленьких (относительно) скриптов.
Картинки типа приаттаченной хорошо смотреть на семинарах и слушать объяснения от теоретиков. На практике каждая прокладка между БД и скриптом - большой и толстый тормоз всего скрипта. А собственно, по первому вопросу - неясно, какая структура нарушается-то ? Что кому мешает ? ![]()
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
|
Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
|
Структура нашается при SELECT, потому что это единственный запрос, результат которого должен выводиться в броузер. Но чтобы не нарушать структуру, файл запрашивающий и файл, куда выводится содержание result, должны быть разными, в смысле, не одним и тем же.
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 45
|
Да простят меня модеры, но IMHO это глупо.
|
|
|||||
|
Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
|
Думаю, простят, а насчет того глупо ли... Что ты имеешь в виду?
|
|
|||||
|
Цитата:
Почему разные файлы вообще пугают ?
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 45
|
Одним файлом гораздо удобнее и что не менее важно быстрее.
А про эту структуру ты сам придумал?? Обычно просто пишеш файл (файлы) с функциями, которые вставляеш куда надо. Например: function db_connect($host,$user,$pass,$db) { mysql_pconnect($host,$user,$pass) or die ('!!!'); mysql_select_db($db); } А потом пихай эту функцию куда надо и сразу же запрос и вывод. |
|
|||||
|
"Вождь"
|
смеятся или плакать?
Цитата:
вцелом вообще автор только начинает узнавать этот мир и ему очень страшно, что он больше того, что можно увидеть. можно рассказать об mvc, только это совсем не поможет. пока мозг не понимает, что делают руки точно не поможет. значит, выход один. есть такая штука - "храбрость". в данном случае - храбрость попробовать. попробуешь, а со временем поймешь, правильно или неправильно принял то или иное решение.
__________________
а мы летим орбитами путями не избитыми... |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|