Диплом: Разработка автоматизированного рабочего места библиотекаря на языке PHP на базе СУБД MySQL

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
65
Продолжение таблицы 17
Наименование поля
Идентификатор
Тип
Примечание
3.
Идентификатор
читателя
idu
int(11)
FK
4.
Количество
‘экземпляров
amount
tinyint
5.
Дата выдачи
date_iss
date
Таблица 18
Структура таблицы «Наличие»
Наименование поля
Идентификатор
Тип
Примечание
1.
Идентификатор
записи
idst
int(11)
PK, автозаполнение
2.
Идентификатор книги
idbook
int(11)
FK
3.
Дата записи
date_st
date
4.
Количество в наличии
amt_st
smallint
2.4.3 Дерево вызова программных модулей
Программные модули, составляющие структуру пакета, обычно делятся на
три класса: модули управления, используемые для загрузки меню и передачи
управления остальным модулям; модули, служебных функций; модули
хранения, обработки и выдачи данных.
Система состоит из двух основных модулей – базы данных MySQL и
приложения для взаимодействия с базой данных, реализованного на языке
программирования PHP и c использованием HTML, CSS, jQuery.
Описание программных модулей представлено в таблице 19.
Таблица 19
Описание программных модулей
п/п
Наименование
модуля
Функции модуля
1.
Выдача
Совокупность алгоритмов, выполняющих учет выдач и
возврата книг – основную функцию системы
2.
Учет
Учет наличия книг
3.
Отчеты
Позволяет получить отчеты по выдаче, по книгам, по
читателям
4.
Справочники
Данный модуль предназначен для ввода и
корректировки исходной информации
Листинг программных модулей представлен в приложении 2.
Схема вызова программных модулей представлена на рисунке 21.
66
Выдача Учет Отчеты Справочники
Авторизация
Рисунок 21 Схема вызова программных модулей
2.5 Контрольный пример реализации проекта и его описание
Информационная система «АРМ библиотекаря» представляет собой набор
файлов на локальном сервере, развёрнутого из пакета Denwer [28],
расположенных в каталоге ..\WebServers\home\armlibrary\www (рисунок 22).
Рисунок 22 Структура ИС на локальном сервере
База данных ИС (набор таблиц) находится в каталоге
..\WebServers\usr\local\mysql-5.5\data\armbibl. Просмотреть таблицы БД в СУБД
MySQL можно с помощью графической оболочки phpmyadmin, которая
запускается в браузере по адресу http://localhost/Tools/phpMyAdmin. Структура
БД представлена в приложении1.
Настройки соединения указаны в файле conf/dbconnect.php:
$id_con=mysql_connect("localhost", "root", "")
or die("Невозможно соединиться с сервером");
mysql_select_db("armbibl") or die("Невозможно выбрать БД");
В корневую директорию добавлен файл .htaccess с директивой:
AddDefaultCharset UTF для корректного отображения кириллических шрифтов.
67
Для входа в АРМ библиотекаря необходимо открыть браузер и ввести в
адресной строке: http://armlibrary. Первой открывается страница авторизации
пользователя (рисунок 23).
Для определения правильности ввода логина и пароля используется
запрос:
SELECT idu, login, password FROM user WHERE login=$_POST['login'].
AND password=$_POST['password']
Если данные введены правильно, то библиотекарь попадает на страницу
«Выдачи»: Header ("Location: admin/index.php") – рисунок 24.
Рисунок 23 Страница авторизации
Рисунок 24 – Страница «Выдача книг»
Навигация по страницам сайта осуществляется с помощью
горизонтального меню (рисунок 25).
Рисунок 25 Горизонтальное меню с выпадающими списками
68
Выпадающие пункты меню – это внутренние ссылки на страницы. При
наведении курсора на пункт меню меняется его цвет, чтобы акцентировать
внимание пользователя.
Меню организовано с помощью выпадающих списков, внешний вид меню
описан в файле css/index.css, разметка тегами - в файле admin/menu.php. Пункт
меню «Справочники»:
<div id='menu-i'>
<ul>
<li><a href='magaz.php'
class='c1'><span><i>Справочники</i></span></a>
<div class='submenu'><div class='submenu-m'>
<ul class='c1'><li><div><a href='magaz.php'>Жанры</a></div></li>
<li><div><a href='tipi.php'>Авторы</a></div></li>
<li><div><a href='vendor.php'>Издательства</a></div></li>
<li><div><a href='prod.php'>Книги </a></div></li>
</ul>
</div>
Прежде чем выдавать книги библиотекарь обязан заполнить все
справочники: Авторы (рисунок 26), Издательства (рисунок 27), Жанры (рисунок
28), Книги (рисунок 29).
Рисунок 26 Заполнение справочника «Авторы»
69
Рисунок 27 Заполнение справочника «Издательства»
Рисунок 28 Заполнение справочника «Жанры»
Рисунок 29 Заполнение справочника «Книги»
70
Работа с данными осуществляется с помощью непроцедурного языка
Structured Query Language (SQL) [9]
Заполнение таблицы author в БД выполняется с помощью управляющего
запроса:
require "../conf/dbconnect.php"; /*соединяемся с БД*/
if(isset($_POST['post'])) /*если нажата кнопка Добавить автора*/
{$query1="INSERT INTO autor (`namea` ) VALUES
('".$_POST['namea']."')";
if(mysql_query($query1) ) /* если запрос успешно выполнен */
{echo "

Автор добавлен

else
{echo "

Проверьте заполнение полей!

Работа со справочниками происходит единообразно – в поля формы
вводятся данные, затем нажимается кнопка «Добавить». Данные вносятся в БД с
помощью аналогичных запросов. Добавленная книга показана в списке на
рисунке 30.
Рисунок 30 Добавленная книга на странице «Список книг»
Ввод на экран списка книг выполняется с помощью запроса на выборку,
где данные собираются из трёх таблиц author, publishing, book:
$res=mysql_query("SELECT idbook, namea, namep, namebook, year, isnb,
annotation FROM author, publish, book WHERE author.ida=book.ida AND
publish.idp=book.idp ORDER BY namea");
71
Всплывающее окно с описанием плавно появляется с использованием
технологии jQuery:
<div class='highslide-maincontent'>
<p class='pp' > Описание </p>
$res_id[6]</div>
</div>
После заполнения справочников необходимо учесть, сколько экземпляров
каждой книги имеется в библиотеке. Библиотекарь делает это на странице
«Поступление книг» (рисунок 31).
Рисунок 31 Учет поступления книги
Поступление учитывается с помощью следующей процедуры:
if ($amt_st>0) /*Если экземпляры книги уже имеются в библиотеке*/
{
$post1="UPDATE storage SET amt_st=amt_st+'$kol' WHERE
idbook='$idbook'";
if(mysql_query($post1))
{
echo "

Поступление учтено

}}
else
{
$query1="INSERT INTO storage (id_st, idbook, amt_st)
values ('', $_POST['idbook'], $_POST['kolvo'])";
if(mysql_query($query1))
{
echo "

Поступление учтено

}}
Если некоторое количество экземпляров книги имеется в библиотеке, то
вновь поступившие экземпляры книги суммируются с имеющимся количеством,
и таблица обновляется с помощью запроса UPDATE. Если экземпляры книги
отсутствуют, то в таблицу вставляется новая запись с помощью запроса INSERT.
72
На рисунке 32 показана страница «Наличие книг», где видно, что
введённые данные сохранены.
Рисунок 32 Количество экземпляров вновь поступившей книги
На рисунке 33 показан фрагмент общего списка книг, экземпляры которых
имеются в библиотеке. Издания группируются по жанрам, затем по авторам.
Рисунок 33 Наличие экземпляров книг в библиотеке
Если читатель обращается в библиотеку впервые, то его необходимо
зарегистрировать и выдать ему читательский билет. Страница регистрации
читателей представлена на рисунке 34.
73
Рисунок 34 Страница регистрации читателей
Данные собираются из полей формы и сохраняются в БД с помощью
запроса:
INSERT INTO user (idu, nameuser, num_card, phone, address, status)
VALUES ('', $_POST['nameuser'], .$_POST['num_card'], $_POST['phone'],
$_POST['address'], $_POST['status']."')
Информацию обо всех читателях можно посмотреть на странице «Список
читателей» (рисунок 35). В верхней части страницы расположено поле поиска по
фамилии. После нажатия на пиктограмму поиска на экран выводится
сформированный читательский билет (рисунок 36).
Рисунок 35 Страница «Список читателей»
74
Рисунок 36 Читательский билет
Читательский билет можно вывести на печать, нажав на значок принтера
(рисунок 37). Для этого используется функция языка JavaScript, описанная в
файле js/print.js:
<a href='javascript://'onclick=atoprint('MessForPrint') ><img
src='../image/printer.png' >На печатать
На печать выводится область между тегами <div id='MessForPrint' > </div>
Рисунок 37 Вывод на печать читательского билета
Когда читатель обращается за книгой, библиотекарь на странице
«Наличие книг» ищет нужную книгу, задавая критерии поиска: жанр, автора,
издательство (рисунок 38).

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран