веб-сайт частной медклиники. Автоматизированная информационная система на основе вебтехнологий для частной медицинской клиники
Скачать 4.65 Mb.
|
3.6 Разработка веб-сайтаДинамический веб-сайт — это тот, где часть содержимого ответа генерируется динамически только при необходимости. На динамическом веб-сайте HTML-страницы обычно создаются путём вставки данных из базы данных в заполнители в HTML-шаблонах (это гораздо более эффективный способ хранения большого количества контента, чем использование статических сайтов). Динамический сайт может возвращать разные данные для URL-адреса на основе информации, предоставленной пользователем или сохранёнными настройками, и может выполнять другие операции, как часть возврата ответа (например, отправку уведомлений). Большая часть кода для поддержки динамического веб-сайта должна выполняться на сервере. Создание этого кода известно, как «программирование серверной части» (или иногда «программирование бэкенда»). Архитектура динамического сайта представлена на Рисунке 15. Рисунок 15 – Архитектура динамического сайта Код серверной части может быть написан на языке PHP. Программирование серверной части позволяет хранить информацию в базе данных и динамически создавать и возвращать HTML и другие типы файлов (например, PDF, изображения, и т. д.). Программирование серверной части позволяет сайтам ограничивать доступ авторизованным пользователям и предоставлять только ту информацию, которую пользователю разрешено видеть. Программирование серверной части позволяет разработчикам использовать сессии – изначально это механизм, позволяющий серверу хранить информацию о текущем пользователе сайта и отправлять разные ответы, основанные на этой информации. Это позволяет, например, сайту знать, что пользователь был предварительно авторизован и выводить ссылки на его адрес электронной почты или историю заказов. Серверная часть приложения реализована в виде отдельных модулей, написанных на языке PHP и реализующих следующие функции: Подключение к серверу БД; Отправка запросов к серверу БД на получение данных; Отправка запросов к серверу БД на изменение данных; Отправка запросов к серверу БД на удаление данных; Получение данных от сервера БД в ответ на запрос. В Таблице 4 представлены модули серверной части приложения с описанием их назначения. Таблица 4 – Модули серверной части приложения
Продолжение Таблицы 4
3.7 Создание класса для работы с базой данныхclass DB { /* Параметры подключения к серверу БД*/ protected $dbname='solar'; // Имя БД protected $dbuser='root'; // Имя пользователя protected $dbhost='localhost'; // Адрес сервера protected $dbpass=''; // Пароль private $_connect; private $db_select; public $row; /*Подключаемся к базе данных*/ public function __construct() { $this->_connect=@mysql_connect ($this->dbhost, $this->dbuser, $this->dbpass); if (!$this->_connect) { exit («В настоящий момент сервер базы данных недоступен»); } $this->db_select=mysql_select_db ($this->dbname, $this->_connect); if (!$this->db_select) { exit('В настоящий момент база данных недоступна'); } return $this->db_select; } /*Делаем запрос к базе данных*/ public function query($q) { $this->result=mysql_query($q, $this->_connect); //echo $q; if (!$this->result) { echo « Не удалось выполнить SQL запрос «; ”;echo $q.” ”; echo(mysql_error()); echo” } //echo “ $q ”;return $this->result; } /* Количество строк в запросе*/ public function query_count($result) { $this->row_count=mysql_num_rows($this->result); return $this->row_count; } /*Переводим строку в ассоциативный массив*/ public function fetch_assoc($result) { $this->fetch=mysql_fetch_assoc($result); return $this->fetch; } /*Переводим весь запрос в ассоциативный массив*/ public function fetch_all($result) { while ($fetch=mysql_fetch_assoc($result)) { $rows[]=$fetch; } return $rows; } public function ransform_date($dat) { $data[‘day’]=substr($dat, 0, 2); $data[‘month’]=substr($dat, 3, 2); $data[‘year’]=substr($dat, 6, 4); return $data; } /*Удалить запись из таблицы $table по полю $id_field равному $id*/ public function delete_record($table, $id_field, $id) { $q=”DELETE FROM $table WHERE $id_field=’$id’”; $delete_record=$this->query($q); return $delete_record; } public function delete_set($table, $set) { $q=”DELETE FROM $table WHERE $set”;; $delete_record=$this->query($q); return $delete_record; } /*Вставляет набор данных $set в таблицу $table*/ public function insert_record($table, $set) { $q=”INSERT INTO $table $set”; $insert_record=$this->query($q); } /*Обновляет набор данных $set в таблице $table*/ public function update_record($table, $set, $id_field, $id) { $q=”UPDATE $table SET $set WHERE $id_field=’$id’”; $update_record=$this->query($q); } public function get_last_id($table) { $q=”SELECT LAST_INSERT_ID() FROM $table”; $last=$this->fetch_assoc($this->query($q)); $last_id=$last[‘LAST_INSERT_ID()’]; return $last_id; } } |