Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 33

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ

КРЕМЕНЧУЦЬКИЙ ДЕРЖАВНИЙ ПОЛІТЕХНІЧНИЙ УНІВЕРСИТЕТ

ЕЛЕКТРОМЕХАНІЧНИЙ ФАКУЛЬТЕТ

Кафедра комп’ютерних та інформаційних систем

ПОЯСНЮВАЛЬНА ЗАПИСКА

до курсової роботи з дисципліни

“ Система управління розподіленими базами даних”

На тему:
Автоматизація роботи
методичного кабінету кафедри КІС

Виконав: Студент групи КС-00-1 Ковирін О.М.

Керівник курсової роботи: Хабло Т.В

КРЕМЕНЧУК 2004
РЕФЕРАТ

Курсова робота: 23 стор., 15 мал., 3 таб., 1 додаток


Об’єкт – меотдичний кабінет кафедри КІС.
Мета розробки-створення автоматизованої системи введення обліку та
оперативного віявлення боржників методичного кабінету
Метою розробки курсового проекту було створення автоматизованої
інформаційної системи, яка б дозволяла автоматизувати роботу працівників
методичного кабінету та надавала довідкову інформацію про студентiв
кафедри та методичні матеріали.
Задача була вирішена за допомогою мови програмування PHP4 з
використанням модулів CGI-програмування та унификованного доступу до
SQL-серверів баз данних (в данній работі в ролі SQL-серверу для зберігання
бази даних використано сервер MySQL). Результатом виконання php-коду на
сервері є динамічний HTML-код, у якому інтенсивно вікористовуються
форми та JavaScript.
Результатом вирішення задачі став додаток з Web iнтерфейсом.
Розроблений додаток дозволяє автоматизувати введення та пошук
iнформацii в журналі обліку методичних матеріалів та оперативно віявляти
боржників. Це дозволить значно підвисити ефективність та зручність роботи
працівників методичного кабінету.
ЗМІСТ

1. Вступ........................................................................................................................................
2. Основна частина.....................................................................................................................
2.1 Постановка задачі.......................................................................................................
2.2 Проектування інформаційної моделі предметної області......................................
2.3 Вимоги до апаратної частини та програмного оточення.. .....................................
2.3.1 Апаратна частина. .................................................. .....................................
2.3.2 Програмна частина. .................................................. ..................................
2.4 Опис структури додатку................................................. .........................................
2.5. Програмна частина. ................................................. ...............................................
2.5.1. Структура бази даних. ................................................. .............................
2.5.1.1. Як зв’язувались таблиці...................................................................
2.5.1.2. Організація підключення до бази даних........................................
2.5.2 Інтерфейс користувача.................................................................................
2.5.3. Короткий опис внутрішньої структури додатку........................................
2.5.4. Організація запуску додатку......................................................................
2.6.Інструкція користувачу..........................................................................................
3. Висновок..................................................................................................................................
4. Список використаної літератури..........................................................................................
Додаток А

Лист

3
Зм. Лист № докум. Підпис Дата
ВСТУП

У наш час освіта є необхідною частиною підготовки кваліфікованих


спеціалістів. Для підвищення ефективності самостійної роботи студентів в
учбових закладах регулярно видаються різноманітні методичні матеріали, в
яких доступно вікладено основні принципи та ідеї виконання лабораторних,
практичних, контрольних робіт та наведено приклади вирішення типових
задач з різних предметів. З метою розвантаження основних бібліотечних
фондів учбових закладів, методична література (найчастіше) розміщується в
окремому приміщенні, яке знаходиться під наглядом персоналу кафедр –
мтодичному кабінеті. Специфікою роботи методичного кабінету є
різноплановість методичних матеріалів та можливість достатньо гнучкої їх
классифікації.
З метою поліпшення роботи працівників методичного кабінету кафедри
КІС, було розроблено систему обліку методичних матеріалів та управління
базою користувачів, яка дозволить автоматизувати виконання типових
операцій і знизити вірогідність помилок.
Створений додаток побудований на основі Web-технологій. Він
дозволяє незалежно від операційної системи та програмного забезпечення
мати доступ до даних облікової системи.
Зручність та простота роботи, а також гнучкість системи – основні
характеристики створеної системи.

Зм. Лист № докум. Підпис Дата


Розроб. Ковирін Пояснювальна записка до курсової роботи з Лит. Лист Листов
Перевірив Хабло 4
Т. контр. дисципліни” Система управління

Н. Контр. КДПУ, кафедра КІС


розподіленими базами даних” на тему
Утверд.
“Автоматизація роботи методичного кабінету
Основна частина

2.1 Постановка задачі


Розглянемо типовий методичний кабінет, в якому ведеться облік
методичних матеріалів. Черговий методиcт повинен реєструвати кількіть,
дату видачі, термін, на який видано методичний матеріал та дату його
повернення – ці дані заносяться в “журнал обліку методичніх матеріалів”.
Також ведеться “журнал реєстраціі методичнних матеріалів”, у який заносять
кількість, список авторів, назву та классифікаційний признак всієї методичної
літератури, яка поступає у методичний кабінет. Користувачі повинні
залишати документ, посвідчуючий їх особу (найчастіше – студентський
квиток), як гарант повернення отриманної літератури.
Журнали повинні зберігатися після їх заповнення ще близько року на
той випадок, якщо данні з них можуть знадобитися.
Отже, треба розробити систему, яка буде виконувати вищеописані
операціі, допомогатиме працівникам методичного кабінету в швидкому
пошуку необхідної інформаціі в створеній базі даних, яка буде надійна та
легка у використанні.

Організаційна схема работи методичного кабінету:

Бібліотечні Видавництво
фонди кафедри униіверситету

Користувачі
Методичний Методичного
кабінет Кабінету

Вхідні дані :
Список студентів та викладачів кафедри (відновлення і внесення
поправок виконується в міру необхідності):
Лист

5
Зм. Лист № докум. Підпис Дата
- Прізвище користувача;
- І.Б. користувача;
- Група користувача;
- Адреса користувача;
- № телефону;
- E-Mail користувача;
- Нотатки.

Список методичних матеріалів (відновлення і внесення поправок


виконується в міру необхідності):
- Прізвище(а) автору(ів) методичного матеріалу;
- Назва методичного матеріалу;
- Тип методичного матеріалу;
- Дата публікації;
- Кількість.

Журнал обліку методичної літератури:


- Прізвище І.Б. користувача;
- Автор та назва методичного матеріалу;
- Кількість виданих екземплярів;
- Дата видачі;
- Термін видачі;
- Документ та № документа

Розроблений додаток являє собою інформаційну систему, яка дозволяє:


- Одержувати доступ к даним через internet та по локальній
мережі;
- Одержувати інформацію про студентів які зареєстровані у
методичному кабінеті (телефон, домашня адреса, група та ін.);

Лист

6
Зм. Лист № докум. Підпис Дата
- Інформацію про методичні матеріали (загальна кількість,
кількість виданих, кому видано та ін.);
- Інформацію про журнал обліку методичних матеріалів.
2.2 Проектування інформаційної моделі предметної області

При розробці бази даних потрібно побудувати інформаційну модель


задачі. Інформаційно-логічна модель відображає дані предметної області як
сукупність інформаційних об’єктів та зв’язки між ними. Ця модель
представляє дані, які призначені для зберігання в цій базі даних.

Інформаційний об’єкт - це інформаційний опис реального об’єкта, процесу,


явища або події. Інформаційний об’єкт складається з логічно зв’язаних
реквізитів, які представляють кількісні та якісні характеристики предметної
області. Для даної задачі інформаційні об’єкти це – студенти, відвідуючи, і т.
і.
Необхідно побудувати базу даних, яка місить інформацію про
відвідувачів методкабінету та методичні матеріали.
Для цього потрібні:
- Список користувачів;
- Список методичних матеріалів.

Список користувачів
№ користувача П.І.Б. Група ...
1
2

Список методичних матеріалів


№ Назва Автор …
методичного
матеріалу
1
2

Лист

7
Зм. Лист № докум. Підпис Дата
Крім цієї інформації, є також, облікова інформація. Для даної
предметної області це ”Журнал обліку методичних матеріалів”

Журнал обліку студентів


№ студента № Дата видачі …
методичного
матеріалу
1
2

Треба сказати, що документи предметної області не тільки дають


можливість виявити структуру даних, а також є основою для розробки форм
вводу-виводу і звітів.
Визначимо функціональні залежності між реквізитами.
З аналізу документу списку користувачів очевидно, що реквізити
прізвище, І.Б. є довідковими, і кожен з них залежить тільки від ключового
реквізиту – № користувача (ідентифікаційний номер). Це говорить про те, що
цей реквізит в різноманітності своїх екземплярів має не повторюватися.
Таким чином, на основі аналізу документа ”список користувачів” виділяємо
один інформаційний об’єкт (оскільки один ключовий реквізит) – користувач.
Аналогічно розглянутому вище можливо виконати аналіз документів ”журнал
обліку ” та ”список методичних матеріалів”.

Інформаційно-логічна модель розглянутої предметної області


“Методичний кабінет”, можна відобразити графічно, що наглядно
відобразить залежність один від одного інформаційних об’єктів.

Лист

8
Зм. Лист № докум. Підпис Дата
Журнал обліку Список користувачів

Список “методичок”
№ Студента № користувача
№ метод. мат. № Метод. Мат.
Прізвище;
Кількість
Назва І.Б.
Дата видачі
Автор(и) Група
Термін
Тип Адреса
Документ
Дата видання Телефон
Кількість E-Mail
Нотатки

Дана структура забезпечує основну вимогу до побудови інформаційно-


логічної моделі, тобто інформаційні об’єкти не мають повторюваних записів.
Це забезпечується за допомогою унікальних ключів – № користувача та №
метод. Матеріалу. Завдяки цьому не виникає ефекту надмірності даних, це
говорить про нормалізованість отриманої інформаційно- логічної моделі.

Лист

8
Зм. Лист № докум. Підпис Дата
2.3 Вимоги до апаратної частини та програмного оточення

2.3.1 Апаратна частина

На кафедрі “ Комп’ютерні та інформаційні системи ” використовуються


комп’ютери наступної такої конфігурації:
Сервери:
• Процесор Pentium ІІ 300 MHz.
• Оперативна пам’ять 64Mb.
• Жорсткий диск 3,2 GB.
• Кольоровий монітор SVGA.
• Microsoft Serial Mouse.
• NIC Realtek 8029 (10Mbps)

Клієнт:
• Процесор Pentium 100 (або 133) MHz.
• Оперативна пам’ять 16Mb.
• Жорсткий диск 1,02 GB.
• Кольоровий монітор SVGA.
• Microsoft Serial Mouse.
• NIC Realtek 8029 (10Mbps)

2.3.2 Програмна частина.

На комп’ютері-сервері, параметри якого розглянуті вище, встановлена


операційна система Debian GNU/Linux 3.0r0. В якості веб-серверу було
обрано Apache, як найпоширеніший та достатньо надійний сервер. Зважаючи
на те, що система написана мовою програмування PHP4, на сервері повинна
бути встановлена одна з його версій не нижче 4-ї. Для роботи с базами даних
було використано сервер MySQL, як один із самих швидких і невибагливих
до ресурсів системи. Интерфейсом між мовою PHP та SQL-сервером є
вбудований в інтерпретатор php модуль, який дає уніфікований (який не
залежить від версії та, навіть, програмного забезпечення серверу) доступ до
SQL-серверу і дозволяючий програмісту не зупинятися на тонкощах роботи з
конкретним сервером, а зосередитися на вирішенні задачі. PHP, згідно зі
Лист

9
Зм. Лист № докум. Підпис Дата
стандартами CGI-програмування, виконанує скрипт на веб-сервері та
повертає сформовану HTML-сторінку, яку можна переглядати будь-яким
браузером.
На комп’ютері-клієнті, параметри якого розглянуті вище може бути
встановлена будь-яка операційна система, в якій є браузер, що сумісний зі
стандартом HTML 4.01 та JavaScript 1.3 для перегляду WEB-сторінок і
присутній TCP/IP-зв’язок з комп’ютером-сервером (LAN, WAN та ін.).

Лист

9
Зм. Лист № докум. Підпис Дата
2.4 Опис структури додатку

Діалог користувача з додатком здійснюється за допомогою головного меню,


загальна структура якого зображена на малюнку:

Головне меню складається з наступних пунктів:

1. “Методические материалы” – виклик сторінки для перегляду, зміни,


видалення та додавання записів до списку методичних матеріалів;
2. “Студенты” – виклик сторінки для перегляду, зміни, додавання записів до
списку користувачів методкабінету;
3. “Учет” – виклик сторінки для перегляду та зміни облікових карток
користувачів методкабінету;
4. “Выход” – вихід із системи.

Лист

10
Зм. Лист № докум. Підпис Дата
2.5 Програмна частина

2.5.1 Структура бази даних

Для зберігання даних, які використовуються у додатку була створена


база даних kis_metod на SQL-сервері кафедри КІС. Для того щоб
систематизувати інформацію, було створено 5 таблиць (3 основних та 2
службові). Розглянемо створену систему таблиць.

Зауваження: В усіх таблицях присуьнє ключове поле Id, за допомогою якого


досягається унікальність кожного запису.

1. Таблиця “users” являє собою список користувачів методичного кабінету та


має таку структуру:
CREATE TABLE users (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
name varchar(50) DEFAULT '' NOT NULL,
initials varchar(50) DEFAULT '0' NOT NULL,
groupid int(10) unsigned DEFAULT '0' NOT NULL,
address varchar(50),
phone varchar(50),
email varchar(50) DEFAULT 'root@localhost' NOT NULL,
note varchar(100),
PRIMARY KEY (id),
UNIQUE id (id),
KEY name (name),
KEY groupid (groupid)
);

2. Таблиця “metods” являє собою список методичних матеріалів та має таку


структуру:
CREATE TABLE metods (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
typeid int(10) unsigned DEFAULT '0' NOT NULL,
author varchar(150) DEFAULT '' NOT NULL,
name varchar(150) DEFAULT '' NOT NULL,
mdate date DEFAULT '0000-00-00' NOT NULL,
num int(5) unsigned DEFAULT '1' NOT NULL,
PRIMARY KEY (id),
KEY typeid (typeid)
);

Лист

11
Зм. Лист № докум. Підпис Дата
3. Таблиця “accounting” являє собою журнал обліку та має таку структуру:
CREATE TABLE accounting (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
userid int(10) unsigned DEFAULT '0' NOT NULL,
metodid int(10) unsigned DEFAULT '0' NOT NULL,
acctnumber int(8) unsigned DEFAULT '1' NOT NULL,
acctmaxdays int(4) unsigned DEFAULT '7' NOT NULL,
acctstartdate date DEFAULT '0000-00-00' NOT NULL,
acctstopdate date DEFAULT '0000-00-00' NOT NULL,
acctdocument varchar(20),
PRIMARY KEY (id),
KEY userid (userid,acctstartdate,acctstopdate),
KEY metodid (metodid)
);

4. Таблиці “ metodtypes”а “ groups” є службовими і забезпечують гнучкість


змінення классифікаційноі системи методичних матеріалів та додавання
додаткових груп. Ці таблиці мають таку структуру та наповнення:

CREATE TABLE groups (


id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
name varchar(10) DEFAULT '' NOT NULL,
expire datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
admin int(1) DEFAULT '0' NOT NULL,
PRIMARY KEY (id),
KEY name (name)
);
INSERT INTO groups VALUES (1,'admins','0000-00-00 00:00:00',1);
INSERT INTO groups VALUES (2,'КС-00-1','2005-09-01 00:00:00',0);

CREATE TABLE metodtypes (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
name varchar(50) DEFAULT '' NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO metodtypes VALUES (1,'Лабораторные работы');
INSERT INTO metodtypes VALUES (2,'Самостоятельные работы');
INSERT INTO metodtypes VALUES (3,'Практические работы');
INSERT INTO metodtypes VALUES (4,'Курсовые работы');
INSERT INTO metodtypes VALUES (5,'Дипломное проектирование');
INSERT INTO metodtypes VALUES (6,'Справочные материалы');
INSERT INTO metodtypes VALUES (7,'CD');

Лист

12
Зм. Лист № докум. Підпис Дата
2.5.1.1 Зв’язок таблиць

Об’єднання – це зв’язок між полем однієї таблиці або запиту з полем


іншої таблиці або запиту, які мають однаковий тип даних. Об’єднання
визначає взаємозв’язок даних в додатку.
Для об’єднання полів таблиць або запитів використовується клас табличних
виразів, які називаються „табличні вирази зі з’єднаннями” (join-table-
expression), які можливо використовувати у розділі FROM. Такі табличні
вирази будуються на основі базових і/або представлених таблиць на основі
використовування різних видів операцій з’єднання: CROSS JOIN (Декартові
добутки), INNER (просте з’єднання), LEFT и LEFT OUTER (ліве і ліве
зовнішнє з’єднання), RIGHT и RIGHT OUTER (праве і праве зовнішнє
з’єднання), FULL и FULL JOIN (повне і повне зовнішнє з’єднання) и UNION
(з’єднання). Використання табличних виразів зі з’єднаннями виконує повне
об’єднання таблиць чи запитів без використання індексів.
У нашому випадку використовується з’єднання основних таблиць зі
службовими з типом зв’язку багато-до-одного та таблиць-списків з обліковою
таблицею з типом зв’язку один-до-багатьох.
Зв’язок основних таблиць зі службовими дозволяє абстрагуватися від
ідентификаційних номерів класифікаційних груп та груп користувачів і
оперувати самими їх символьними позначеннями.
Зв’язки основних таблиць між собою зумовлені структурою
інформаційно-логічної моделі.
Наприклад, для виведення всіх користувачів, які отримували методичні
матеріали 22 грудня 2002 року можна використати запит:
SELECT users.name,
groups.name,
metods.name
FROM accounting
RIGHT JOIN users ON accounting.userid=users.id
RIGHT JOIN metods ON accounting.metodid=metods.id,
users RIGHT JOIN groups ON users.groupid=groups.id,
metods RIGHT JOIN metodtypes ON metods.typeid=metodtypes.id,
metodtypes,
groups
WHERE accounting.acctstartdate='2002-12-22';
Лист

13
Зм. Лист № докум. Підпис Дата
2.5.1.2 Підключення до бази даних

Підключення до бази даних із php-скрипту, який виконується на


сервері, здійснюється за допомогою методів модуля mysql. Для цього нам
необхідно в скрипті написати код, який виконує підключення:
$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB

Об’єкт $dbh встановлює підключення до бази даних та


використовується пізніше для здобування результатів з бази даних. Цьому
методу віддають перевагу, якщо необхідно точно настроїти спосіб
встановлення сполучення з базою даних.
За замовчанням підключення закривається після завершення виконання
сценарія. Однак, явно закрив підключення в сценарії, як тільки воно більше
непотрібно, тим самим ми скоротимо число запитів до серверу баз даних та
зробимо підключення доступним для інших користувачів.
msql_close($dbh);

Лист

14
Зм. Лист № докум. Підпис Дата
2.5.2 Інтерфейс користувача

При запуску проекту першою запускається сторінка “Учет методических


материалов”, на якій здійснюється перегляд списку студентів, яким було
видано методичні матеріали, а також передбачені наступні дії : додавання,
редагування, вилучення записів про студентів, здійснюється пошук.

На сторінці “Студенти” здійснюється перегляд даних про студентів.


Передбачені наступні дії : додавання студента до списку, редагування, а також
вилучення.

Лист

Зм. Лист № докум. Підпис Дата


На сторінці “Методические материалы” здійснюється перегляд даних про
методичні матеріали. Передбачені наступні дії : додавання до списку,
редагування, а також вилучення.

Лист

Зм. Лист № докум. Підпис Дата


2.5.3 Короткий опис внутрішньої структури додатку

accounting.php - На цій сторінці відображаються дані про студентів та методичні


матеріали які знаходяться у них.
<?
include "config.php";
include "misc.inc.php";

extract($_GET); // GET variables

$sel_user = html_decode($sel_user);
$sel_metod = html_decode($sel_metod);
$sel_acctnumber = html_decode($sel_acctnumber);
$sel_acctmaxdays = html_decode($sel_acctmaxdays);
$sel_acctstartdate = html_decode($sel_acctstartdate);
$sel_acctstopdate = html_decode($sel_acctstopdate);
$sel_acctdocument = html_decode($sel_acctdocument);

if ($order == "") $order="user";


if ($direct == "") $direct="asc";

$inv_dir=($direct=="asc")?"desc":"asc";
?>
<html>
<head>
<link href="style.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<script language="JavaScript" type="text/javascript">
<!--
function view_metod(id) {
myWin=window.open('view_metod.php?id='+id,0,
"width=300,height=250,status=no,toolbar=no,menubar=no,scrollbars=yes,
resizable=no");
}
function view_user(id) {
myWin=window.open('view_user.php?id='+id,0,
"width=300,height=250,status=no,toolbar=no,menubar=no,scrollbars=yes,
resizable=no");
}
function filter_user(user) {
document.acct_filter.txt_user.value=user;
document.acct_filter.submit();
}
function filter_metod(metod) {
document.acct_filter.txt_metod.value=metod;
document.acct_filter.submit();
}
-->
</script>
</head>

<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>


<center>
<h1>Учет методических материалов</h1>
<br>
<table width='100%' border='0' cellspacing='1' cellpadding='2'>
<!-- Header start -->
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b><a href="?order=user&direct=<?
get_dir("user"); ?>">Пользователь</a></b><? dir_arrow("user"); ?></td>
<td align='center' nowrap><b><a href="?order=metod&direct=<?
get_dir("metod"); ?>">Методический материал</a></b><? dir_arrow("metod"); ?
></td>
Лист
Лист

Зм. Лист № докум. Підпис Дата


Зм. Лист № докум. Підпис Дата
<td align='center' nowrap><b><a href="?order=acctnumber&direct=<?
get_dir("acctnumber"); ?>">Кол-во</a></b><? dir_arrow("acctnumber"); ?></td>
<td align='center' nowrap><b><a href="?order=acctmaxdays&direct=<?
get_dir("acctmaxdays"); ?>">Срок</a></b><? dir_arrow("acctmaxdays"); ?></td>
<td align='center' nowrap><b><a
href="?order=acctstartdate&direct=<? get_dir("acctstartdate"); ?>">Дата
выдачи</a></b><? dir_arrow("acctstartdate"); ?></td>
<td align='center' nowrap><b><a
href="?order=acctstopdate&direct=<? get_dir("acctstopdate"); ?>">Дата
сдачи</a></b><? dir_arrow("acctstopdate"); ?></td>
<td align='center' nowrap><b><a
href="?order=acctdocument&direct=<? get_dir("acctdocument"); ?
>">Документ</a></b><? dir_arrow("acctdocument"); ?></td>
<td colspan='2' align='center'>&nbsp;<a
href='add_accounting.php'><b><img alt="Add accounting" title="Выдача
методических пособий" border="0"
src="img/button_insert.png"></b></a>&nbsp;</td>
</tr>
<!-- Header end -->

<?
$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to
MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB

if($id != "") {
mysql_query("INSERT INTO archive SELECT * FROM accounting WHERE
id='$id'") and
mysql_query("UPDATE archive SET acctstopdate=CURDATE() WHERE
id='$id'") and
mysql_query("DELETE FROM accounting WHERE id='$id'");
}

$where = "1";

if($txt_user != "") $where .= " AND CONCAT(users.name,' ',users.initials)


$sel_user '$txt_user'";
if($txt_metod != "") $where .= " AND
CONCAT('\"',metods.name,'\"<br>&nbsp;',metods.author) $sel_metod
'$txt_metod'";

if($txt_acctnumber != "") $where .= " AND acctnumber $sel_acctnumber


'$txt_acctnumber'";
if($txt_acctmaxdays != "") $where .= " AND maxdays $sel_maxdays
'$txt_maxdays'";
if($txt_acctstartdate != "")$where .= " AND acctstartdate
$sel_acctstartdate '$txt_acctstartdate'";
if($txt_acctstopdate != "") $where .= " AND acctstopdate
$sel_acctstopdate '$txt_acctstopdate'";
if($txt_acctdocument != "") $where .= " AND acctdocument
$sel_acctdocument '$txt_acctdocument'";

$sql = "SELECT accounting.id,


accounting.userid,
accounting.metodid,
CONCAT(users.name,' ',users.initials) AS user,
CONCAT('\"',metods.name,'\"<br>&nbsp;',metods.author) AS
metod,
accounting.acctnumber,
accounting.acctmaxdays,
accounting.acctstartdate,
accounting.acctstopdate,
accounting.acctdocument,

Лист

Зм. Лист № докум. Підпис Дата


(NOW() > DATE_ADD(accounting.acctstartdate, INTERVAL
accounting.acctmaxdays DAY)) as debtor
FROM accounting
LEFT JOIN users ON accounting.userid=users.id
LEFT JOIN metods ON accounting.metodid=metods.id
WHERE $where
ORDER BY $order $direct";
$result = mysql_query($sql) or die(mysql_errno() . ": " . mysql_error() .
"\n");

if (mysql_num_rows($result) == 0) {
echo "<tr><td align='center' colspan='13'><b><font color='red'>No rows
found, nothing to print so am exiting</font></b></td></tr>";
} else {
while ($row = mysql_fetch_assoc($result)){
$bgcolor = ($row["debtor"])?"#FFDFDF":"#DFDFDF";
?>
<tr bgcolor='<? echo $bgcolor; ?>'>
<td align='left'>
<table border="0">
<tr>
<td width="150"><? echo $row["user"]; ?></td>
<td width="20" align="right">
<a title="Просмотр параметров пользователя"
href="javascript:view_user(<? echo $row["userid"]; ?>)"><img border="0"
alt="Properties" src="img/button_properties.png"></a><br><br>
<a title="Фильтр по имени пользователя"
href="javascript:filter_user(<? echo
"'".htmlspecialchars($row["user"])."'"; ?>)"><img border="0" alt="Filter"
src="img/button_find.png"></a>
</td>
</tr>
</table>
</td>
<td align='left'>
<table border="0">
<tr>
<td width="250"><? echo $row["metod"]; ?></td>
<td width="20" align="right">
<a href="javascript:view_metod(<? echo
$row["metodid"]; ?>)"><img border="0" alt="Properties"
src="img/button_properties.png"></a><br><br>
<a href="javascript:filter_metod(<? echo
"'".htmlspecialchars($row["metod"])."'"; ?>)"><img border="0" alt="Filter"
src="img/button_find.png"></a>
</td>
</tr>
</table>
</td>
<td align='center'><? echo $row["acctnumber"]; ?></td>
<td align='center'><? echo $row["acctmaxdays"]; ?></td>
<td align='center' nowrap><? echo $row["acctstartdate"]; ?></td>
<td align='center' nowrap><? echo $row["acctstopdate"]; ?></td>
<td align='left'><? echo $row["acctdocument"]; ?></td>
<td align='center'>&nbsp;<a href='edit_accounting.php?id=<? echo
$row["id"]; ?>'><img alt="Edit accounting" title="Редактирование
методического пособия" border="0" src="img/button_edit.png"></a>&nbsp;</td>
<td align='center'>&nbsp;<a href="javascript:if (confirm('Вы
действительно хотите удалить эту запись?'))
{document.location='accounting.php?id=<? echo $row["id"]; ?>';}"><img
alt="Delete accounting" title="Возврат методического пособия" border="0"
src="img/button_drop.png"></a>&nbsp;</td>
</tr>
<?}

Лист

Зм. Лист № докум. Підпис Дата


}
mysql_free_result($result);
mysql_close($dbh); // Close connection
?>
</table>
<br>
<br>
<table border='0' cellspacing='1' cellpadding='2'>
<!-- Header start -->
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b>Поле</b></td>
<td align='center' nowrap><b>Функция</b></td>
<td align='center' nowrap><b>Значение</b></td>
</tr>
<form method="get" name="acct_filter">
<?
print_txt_field("Пользователь", "user");
print_txt_field("Методический метериал", "metod");
print_num_field("Количество", "acctnumber");
print_num_field("Срок (дней)", "acctmaxdays");
print_txt_field("Дата выдачи", "acctstartdate");
print_txt_field("Дата cдачи", "acctstopdate");
print_txt_field("Документ", "acctdocument");
?>
<tr bgcolor="#dfdfdf"><td colspan="3" align="center"><input type="Submit"
value="Поиск"></tr>
</form>
</table>
<br>
</body>
</html>

metods.php - На цій сторінці відображаються дані методичні матеріали .


<?
include "config.php";
include "misc.inc.php";

extract($_GET); // GET variables

$sel_name = html_decode($sel_name);
$sel_author = html_decode($sel_author);
$sel_type = html_decode($sel_type);
$sel_mdate = html_decode($sel_mdate);
$sel_num = html_decode($sel_num);

if ($order == "") $order="name";


if ($direct == "") $direct="asc";

$inv_dir=($direct=="asc")?"desc":"asc";
?>
<html>
<head>
<link href="style.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
</head>

<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>


<center>
<h1>Методические материалы</h1>
<br>
<table width='100%' border='0' cellspacing='1' cellpadding='2'>
<!-- Header start -->
<tr bgcolor='#c0c0c0'>

Лист

Зм. Лист № докум. Підпис Дата


<td align='center' nowrap><b><a href="?order=name&direct=<?
get_dir("name"); ?>">Название</a></b><? dir_arrow("name"); ?></td>
<td align='center' nowrap><b><a href="?order=author&direct=<?
get_dir("author"); ?>">Автор(ы)</a></b><? dir_arrow("author"); ?></td>
<td align='center' nowrap><b><a href="?order=type&direct=<?
get_dir("type"); ?>">Тип</a></b><? dir_arrow("type"); ?></td>
<td align='center' nowrap><b><a href="?order=mdate&direct=<?
get_dir("mdate"); ?>">Дата</a></b><? dir_arrow("mdate"); ?></td>
<td align='center' nowrap><b><a href="?order=num&direct=<?
get_dir("num"); ?>">Кол-во</a></b><? dir_arrow("num"); ?></td>
<td colspan='2' align='center'>&nbsp;<a
href='add_metod.php'><b><img alt="Add metod" title="Добавить методическое
пособие" border="0" src="img/button_insert.png"></b></a>&nbsp;</td>
</tr>
<!-- Header end -->

<?
$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to
MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB

if($id != "") mysql_query("DELETE FROM metods WHERE id='$id'");

$where = "1";

if($txt_name != "") $where .= " AND name $sel_name '$txt_name'";


if($txt_author != "") $where .= " AND author $sel_author '$txt_author'";
if($txt_type != "") $where .= " AND type $sel_type '$txt_type'";
if($txt_mdate != "") $where .= " AND `mdate` $sel_mdate '$txt_mdate'";
if($txt_num != "") $where .= " AND num $sel_num '$txt_num'";

$sql = "SELECT * FROM metods WHERE $where ORDER BY $order $direct";


$result = mysql_query($sql) or die(mysql_errno() . ": " . mysql_error() .
"\n");

if (mysql_num_rows($result) == 0) {
echo "<tr><td align='center' colspan='13'><b><font color='red'>No rows
found, nothing to print so am exiting</font></b></td></tr>";
} else {
$i = 0;
while ($row = mysql_fetch_assoc($result)){
if ((++$i)%2) $bgcolor="#DFDFDF"; else $bgcolor="#EFEFEF";
?>
<tr bgcolor='<? echo $bgcolor; ?>'>
<td align='left'>
<a href="add_accounting?<? echo
"metod_id=".$row["id"]."&txt_metodid=".urlencode($row["name"]." -
".$row["author"]); ?>">
<? echo $row["name"]; ?>
</a>
</td>
<td align='left'><? echo $row["author"]; ?></td>
<td align='center'><? echo $row["type"]; ?></td>
<td align='center' nowrap><? echo $row["mdate"]; ?></td>
<td align='center'><? echo $row["num"]; ?></td>
<td align='center'>&nbsp;<a href='edit_metod.php?id=<? echo
$row["id"]; ?>'><img alt="Edit metod" title="Редактирование методического
пособия" border="0" src="img/button_edit.png"></a>&nbsp;</td>
<td align='center'>&nbsp;<a href="javascript:if (confirm('Вы
действительно хотите удалить эту запись?'))
{document.location='metods.php?id=<? echo $row["id"]; ?>';}"><img alt="Delete
metod" title="Удаление методического пособия" border="0"
src="img/button_drop.png"></a>&nbsp;</td>
</tr>

Лист

Зм. Лист № докум. Підпис Дата


<?}
}
mysql_free_result($result);
mysql_close($dbh); // Close connection
?>
</table>
<br>
<br>
<table border='0' cellspacing='1' cellpadding='2'>
<!-- Header start -->
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b>Поле</b></td>
<td align='center' nowrap><b>Функция</b></td>
<td align='center' nowrap><b>Значение</b></td>
</tr>
<form method="get">
<?
print_txt_field("Название", "name");
print_txt_field("Автор(ы)", "author");
print_select_field("Тип", "type", $metod_types);
print_txt_field("Дата издания:", "mdate");
print_num_field("Количество", "num");
?>
<tr bgcolor="#dfdfdf"><td colspan="3" align="center"><input type="Submit"
value="Поиск"></tr>
</form>
</table>
<br>
</body>
</html>

viev_metod.php - На цій сторінці відображаються дані про методичний


матеріал.
<?
include "config.php";

$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to


MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB

extract($_GET);
?>
<html>
<head>
<link href="style.css" group="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<title> Данные о методическом материале</title>
</head>
<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>
<center>
<?
$res = mysql_query("SELECT * FROM metods WHERE id='$id'");
$row = mysql_fetch_assoc($res);
mysql_free_result($res);
mysql_close($dbh);
?>
<table border='0' cellspacing='1' cellpadding='2' width="100%">
<tr bgcolor="#CFCFCF"><th colspan="2"><b> Автор(ы):</b></th></tr>
<tr bgcolor="#FFFFFF"><td><b> Название: (û):</b></td><td><? echo
$row["author"]; ?></td></tr>
<tr bgcolor="#FFFFFF"><td><b> Тип материала:</b></td><td><? echo $row["name"];
?></td></tr>
<tr bgcolor="#FFFFFF"><td><b> Дата публикации::</b></td><td><? echo
$row["type"]; ?></td></tr>
<tr bgcolor="#FFFFFF"><td><b> Количество: </b></td><td><? echo
$row["mdate"]; ?></td></tr>
<tr bgcolor="#FFFFFF"><td><b> Количество: :</b></td><td><? echo $row["num"];
?></td></tr>
<tr bgcolor="#FFFFFF"><td colspan="2" align="center"><input type="Submit"
value=" Close " onclick='javascript:window.close()'></td></tr>
</table>
</center>
</body>
</html>

viev_user.php - На цій сторінці відображаються дані про студентів.


<?
include "config.php";

$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to


MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB

extract($_GET);
?>
<html>
<head>
<link href="style.css" group="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<title>Данные о пользователе</title>
</head>
<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>
<center>
<?
$res = mysql_query("SELECT * FROM users WHERE id='$id'");
$row = mysql_fetch_assoc($res);
mysql_free_result($res);
mysql_close($dbh);
?>
<table border='0' cellspacing='1' cellpadding='2' width="100%">
<tr bgcolor="#CFCFCF"><th colspan="2"><b>Данные о пользователе</b></th></tr>
<tr bgcolor="#FFFFFF"><td><b>Фамилия:</b></td><td><? echo $row["name"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Инициалы:</b></td><td><? echo
$row["initials"]; ?></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Группа:</b></td><td><? echo $row["group"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Адрес:</b></td><td><? echo $row["address"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Телефон:</b></td><td><? echo $row["phone"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>E-Mail:</b></td><td><? echo $row["email"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Заметки:</b></td><td><? echo $row["note"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td colspan="2" align="center"><input type="Submit"
value=" Close " onclick='javascript:window.close()'></td></tr>
</table>
</center>
</body>
</html>

user.php - На цій сторінці відображаються дані про студентів реалізовано


пошук та сортування .
<?
Лист

Зм. Лист № докум. Підпис Дата


include "config.php";
include "misc.inc.php";

extract($_GET); // GET variables

$sel_name = html_decode($sel_name);
$sel_initials = html_decode($sel_initials);
$sel_group = html_decode($sel_group);
$sel_address = html_decode($sel_address);
$sel_phone = html_decode($sel_phone);
$sel_email = html_decode($sel_email);
$sel_note = html_decode($sel_note);

if ($order == "") $order="name";


if ($direct == "") $direct="asc";

$inv_dir=($direct=="asc")?"desc":"asc";
?>
<html>
<head>
<link href="style.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
</head>

<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>


<center>
<h1>Студенты и преподаватели (пользователи)</h1>
<br>
<table width='100%' border='0' cellspacing='1' cellpadding='2'>
<!-- Header start -->
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b><a href="?order=name&direct=<?
get_dir("name"); ?>">Фамилия</a></b><? dir_arrow("name"); ?></td>
<td align='center' nowrap><b><a href="?order=initials&direct=<?
get_dir("initials"); ?>">Инициалы</a></b><? dir_arrow("initials"); ?></td>
<td align='center' nowrap><b><a href="?order=group&direct=<?
get_dir("group"); ?>">Группа</a></b><? dir_arrow("group"); ?></td>
<td align='center' nowrap><b><a href="?order=address&direct=<?
get_dir("address"); ?>">Адрес</a></b><? dir_arrow("address"); ?></td>
<td align='center' nowrap><b><a href="?order=phone&direct=<?
get_dir("phone"); ?>">Телефон</a></b><? dir_arrow("phone"); ?></td>
<td align='center' nowrap><b><a href="?order=email&direct=<?
get_dir("email"); ?>">E-Mail</a></b><? dir_arrow("email"); ?></td>
<td align='center' nowrap><b><a href="?order=note&direct=<?
get_dir("note"); ?>">Заметки</a></b><? dir_arrow("note"); ?></td>
<td colspan='2' align='center'>&nbsp;<a
href='add_users.php'><b><img alt="Add users" title="Добавить пользователя"
border="0" src="img/button_insert.png"></b></a>&nbsp;</td>
</tr>
<!-- Header end -->
<?
$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to
MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB

if($id != "") mysql_query("DELETE FROM users WHERE id='$id'");

$where = "1";

if($txt_name != "") $where .= " AND name $sel_name '$txt_name'";


if($txt_initials != "") $where .= " AND initials $sel_initials
'$txt_initials'";
if($txt_group != "") $where .= " AND `group` $sel_group
'$txt_group'";

Лист

Зм. Лист № докум. Підпис Дата


if($txt_address != "") $where .= " AND address $sel_address
'$txt_address'";
if($txt_phone != "") $where .= " AND phone $sel_phone
'$txt_phone'";
if($txt_email != "") $where .= " AND email $sel_email
'$txt_email'";
if($txt_note != "") $where .= " AND note $sel_note '$txt_note'";

$sql = "SELECT * FROM users WHERE $where ORDER BY '$order' $direct";


$result = mysql_query($sql) or die(mysql_errno() . ": " . mysql_error() .
"\n");

if (mysql_num_rows($result) == 0) {
echo "<tr><td align='center' colspan='13'><b><font color='red'>No rows
found, nothing to print so am exiting</font></b></td></tr>";
} else {
$i = 0;
while ($row = mysql_fetch_assoc($result)){
if ((++$i)%2) $bgcolor="#DFDFDF"; else $bgcolor="#EFEFEF";
?>
<tr bgcolor='<? echo $bgcolor; ?>'>
<td align='left' nowrap>
<a href="add_accounting.php?<? echo
"user_id=".$row["id"]."&txt_userid=".urlencode($row["name"]."
".$row["initials"]); ?>">
<? echo $row["name"]; ?>
</a>
</td>
<td align='left'><? echo $row["initials"]; ?></td>
<td align='center' nowrap><? echo $row["group"]; ?></td>
<td align='center'><? echo $row["address"]; ?></td>
<td align='center'><? echo $row["phone"]; ?></td>
<td align='center'><? echo $row["email"]; ?></td>
<td align='center'><? echo $row["note"]; ?></td>
<td align='center'>&nbsp;<a href='edit_users.php?id=<? echo
$row["id"]; ?>'><img alt="Edit users" title="Редактирование информации о
пользователе" border="0" src="img/button_edit.png"></a>&nbsp;</td>
<td align='center'>&nbsp;<a href="javascript:if (confirm('Вы
действительно хотите удалить эту запись?'))
{document.location='users.php?id=<? echo $row["id"]; ?>';}"><img alt="Delete
users" title="Удаление пользователя" border="0"
src="img/button_drop.png"></a>&nbsp;</td>
</tr>
<?
}
}
mysql_free_result($result);
mysql_close($dbh); // Close connection
?>
</table>
<br>
<br>
<table border='0' cellspacing='1' cellpadding='2'>
<!-- Header start -->
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b>Поле</b></td>
<td align='center' nowrap><b>Функция</b></td>
<td align='center' nowrap><b>Значение</b></td>
</tr>
<form method="get">
<?
print_txt_field("Фамилия", "name");
print_txt_field("Инифиалы", "initials");
print_txt_field("Группа:", "group");
Лист

Зм. Лист № докум. Підпис Дата


print_txt_field("Адрес:", "address");
print_txt_field("Телефон:", "phone");
print_txt_field("E-Mail:", "email");
print_txt_field("Заметки:", "note");
?>
<tr bgcolor="#dfdfdf"><td colspan="3" align="center"><input type="Submit"
value="Поиск"></tr>
</form>
</table>
<br>
</body>
</html>
add_user.php(metod accounting) - На ціх сторінках реалізоване додавання до
баз студентів (методичних матеріалів).
<?
include "config.php";
include "misc.inc.php";

$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to


MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB

extract($_GET);
if ($action == "save") {
$val =
"'$txt_name','$txt_initials','$txt_group','$txt_address','$txt_phone','$txt_e
mail','$txt_note'";
$sql = "INSERT INTO
users(id,name,initials,`group`,address,phone,email,note) VALUES('',$val)";
// var_dump($sql);
mysql_query($sql);
header("Location: users.php");
exit;
}
?>
<html>
<head>
<link href="style.css" group="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
</head>
<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>
<center>
<br>
<br>
<br>
<table border='0' cellspacing='1' cellpadding='2'>
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b>Поле</b></td>
<td align='center' nowrap"><b>Значение</b></td>
</tr>
<form method="get"">
<input type="hidden" name="action" value="save">
<?
print_empty_field("Фамилия", "name", $row["name"]);
print_empty_field("Инициалы", "initials", $row["initials"]);
print_empty_field("Группа", "group", $row["group"]);
print_empty_field("Адрес", "address", $row["address"]);
print_empty_field("Телефон", "phone", $row["phone"]);
print_empty_field("E-Mail", "email", $row["email"]);
print_empty_field("Заметки", "note", $row["note"]);
?>
<tr bgcolor="#dfdfdf"><td colspan="2" align="center"><input type="Submit"
value="Применить"></tr>

Лист

Зм. Лист № докум. Підпис Дата


<tr bgcolor="#dfdfdf"><td colspan="2" align="center"><input type="Reset"
value="Восстановить"></tr>
</form>
</table>
</center>
</body>
</html>
edit_user.php(metod accounting) - На ціх сторінках реалізоване редагування
баз студентів (методичних матеріалів).
<?
include "config.php";
include "misc.inc.php";

$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to


MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB

extract($_GET);
if ($action == "save" && $id != "") {
$set = "name='$txt_name', initials='$txt_initials',
`group`='$txt_group', address='$txt_address', phone='$txt_phone',
email='$txt_email', note='$txt_note'";
$sql = "UPDATE users SET $set WHERE id=".$id;
mysql_query($sql);
header("Location: users.php");
exit;
}
?>
<html>
<head>
<link href="style.css" group="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
</head>
<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>
<center>
<br>
<br>
<br>
<table border='0' cellspacing='1' cellpadding='2'>
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b>Поле</b></td>
<td align='center' nowrap"><b>Значение</b></td>
</tr>
<?
$sql= "select * FROM users WHERE id='$id'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
?>
<form method="get"">
<input type="hidden" name="id" value="<? echo $id; ?>">
<input type="hidden" name="action" value="save">
<?
print_field("Фамилия", "name", $row["name"]);
print_field("Инициалы", "initials", $row["initials"]);
print_field("Группа", "group", $row["group"]);
print_field("Адрес", "address", $row["address"]);
print_field("Телефон", "phone", $row["phone"]);
print_field("E-Mail", "email", $row["email"]);
print_field("Заметки", "note", $row["note"]);
?>
<tr bgcolor="#dfdfdf"><td colspan="2" align="center"><input type="Submit"
value="Применить"></tr>
<tr bgcolor="#dfdfdf"><td colspan="2" align="center"><input type="Reset"
Лист

Зм. Лист № докум. Підпис Дата


value="Восстановить"></tr>
</form>
</table>
</center>
</body>
</html>

2.6 Інструкція користувачу


2.6.1 Запуск додатка на боці сервера.
Для нормального функционування створеної системи на сервері потрібно
настроїти 2 сервери: веб та SQL:
А. Настройка веб-сервера Apache
1) За замовченням Apache автоматично створює веб-узел з корнем у
/var/www.
2) Потрібно покласти файл km-admin.cgi, у каталог /usr/lib/cgi-bin та

указати в ньому шлях до конфігураційного файлу.


Б. Настройка SQL-сервера MySQL:
1) Потрібно створити базу kis_metod:

# mysql–u root –p
Enter password: <admin password here>

> CREATE kis_metod;
> GRANT ALL PRIVILIGES ON kis_metod.* to kis_metod
IDENTIFIED BY ‘<kis_metod password here>’;
> flush privileges;
> quit
#
2) Створити таблиці в базі даних kis_metod:

# mysql–u root –p < kis_metod.sql


Enter password: <admin password here>
#

Лист

Зм. Лист № докум. Підпис Дата


3) Змінити конфігураційний файл відповідно до введених при
створенні бази даних (пароль до бази та ім’я серверу).

2.6.2 Запуск і закриття додатка на боці клієнта

Необхідно завантажити браузер. Для доступу до додатку з


локальної мережі у строчці адресу браузеру необхідно
вказати адрес серверу (або ip) на якому встановлено apache,
та шлях безпосередньо до скрипту (/cgi-bin/km-admin.cgi).
Після вводу адреси необхідно натиснути Enter. І, якщо адреса
вказана вірно, браузер зв'язується з сервером і завантажує
першу сторінку додатку.

Лист

Зм. Лист № докум. Підпис Дата


Висновки

Розроблений додаток дає користувачеві наступні можливості:


• Дозволяє одержувати, редагувати, добавляти і видаляти інформацію про
користувачів методичного кабінету та методичні матеріали.
• Дозволяє вести облік руху методичних матеріалів;
• Дозволяє швидко знайти боржників методичного кабінету з метою
своєчасного повернення літератури та методичних матеріалів.

Система має достатньо зручний та насичений інтерфейс, який дозволяє


швидко та оперативно виконувати потрібні оператору операції, що зменшує
навантаження на людину й запобігає віникненню помилок, викликаних
втомою від монотонної праці. Завдяки використанню серверу баз даних,
можливе використання накопиченої інформації в адміністративних цілях або
створення системи моніторингу активності методичного кабінету.
Слід, також, зазначити, что завдяки використанню скриптової мови
програмування та Веб-технологій, є можливість швидкої модифікації системи
як в плані перенесення на іншу платформу, так і в плані модернізації
структури самого додатку.

Лист

Зм. Лист № докум. Підпис Дата


Список використаної літератури

1. Пеньковий А.П., Хабло Т.В., Хабло Г.П. Методичні вказівки до лабораторних робіт з
курсу “СУБД Visual FoxPro”, частина 1,2 – Кременчук: КДПУ, 2000 – 59с., 70с.
2. Хабло Т.В.,Грищенко Л.О., Олійников І.М. Методичні вказівки до до виконання
курсових робіт з дисципліни “Організація баз данних та знань” – Кременчук: КДПУ,
2002 – 85с.
3. Official Perl 5 Documentation (http://www.perldoc.com/).
4. Documentation for DBI perl module (perldoc DBI).

Лист

Зм. Лист № докум. Підпис Дата

You might also like