Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   трехуровневый принцип (http://www.flasher.ru/forum/showthread.php?t=72676)

Илья К 02.12.2005 14:12

трехуровневый принцип
 
Всем приветы!
Переписываю уже не в первый раз интерфейс для БД (точнее одной единственной таблицы, но это неважно, можно расширить -- принцип тот же). Итак. Должен быть реализован трехуровневый принцип: контроллер, движок (сами ф-ции), БД (ну, и, понятно, уровень 0 -- сама панель). Контроллеру передается команда с параметрами, под которую он "подыскивает" соответствующую функцию, обращающуюся в свою очередь к БД. С фунциями, назначение которых изменять что-то в БД (например, select() или add()) проблем нет. Неприятности возникают с функицией, возвращающей данные в броузер (select()). Проблема в том, что данные должны по сути запрашиваться и выдаваться в разных файлах, иначе нарушится структура.
Сталкивался уже кто-либо с подобной проблемой?

Спасибо.

ЗЫ аттач

Skubent 02.12.2005 14:43

ИМХО - медленный и печальный подход к работе с БД.
Аттача нет, но можешь изложить причины такой заморочки ?

Илья К 02.12.2005 21:01

Вложений: 1
Картинка была слишком большая, вот аттач и не загрузился...
Так вот, зачем заморочка: во-первых, мне сама идея разделения очень нравится -- позволяет разбиват программу на части, что делает возможным программирование (и перепрограммирование!) отдельных кусков независимо друг от друга. Кроме того это делает код обозримым и понятным, что особенно важно при отладке, а также переработке пару месяцев/лет спустя после написания приложения. Да и коллегам (если работаешь не один) проще. Во-вторых... требують, хотять... :)

Почему "медленный и печальный подход к работе с БД"?

Skubent 02.12.2005 21:28

Потому что php - скриптовый язык, призванный не обеспечить удобство разработчика и читаемость кода, а быстрое выполнение маленьких (относительно) скриптов.

Картинки типа приаттаченной хорошо смотреть на семинарах и слушать объяснения от теоретиков. На практике каждая прокладка между БД и скриптом - большой и толстый тормоз всего скрипта.

А собственно, по первому вопросу - неясно, какая структура нарушается-то ? Что кому мешает ? :)

Илья К 03.12.2005 00:55

Структура нашается при SELECT, потому что это единственный запрос, результат которого должен выводиться в броузер. Но чтобы не нарушать структуру, файл запрашивающий и файл, куда выводится содержание result, должны быть разными, в смысле, не одним и тем же.

Antoine 05.12.2005 01:45

Да простят меня модеры, но IMHO это глупо.

Илья К 05.12.2005 05:10

Думаю, простят, а насчет того глупо ли... Что ты имеешь в виду?

Skubent 05.12.2005 12:10

Цитата:

Сообщение от Илья К
Структура нашается при SELECT, потому что это единственный запрос, результат которого должен выводиться в броузер. Но чтобы не нарушать структуру, файл запрашивающий и файл, куда выводится содержание result, должны быть разными, в смысле, не одним и тем же.

Это почему они должны быть разными ?
Почему разные файлы вообще пугают ?

Antoine 05.12.2005 15:37

Одним файлом гораздо удобнее и что не менее важно быстрее.
А про эту структуру ты сам придумал??
Обычно просто пишеш файл (файлы) с функциями, которые вставляеш куда надо.
Например:

function db_connect($host,$user,$pass,$db)
{
mysql_pconnect($host,$user,$pass) or die ('!!!');
mysql_select_db($db);
}
А потом пихай эту функцию куда надо и сразу же запрос и вывод.

Pashka2k 14.12.2005 01:11

Т.е. я так понимаю, что надо из файл1 запросить данные, которые асинхронно получит файл2? Если так, то можно попользовать XMLHttpRequest джаваскриптовый, который будет (будучи запущенным из файл2) по победного бэкграундно вызывать файл3 (пхпшный), оный в свою очередь (на сервере) будет проверять, не появились ли в сессии данные от прослойки, которая произведя селект его результат положит в сессию.

Или структура линейная? Если линейная, то собсно из передай в прослойку параметром нужный файл и включи его из прослойки после селекта.

Или я не понял задачи :cool:


Часовой пояс GMT +4, время: 07:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.