Учебная работа. Курсовая работа: Создание сайта Библиотека онлайн

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Курсовая работа: Создание сайта Библиотека онлайн

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное образовательное учреждение

высшего проф образования

«Чувашский муниципальный институт им. И.Н. Ульянова»

Факультет информатики и вычислительной техники

Кафедра «Информационно-вычислительных систем»

Дисциплина «Базы данных»

Объяснительная записка к курсовой работе

Тема: «библиотека«

Выполнил:

студент гр. ИВТ 12-05

Никитин А.Е.

Проверил:

Буланкина Е.Ю.

Чебоксары 2008


Содержание

1. Задание

2. анализ. Предметная область

2.1 Список и описание функций приложения обработки базы данных

2.2 Список и описание сущностей и атрибутов базы данных

3. Проектирование. Нормализация базы данных. Схема данных

3.1 Описание нормализации базы данных (способом ER-диаграмм)

3.2 Схема данных

3.3 Список и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице

4. Программная часть. Управление программера

4.1 Воззвание к программке

4.2 Входные и выходные данные

4.2.1 Словесное описание

4.2.2 Описание функций

5. Сопровождение. Управление юзера

5.1 Просмотр веб-сайта

5.2 Описание

6. Перечень использованной литературы

7. приложение


1. Задание




библиотека

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

В библиотеке ведется картотека читателей.

На всякого читателя в картотеку заносятся последующие сведения:

Фамилия, имя , Отчество

домашний адресок

телефон (Будем считать, что у нас два телефона — рабочий и домашний)

дата рождения

Любому читателю присваивается неповторимый номер читательского билета.

Любой читатель может сразу держать на руках не наиболее 5 книжек. Читатель не должен сразу держать наиболее 1-го экземпляра книжки 1-го наименования.

Любая книжка, хранящаяся в библиотеке, характеризуется последующими параметрами:

неповторимый шифр

заглавие

фамилия создателя (может отсутствовать)

фамилии соавторов (могут отсутствовать)

пространство издания (город)

издательство

год издания

количество страничек.

количество экземпляров книжки в библиотеке

Любая книжка в библиотеке может находиться в нескольких экземплярах. Любой экземпляр имеет последующие свойства:

неповторимый инвентарный номер

шифр книжки, который совпадает с неповторимым шифром из описания книжек

присутствие в библиотеке.

В случае отсутствия данного экземпляра книжки должны быть записаны последующие сведения:

номер билета читателя, который брал книжку

дата выдачи книжки

дата возврата.

Любой экземпляр книжки может находиться на руках лишь у 1-го читателя.

Предугадать последующие ограничения на информацию в системе:

Не быть может инфы о соавторах, если нет инфы о создателе. Книжка может не иметь ни создателя, ни соавтора.

В библиотеке должны быть записаны читатели не молодее 17 лет.

В библиотеке находятся книжки, изданные начиная с 1960 по текущий год

Любой читатель может держать на руках не наиболее 5 книжек.

Любой читатель при регистрации в библиотеке должен отдать телефон для связи он быть может рабочим либо домашним.

Любая область познаний может содержать ссылки на огромное количество книжек, но любая книжка может относиться к разным областям.


2. анализ. Предметная область

2.1 Список и описание функций приложения обработки базы данных

1. Хранение инфы о книжках и читателях.

2. Поиск и просмотр инфы книжек.

3. Хранение инфы о обороте книжек.

4. Просмотр статистики по книжке.

5. Соблюдение ограничений, наложенных библиотекой(количество книжек сразу на руках, читатели не могут быть молодее определенного возраста, книжки с годом издательства не ранее определенного года).

6. Предоставление определённого уровня доступа к неким функциям.

2.2 Список и описание сущностей базы данных

Область познаний:
Это быстрее справочная информация, о ней понятно заглавие и ее неповторимый номер.

Книжка:
О книжке известны заглавие, имена создателей и соавторов (при этом при не поле соавторов не быть может заполнено при пустующем поле создателя), год и пространство издания, издательство, количество страничек и схожих книжек. книжки:
У книжки есть собственный неповторимый инвентарный номер, а так же флаг, ее наличия в библиотеке в данный момент.

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

Читатели:
Нам известен номер читательских билетов, имена, фамилии, отчества, даты рождения, адреса, номера телефонов (или рабочий или домашний).


3. Проектирование. Нормализация базы данных. Схема данных

3.1 Описание нормализации базы данных (способом ER-диаграмм).

Требуется добавить в таблицу «книжки» наружный ключ #Книжки, а в таблицу «Заказы» два наружных ключа «#Читательского билета» и «#Инвентарный». Так же при нормализации дела меж сущностями «Книжка – Область Познаний» мы получим еще одну таблицу, куда войдут первичные ключа каждой из сущностей.


3.2 Схема данных

В итоге получим схему данных

3.3 Список и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице


AreaOfKnowlede

num_aok
Номер области познаний
int(11)
-

name_aok
Названиеобласти познаний
varchar(15)
-

AreaOfKnowledeBook

num_aok
Номер области познаний
int(11)
-

num_book
Номер книжки
int(11)
-

Book

num_book
Номер книжки
int(11)
-

name_book
Заглавие книжки
varchar(100)
-

author
Создатель книжки
varchar(25)

coauthor
Соавторы книжки
varchar(100)
Не быть может заполнен при пустом поле «author»

palace_publ
пространство издания
varchar(25)
-

year_publ
Год издания
year(4)
Не ранее 1960года

publishers
Издательство
varchar(40)
-

amount_pages
Число страничек
int(11)
-

amount
Число схожих книжек
int(11)
-

Books

num_inventory
Инвентарный номер книжки
int(11)
-

num_book
Номер книжки
int(11)
-

presence
Присутствие в библиотеке
int(11)
-

Orders

num_order
Номер заказа книжки
int(11)
-

num_reader
Номер читательского билета
int(11)
-

num_inventory
int(11)
-

date_issue
date
-

date_return
date
-

returned
smallint(6)
-

Readers

num_reader
Номер читательского билета
int(11)
-

surname
Фмилия
varchar(15)
-

name
имя
varchar(15)
-

patronymic_name
Отчество
varchar(15)
-

address
адресок
varchar(50)
-

phone
Номер телефона
varchar(15)
-

birthday
Дата рождения
date
Не молодее 17 лет


4. Программная часть. Управление программера

4.1 Воззвание к программке

Для воззвания к программке есть поля ввода данных и клавиши, а так же гиперссылки для удобства перемещения по веб-сайту

4.2 Входные и выходные данные

4.2.1 Словесное описание

Читателю, зашедшему на данную страничку разрешен только просмотр о библиотеке, просмотр некой ограниченной инфы о книжках, а так же поиск разными способами.

админ либо же библиотекарь, имеет доступ, по средствам ввода пароля, к наиболее широким функциям, таковым как: регистрация / редактирование инфы читателя, добавление / редактирование / удаление книжки, записать/списать книжку на/с читателя, а так же добавление либо удаление области познаний книжек. Так же Библиотекарь может созидать наиболее широкую информацию о книжках, т.е. ее статистику, где она находится и у кого в руках побывала и полную информацию о читателе.

4.2.2 Описание функций

В коде были написаны применены функции класса «Page«:

Функция для установки основного содержимого странички:

function SetContent($newcontent){$this->content=$newcontent;}

Функция для установки заголовка странички:


function SetTitle($newtitle){$this->title=$newtitle;}

Функция для установки отображения странички:

function Display()

{

echo «<html>n<head>n»;

$this -> DisplayTitle();

$this -> DisplayKeywords();

$this -> DisplayStyles();

echo «</head>n»;

$this -> DisplayHeader();

$this -> DisplayMenu($this->subbuttons, $this->buttons);

echo $this->content.»n»;

$this -> DisplayFooter();

echo «</body>n</html>n»;

}

Функция для отображения заголовка странички:

function DisplayTitle(){echo «<title> $this->title </title>n»;}

Функция для отображения головной части странички:

function DisplayHeader()

Функция для отображения меню и подменю странички:


function DisplayMenu($subbtns, $btns)

Функция для отображения нижней и боковой части странички:

function DisplayFooter()

Так же в классе Page были применены функции: Возвращяет true если выбрана страничка с именованием $url:

function IsURLCurrentPage($url)

{

if (strpos($GLOBALS[Script_NAME], $url)==false)

return false;

else

return true;

}

Функциядляотображениякнопок:

function DisplayButton($width, $name, $url, $active = true)

{

if ($active)

{echo «<td align=»center» width=»$width%»><a target="_blank" href=»$url»><font color=»blue»>$name</font></a></td>n»;

}

else {

echo «<td align=»center» width=»$width%»><font color=»blue»><b>$name<b></font></td>n»;

}


5. Сопровождение. Управление юзера

5.1 Просмотр веб-сайта

Просмотр веб-сайта осуществляется с помощью гиперссылок и клавиш.

5.2 Описание

При выполнении хоть какого деяния ваши деяния будут подкрепляться сообщениями. Это могут быть как сообщения о ошибках, так и сообщения о успешном выполнении поставленной задачки


6. Перечень использованной литературы

1. Андрей Шкрыль. Программируем для web-веб-сайта. «БХВ-Петербург», Санкт-Петебург, 2006.

2. Т.Карпова. Базы данных. Модели, разработка, реализация. «Питер», Санкт-Птербург, 2002.

3. Алексей Гончаров. Самоучитель html.

4. А. Качанов, В. Ткаченко, А. Головин. Букварь по PHP и MySQL версия 1.1 (от 16.05.2000)


7. Приложение

Содержание файла «
inc
/
Page
.
inc
«

<?

classPage

{

var $title=»Библиотека: Объявления.»;

var $keywords=»Основная»;

var $content;

var $buttons=array(

«Основная» => «index.php»,

«книжки» => «books.php»,

«юзер» => «users.php»,

«Библиотекарская» => «libry.php»

);

var $subbuttons=array(

array(

«Объявления» => «index.php»,

«информация» => «index_info.php»

),

array(

«Перечень всех книжек» => «books.php»,

«области познаний» => «books_aok.php»,

«Поиск Книжек» => «books_search.php»

),

array(

«Читатель» => «users.php»

),

array(

«логин» => «libry.php»,

«действие» => «libry_add.php»

)

);

//————————————————————

function SetContent($newcontent)

{

$this->content=$newcontent;

}

//————————————————————

function SetTitle($newtitle)

{

$this->title=$newtitle;

}

//————————————————————

function SetKeywords($newkeywords)

{

$this->keywords=$newkeywords;

}

//————————————————————

function SetButtons($newbuttons)

{

$this->buttons=$newbuttons;

}

//————————————————————

function SetSubButtons($newsubbuttons)

{

$this->subbuttons=$newsubbuttons;

}

//————————————————————

function Display()

{

echo «<html>n<head>n»;

$this -> DisplayTitle();

$this -> DisplayKeywords();

$this -> DisplayStyles();

echo «</head>n»;

$this -> DisplayHeader();

$this -> DisplayMenu($this->subbuttons, $this->buttons);

echo $this->content.»n»;

$this -> DisplayFooter();

echo «</body>n</html>n»;

}

//————————————————————

function DisplayTitle()

{

echo «<title> $this->title </title>n»;

}

//————————————————————

function DisplayKeywords()

{

//echo»<META name=»keywords» content=»$this->keywords»>»

echo «<meta HTTP-equiv=»Content-Type» content=»text/html; charset=windows-1251″>n»;

}

//————————————————————

function DisplayStyles()

{

}

//————————————————————

function IsURLCurrentPage($url)

{

if (strpos($GLOBALS[Script_NAME], $url)==false)

{

return false;

}

else {

return true;

}

}

//————————————————————

function DisplayHeader()

{

#echo htmlspecialchars(«»);

echo «<body bgcolor=»#FFFFFF» text=»#000000″>n»;

echo «<table width=»100%» border=»0″ height=»95%» cellspacing=»0″ cellpadding=»0″ bgcolor=»#FFFFFF»>n»;

echo «<tr valign=»Top»>n»;

echo «<td width=»150″>n»;

echo «<table width=»100%» border=»0″ height=»100%» cellspacing=»5″ cellpadding=»0″>n»;

echo «<tr>n»;

echo «<td height=»140″> <a target="_blank" href=»HTTP://www.chebnet.com»><img src=»image/book_logo.jpg» width=»140″ height=»140″ border=»0″></a></td>n»;

echo «</tr>n»;

}

//————————————————————

function DisplayMenu($subbtns, $btns)

{

//—Колонка подменю—

echo «<tr valign=»Top»>n»;

echo «<tdheight=»100%»>n»;

//—Добавляются пункты подменю—

for($i=0; $i<count($btns); $i++)

{

while(list($subname, $suburl) = each($subbtns[$i]))

{

if($this->IsURLCurrentPage(substr($suburl,0,5)))

{

if($this->IsURLCurrentPage($suburl))

{

echo «<font color=»blue» size=»2″><b>$subname</b></font><br>n»;

}

else {

echo «<a target="_blank" href=»$suburl»><font color=»blue» size=»2″>$subname</font></a><br>n»;

}

}

}

}

//—Дорисовывается колонка подменю—

echo » </td>n»;

echo » </tr>n»;

echo » </table>n»;

echo » </td>n»;

echo » <td width=»3″ Background=»image/bg_sadowside.gif»></td>n»;

echo » <td>n»;

//—Отрисовывается центральная колонка—

echo «<table width=»100%» border=»0″ height=»120″ cellspacing=»0″ cellpadding=»0″>n»;

echo «<tr valign=»Top»>n»;

echo «<td height=»110″><img src=»image/book_top.jpg» width=»100%» height=»110″ border=»0″></td>n»;

echo «</tr>n»;

echo «</table>n»;

echo «<table width=»100%» border=»0″ height=»25″ cellspacing=»0″ cellpadding=»0″>n»;

echo «<tr>n»;

#echo «<td width=»2%»></td>n»;

reset($btns);

$width = 98/count($btns);

while (list($name, $url) = each($btns))

{

$this->DisplayButton($width, $name, $url,!$this->IsURLCurrentPage(substr($url,0,5)));

}

echo «</tr>n»;

echo «</table>n»;

echo «<table width=»100%» border=»0″ height=»15″ cellspacing=»0″ cellpadding=»0″>n»;

echo «<tr>n»;

echo «<td Background=»image/bg_shadow_top.gif»></td>n»;

echo «</tr>n»;

echo «</table>n»;

echo «<table width=»100%» border=»0″ cellspacing=»0″ cellpadding=»0″>n»;

echo «<tr valign=»top»>n»;

echo «<td height=»600» Background=»image/bg_circle_left.gif» width=»19″></td>n»;

echo «<td height=»600» Background=»image/bg_rect.gif» text-align=»justify»>n»;

echo «<table width=»100%» border=»0″ height=»100%» cellspacing=»10″>n»;

echo «<tr><td valign=»top»>n»;

}

//————————————————————

function DisplayButton($width, $name, $url, $active = true)

{

if ($active)

{

echo «<td align=»center» width=»$width%»><a target="_blank" href=»$url»><font color=»blue»>$name</font></a></td>n»;

}

else {

echo «<td align=»center» width=»$width%»><font color=»blue»><b>$name<b></font></td>n»;

}

}

//————————————————————

function DisplayFooter()

{

echo «</td></tr>n»;

echo «</table>n»;

echo «</td>n»;

echo «<td height=»600» Background=»image/bg_circle_rigth.gif» width=»22″></td>n»;

echo «</tr>n»;

echo «</table>n»;

echo «<table width=»100%» border=»0″ height=»15″ cellspacing=»0″ cellpadding=»0″>n»;

echo «<tr>n»;

echo «<td height=»15» Background=»image/bg_shadow_buttom.gif»></td>n»;

echo «</tr>n»;

echo «</table>n»;

echo «</td>n»;

echo «<td width=»150″><center><font size=»2″>»;

echo «<form method=»post» action=»users.php»>n»;

echo «<table>n»;

echo «<tr><td valign=»top» colspan=»2″ height=»140″><font size=»2″><center>».date(«jS F Y»).»</center></font></td></tr>n»;

echo «<tr><td width=»2″></td><td>n»;

echo «</td></tr>n</table>n»;

echo «</form>n»;

echo «</font></center></td>n»;

echo «</tr>n»;

echo «</table>n»;

echo «<table cellpadding=»0″ cellspacing=»0″ border=»0″ width=»100%» style=»padding: 0px;»>n»;

echo «<tr>n»;

echo «<td width=»100%» align=»center»>n»;

echo «<marqueescrollamount=»2»>Просьба возвращать книжки впору. И помните в Библиотеке обязана быть тишь!</marquee><!—code—></td></tr></table>n»;

}

//————————————————————

}

?>

Содержание файла «
inc
/
check
.
inc
«:

<?

$surname=trim($surname);

$name=trim($name);

$patronymic=trim($patronymic);

$day=trim($day);

$month=trim($month);

$year=trim($year);

$phone=trim($phone);

$address=trim($address);

if(strlen($surname)==0)$error=$error.»tвынезаполнилиполе «Фамилия»<br>n»;

if(strlen($name)==0)$error=$error.»tвынезаполнилиполе «имя«<br>n»;

if(strlen($patronymic)==0)$error=$error.»tвынезаполнилиполе «Отчество»<br>n»;

if($day==0 || $month==0 || $year==0)$error=$error.»tвынезаполнилиполе «деньвашегорождения»<br>n»;

//elseif (!checkdate($mouth, $day, $year))$error=$error.»tвыввелинеправильныйформатдатывашегорождения<br>n»;

elseif (time() — mktime(0, 0, 0, $mouth, $day, $year)< $g_limit_years*365*24*60*60) $error=$error.»tВынедостигли 17-тилетия<br>n»;

if(strlen($phone)==0)$error=$error.»tвы не записали собственный номер телефона<br>n»;

if(strlen($address)==0)$error=$error.»tвынезаполнилиполе «адресок«<br>n»;

?>

Содержание
файла
«inc/connect_bd.inc»

<?

$db_name=»Library»;

$host=»localhost»;

$User=»root»;

$passw=»»;

$link=mysql_connect($host,$User,$passw) or die(mysql_errno($link).mysql_error($link));

$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));

?>

Содержание
файла
«inc/global_vars.inc»:

<?

$source_vars=mysql_query(«select * from `glb_vars` limit 0,1», $link);

$result=mysql_fetch_array($source_vars);

$g_adm_pass=$result[«adm_pass»];

$g_limit_years=$result[«lim_years»];

$g_limit_days=$result[«lim_days»];

$g_limit_books=$result[«lim_books»];

$g_limit_publ_book=$result[«lim_publ_book»];

$g_limit_hr=$result[«lim_hr»];

$g_color_error=$result[«color_error»];

?>

Содержание
файла
«index.php»:

<?

require («inc/Page.inc»);

$homepage = new page();

$homepage ->SetTitle(«библиотека: Объявления»);

$homepage -> SetContent(«

<center><p><b>Объявления.</b><p></center>

<p>Просрочившим сдачу книжек начисляется двойная пеня с 1-го января этого года.</p>»);

$homepage -> Display();

?>

Содержание
файла
«index_info.php»:

<?

include («inc/connect_bd.inc»);

include («inc/global_vars.inc»);

$source=mysql_query(«select count(`num_reader`) from `Readers`», $link) or die(mysql_errno($link).mysql_error($link));

$result=mysql_fetch_row($source);

$num_rdrs_reg=$result[0];

$source=mysql_query(«select count(`num_inventory`), count(distinct `num_book`) from `Books`», $link) or die(mysql_errno($link).mysql_error($link));

$result=mysql_fetch_row($source);

$num_bk_all=$result[0];

$num_bk_unc=$result[1];

$source=mysql_query(«select count(`num_book`) from `Books` where `presence`>0», $link) or die(mysql_errno($link).mysql_error($link));

$result=mysql_fetch_row($source);

$num_bk_read=$result[0];

$text=»<fieldset>n

<legend>информация по книжкам</legend><br>n

&nbsp;&bull;Всего книжек/Неповторимых: <b>».$num_bk_all.»</b>/<b>».$num_bk_unc.»</b><br>n

&nbsp;&bull;В данный момент на руках у читателей <b>».$num_bk_read.»</b> книжек.<br>n

&nbsp;&bull;книжки выдаются на <b>».$g_limit_days.»</b> дней.<br>n

&nbsp;&bull;В библиотеке находятся книжки, не старше <b>».$g_limit_publ_book.»</b> года издательства.<br>n

&nbsp;&bull;Можно взять до <b>».$g_limit_books.»</b> книжек сразу.<br><br>n

</fieldset><br>n

<fieldset>n

<legend>информация по читателям</legend><br>n

&nbsp;&bull;записанно читателей <b>».$num_rdrs_reg.»</b>.<br>n

&nbsp;&bull;Зарегистрироватся можно лицам не молодее <b>».$g_limit_years.»</b> лет.<br><br>n

</fieldset>n»;

require («inc/page.inc»);

$homepage = new Page();

$homepage ->SetTitle(«Библиотека: Информация о Библиотеке»);

$homepage -> SetContent(«<center><p><b>информация о Библиотеке.</b><p></center>».$text);

$homepage -> Display();

?>

Содержание
файла
«books.php»:

<?

require («inc/connect_bd.inc»);

require («inc/global_vars.inc»);

require («inc/Page.inc»);

$homepage = new page();

$homepage ->SetTitle(«библиотека: Книжки»);

if(!isset($book_id))

{

$text=»<p>tНаша библиотека располагает данными книжками перечислеными ниже по алфавиту. Вы сможете просмотреть информацию о книжке, щелкнув по ее наименованию.</p>n

<table border=»0″>n»;

$query=mysql_query(«select `name_book`, `num_book` from `Book` order by `name_book`», $link);

$num=mysql_num_rows($query);

for($i=1; $i<=$num; $i++)

{

$arr=mysql_fetch_row($query);

$text=$text.»<tr><td><font color=»blue»>&bull;&nbsp;<a target="_blank" href=»books.php?book_id=».$arr[1].»»><font color=»blue»>».stripslashes($arr[0]).»</font></a></font></td><tr>n»;

}

$text=$text.»</table>n»;

}

else {

$query=mysql_query(«select `num_inventory` from `Books` where `presence`=’0′ and `num_book`=’$book_id'», $link) or die(mysql_errno($link).»: «.mysql_error($link));

$presence=mysql_num_rows($query);

mysql_free_result($query);

$query=mysql_query(«select * from `Book` where `num_book`=’$book_id'», $link) or die(mysql_errno($link).»: «.mysql_error($link));

$arr=mysql_fetch_array($query);

if(!strcmp($HTTP_COOKIE_VARS[«password»], $g_adm_pass))

{

$edit_btn=»<form action=»libry_add.php» method=»post»>

<input name=»action» type=»hidden» value=»Удалить книжку«>n

<input name=»book_id» type=»hidden» value=»».$book_id.»»>n

<input type=»submit» value=»Удалить книжку«>

</form>n

<form action=»libry_add.php» method=»post»>n

<input name=»name_book» type=»hidden» value=»».stripslashes($arr[«name_book»]).»»>n

<input name=»author» type=»hidden» value=»».stripslashes($arr[«author»]).»»>n

<input name=»coauthor» type=»hidden» value=»».stripslashes($arr[«coauthor»]).»»>n

<input name=»place_publ» type=»hidden» value=»».stripslashes($arr[«place_publ»]).»»>n

<input name=»year_publ» type=»hidden» value=»».$arr[«year_publ»].»»>n

<input name=»publishers» type=»hidden» value=»».stripslashes($arr[«publishers»]).»»>n

<input name=»amount_pages» type=»hidden» value=»».$arr[«amount_pages»].»»>n

<input name=»num_book» type=»hidden» value=»».$book_id.»»>n

<input name=»action» type=»hidden» value=»Добавить книжку«>n

<input name=»edit» type=»submit» value=»Редактировать»>n

</form>n»;

$source=mysql_query(«select `num_inventory`, `num_reader`, `surname`, `name`, `patronymic_name`, `date_issue`, `date_return`, `returned`, `num_reader` from (`Books` join `Orders` using(`num_inventory`)) join `Readers` using(`num_reader`) where `num_book`=’$book_id’ order by `num_inventory`, `num_order`», $link) or die(mysql_errno($link).»: «.mysql_error($link));

$count=mysql_num_rows($source);

if($count>0)

{

$stats=»<table border=»1″ cellspacing=»0″ bgcolor=»#F0F0F0″><tr bgcolor=»#E0E0E0″ align=»center»><td>#Чит. Билета</td><td>Читатель</td><td>Дата получения</td><td>Дата возврата</td><td>Дней просрочено</td></tr>»;

for($i=0; $i<$count; $i++)

{

$in=mysql_fetch_row($source);

if($in[0]!=$inv || $i==0)$stats=$stats.»<tr bgcolor=»#E8E8E8″><td colspan=»5″><center>Книжка с инв. номером #».$in[0].»</center></td></tr>»;

if($in[7]<0)

{

$in[7]=»<small>Невозвращена</small>»;

$in[6]=»<small>Не возвращена</small>»;

}

$stats=$stats.»<tr align=»center»><td>».$in[1].»</td><td><a target="_blank" href=»users.php?id=».$in[8].»»><font color=»black»>».$in[2].» «.$in[3].» «.$in[4].»</font></a></td><td>».$in[5].»</td><td>».$in[6].»</td><td>».$in[7].»</td></tr>»;

$inv=$in[0];

}

$stats=$stats.»</table>»;

}

else $stats=»t<small>Эту книжку никто не брал, статистика отсутствует</small><br>n»;

}

$text=»<table border=»0″><tr><td>

<table border=»0″><tr><td colspan=»2″><hr></td><tr>n

<tr><td><b>Заглавие: </b></td><td>».stripslashes($arr[«name_book»]).»</td></tr>n

<tr><td><b>Создатель: </b></th><td>».stripslashes($arr[«author»]).»</td></tr>n

<tr><td><b>Соавторы: </b></td><td>».stripslashes($arr[«coauthor»]).»</td></tr>n

<tr><td><b>пространство издательства: </b></td><td>».stripslashes($arr[«place_publ»]).»</td></tr>n

<tr><td><b>Год издательства: </b></td><td>».$arr[«year_publ»].»</td></tr>n

<tr><td><b>Издательство: </b></td><td>».stripslashes($arr[«publishers»]).»</td></tr>n

<tr><td><b>Кол-во страничек: </b></td><td>».$arr[«amount_pages»].»</td></tr>n

<tr><td><b>В наличии: </b></td><td>».$presence.»/».$arr[«amount»].»</td></tr>n

<tr><td colspan=»2″><hr></td><tr>n

</table></td><td width=»10″></td><td>n

<table border=»0″ height=»100%»><tr><td>&nbsp;&nbsp;<a target="_blank" href=»books.php»><font color=»black»>Вспять</font></a></td></tr><tr><td>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;</td></tr><tr><td>».$edit_btn.»</td></tr>

</table>

</td></tr></table>».$stats;

}

$homepage -> SetContent(«<center><p><b>книжки.</b></p></center>».$text);

$homepage -> Display();

?>

Содержание
файла
«books_aok.php»:

<?

require («inc/connect_bd.inc»);

require («inc/Page.inc»);

$homepage = new page();

$homepage ->SetTitle(«библиотека: Области познаний»);

$result=mysql_query(«select * from `AreaOfKnowledge`», $link) or die(mysql_errno($link).mysql_error($link));

while($row=mysql_fetch_array($result))

{

$tr =$tr.»<tr align=»center»><td><a target="_blank" href=books_search.php?searchtype=3&searchterm=».$row[«name_aok»].»><font color=»black»>».$row[«name_aok»].»</font></a></td></tr>»;

}

$sp=»<table border=1><tr><td><b>

Наименование области познаний</b></td></tr>».$tr.»</table>»;

$homepage -> SetContent(«<center><p><b>


области познаний.</b></p></center><p>тут представлен список областей познаний, по которым имеются книжки в библиотеке.

Вы сможете просмотреть перечень всех книжек, относящихся к данной для нас области познаний, щёлкнув по наименованию.

</p><center>».$sp.»</center>»);

$homepage -> Display();

?>

Содержание файла «
books
_
search
.
php
«:

<?

require («inc/connect_bd.inc»);

require («inc/Page.inc»);

$homepage = new page();

$homepage ->SetTitle(«библиотека: Поиск книжек»);

if(!isset($searchterm) && !isset($searchtype))

{

$sp=»<p>тут вы сможете отыскать интересующую вас книжку</p>n

<table><tr><td width=»40%»>&nbsp;</td><td>n

<form method=»post»>Задать поиск по:<br>n

<select name=»searchtype»>n

<option value=»1″>Создателю</option>n

<option value=»2″>Наименованию</option>n

<option value=»3″>области познаний</option>n

</select><br>n

Введите разыскиваемый термин:<br>n

<input name=»searchterm» type=text><br>n

<p><input type=submit value=»Находить»></p>n

</form></td></tr></table>n»;

}

else {

$searchterm=trim($searchterm);

$searchterm = addslashes($searchterm);

if($searchtype==1)$sql=»select `num_book`, `name_book`, `author` from `Book` where `author` like ‘%».$searchterm.»%’ or coauthor like ‘%».$searchterm.»%’ order by `name_book`»;

if($searchtype==3)$sql=»select distinct(`num_book`), `name_book`, `author` from (`AreaOfKnowledgeBook` join `AreaOfKnowledge` using(`num_aok`)) join `Book` using(`num_book`) where `name_aok` like ‘%».$searchterm.»%’ order by `name_book`»;

if($searchtype==2)$sql=»select `num_book`, `name_book`, `author` from `Book` where `name_book` like ‘%».$searchterm.»%’ order by `name_book`»;

$result = mysql_query($sql, $link) or die(mysql_errno($link).mysql_error($link));

$num_result=mysql_num_rows($result);

$sp=$sp.»<p>В итоге поиска по главному слову <b>»».$searchterm.»»</b> было найдено «.$num_result.» книжек(и)</p><br>n

<table border=»0″>n»;

for($i=0; $i<$num_result; $i++)

{

$num=$i+1;

$row=mysql_fetch_array($result);

$sp=$sp.»<tr><td colspan=»3″><hr></td><tr><tr><td>».$num.».</td><td>Заглавие:</td><td>

<a target="_blank" href=books.php?book_id=».$row[«num_book»].»><font color=»black»>».$row[«name_book»].»</font></a>

</td></tr><tr><td></td><td>Создатель:</td><td><small>».$row[«author»].»</small></td></tr>n»;

}

$sp=$sp.»<tr><td colspan=»3″><hr></td></tr>

<tr><td colspan=»2″></td><td><a target="_blank" href=»books_search.php»><font color=»black»>Вспять</a></td></tr></table>n»;

}

$homepage -> SetContent(«<center><p><b>Поиск книжек.</b></p></center>».$sp);

$homepage -> Display();

?>

Содержание
файла
«users.php»:

<?

include («inc/connect_bd.inc»);

include («inc/global_vars.inc»);

$pass=$HTTP_COOKIE_VARS[«password»];

if(!strcmp($g_adm_pass, $pass))

{

if(isset($id))

{

$source=mysql_query(«select unix_TIMESTAMP(`birthday`), `num_reader`, `surname`, `name`, `patronymic_name`, `phone`, `address` from `Readers` where `num_reader`='».$id.»‘», $link) or die(mysql_errno($link).»: «.mysql_error($link));

if(mysql_num_rows($source)!=1)$text=»Читательского билета с номером #».$id.» не существует.<br><form method=»post»><input type=»submit» value=»Вспять»></form>n»;

else {

$result=mysql_fetch_array($source);

$array_bday=getdate($result[0]);

$bday=$array_bday[«mday»].» «.$array_bday[«month»].» «.$array_bday[«year»];

$text=»<table border=»0″><br><td>n

<table border=»0″><form>n

<tr><td>Номер читательского билета:</td>n

<td><input type=»text» value=»».$result[«num_reader»].»» readonly></td></tr>n

<tr><td>Фамилия:</td>n

<td><input type=»text» value=»».$result[«surname»].»» readonly></td></tr>n

<tr><td>имя:</td>n

<td><input type=»text» value=»».$result[«name»].»» readonly></td></tr>n

<tr><td>Отчество:</td>n

<td><input type=»text» value=»».$result[«patronymic_name»].»» readonly></td></tr>n

<tr><td>денек рождения:</td>n

<td><input type=»text» value=»».$bday.»» readonly></td></tr>n

<tr><td>телефон:</td>n

<td><input type=»text» value=»».$result[«phone»].»» readonly></td></tr>n

<tr><td>Домашний адресок:</td>n

<td><input type=»text» value=»».stripslashes($result[«address»]).»» readonly></td></tr>n

</form></table></td><td width=»15″></td><td valign=»bottom»>n

<center><a target="_blank" href=»users.php»><font color=»black»>Вспять</font></a></center><br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;

<form method=»post»><input name=»edit» type=»submit» value=»Изьменить данные»></form>n

</td></tr></table>n»;

$res=mysql_query(«select `num_inventory`, b.num_book, `name_book`, unix_TIMESTAMP(`date_issue`), UNIX_TIMESTAMP(`date_return`), `returned`

from `Orders` join (`Book` b join `Books` bs using(`num_book`)) using (`num_inventory`) where `num_reader`='».$id.»‘», $link);

$num=mysql_num_rows($res);

for($i=0; $i<$num; $i++)

{

$result=mysql_fetch_array($res);

$array_date=getdate($result[3]);

$day_iss=$array_date[«mday»].» «.$array_date[«month»].» «.$array_date[«year»];

$array_date=getdate($result[4]);

$day_ret=$array_date[«mday»].» «.$array_date[«month»].» «.$array_date[«year»];

if($result[«returned»]>=0)

{

$tbl_ret=$tbl_ret.»<tr align=»center»><td>».$result[«num_inventory»].»</td><td><a target="_blank" href=»books.php?book_id=».$result[«num_book»].»»><font color=»black»>».$result[«name_book»].»</font></a></td><td>».$day_iss.»</td><td>».$day_ret.»</td><td>».$result[«returned»].»</td></tr>»;

}

else {

$tbl_not=$tbl_not.»<tr align=»center»><td>».$result[«num_inventory»].»</td><td><a target="_blank" href=»books.php?book_id=».$result[«num_book»].»»><font color=»black»>».$result[«name_book»].»</font></a></td><td>».$day_iss.»</td></tr>»;

}

}

if(strlen($tbl_ret)!=0)

{

$tbl_ret=»<table border=»1″>n<tr><th>Номер</th><th>Заглавие</th><th>Дата получения</th><th>Дата возврата</th><th>Дней просрочено</th></tr>».$tbl_ret.»</table><br><br>n»;

}

else $tbl_ret=»&nbsp;t<small>Возвращеных книжек не имеется</small>n»;

if(strlen($tbl_not)!=0)

{

$tbl_not=»<table border=»1″>n<tr><th>Номер</th><th>Заглавие</th><th>Дата получения</th></tr>».$tbl_not.»</table><br><br>n»;

}

else $tbl_not=»&nbsp;t<small>Книжек на руках не имеется</small>n»;

$text=$text.»<center><p><b>Взятые книжки.</b></p></center>n

<p>Книжки выдаются на «.$g_limit_days.» дней. Если книжка требуется для вас еще на некий срок, то следует перерегистрировать заказ книжки</p>

<b>Книжки на руках:</b><br>».$tbl_not.»<br><b>Возвращеные книжки:</b><br>».$tbl_ret;

}

}

else$text=$text.»<p>Введите номер читательского билета, что бы поглядеть данные о читателе.</p>

<form method=»post»><input name=»id» type=»text»>&nbsp<input type=»submit» value=»да»></form>»;

}

else$text=$text.»<p>На эту страничку допущены лишь библитекари</p>»;

include («inc/Page.inc»);

$homepage = new page();

$homepage ->SetTitle(«библиотека: Юзеры»);

$homepage -> SetContent(«<center><p><b>Страница юзера.</b></p></center>».$text);

$homepage -> Display();

?>

Содержание
файла
«libry.php»:

<?

require («inc/connect_bd.inc»);

require («inc/global_vars.inc»);

$login=false;

$pass_cmp=$HTTP_COOKIE_VARS[«password»];

if(strcmp($logout, «Выйти»)==0)

{

setrawcookie(‘Password‘);

$pass_cmp=»»;

}

if(isset($pass))

{

if(!strcmp($pass, $g_adm_pass))

{

setrawcookie(‘Password‘, $pass);

$pass_cmp=$pass;

$login=true;

}

else $login_err=»<font color=»red»>пароль не верен!</font> «;

}

if(strlen($pass_cmp) && !strcmp($pass_cmp, $g_adm_pass))

{

if(isset($chpass))

{

if(isset($check))

{

if(strlen($chpass_old)==0)$error=$error.»Вы не ввели действующй пароль<br>n»;

else {

if(strcmp($chpass_old, $g_adm_pass))$error=$error.»Вы ввели не корректный работающий пароль<br>n»;

else {

if(strlen($chpass1)==0)$error=$error.»Вы не ввели новейший пароль<br>n»;

else {

if(strlen($chpass2)==0)$error=$error.»Вы не ввели повтор новейшего пароля<br>n»;

else {

if(strcmp($chpass1, $chpass2))$error=$error.»Несовпадение новейшего пароля и его повтора<br>n»;

else strlen($chpass1)>12)$error=$error.»пароль должен быть не наиболее 12 знаков, и не меньше 6<br>n»;

}

}

}

}

if(strlen($error)==0)

{

mysql_query(«update `glb_vars` set `adm_pass`=’$chpass1′», $link);

$form=»пароль успешно изменен<br>n

<form method=»post»><center>n

<input name=»pass» type=»hidden» value=»».$chpass1.»»></center>n

<input type=»submit» value=»Вспять»></center>n

</form>»;

}

else {

$form=»Вы не сможете поменять пароль, так как имеется ошибка:<br>».$error.»<br>

<form method=»post»><center><input name=»chpass» type=»submit» value=»Вспять»></center></form>»;

}

}

else{

$form=»<center><p><b>Поменять пароль.</b></p></center><p>Помните, что пароль должен быть не наиболее 12 знаков, и не меньше 6.</p>

<form method=»post»>n<br>

<input name=»check» type=»hidden» value=»true»>n

<table border=»0″>

<tr><td>Введите старенькый пароль:</td><td><input name=»chpass_old» type=»Password«></td></tr>n

<tr><td>Ведите новейший пароль:</td><td><input name=»chpass1″ type=»Password«><br></td></tr>n

<tr><td>Повторите ввод новейшего пароля:&nbsp</td><td><input name=»chpass2″ type=»Password«></td></tr>n

</table><br>n

<input name=»chpass» type=»submit» value=»Поменять пароль«>n

</form>n»;

}

}

if(!isset($chpass))

{

$form=»<p>Здрасти, библиотекарь.</p>n

<form method=»post»>n

<table>n

<tr><td width=»75″></td><td><input name=»chpass» type=»submit» value=»Поменять пароль«></td></tr>n

<tr><td></td><td><input name=»logout» type=»submit» value=»Выйти»></td></tr>n

</table>n

</form><br>n»;

}

$login=true;

}

else {

if(!$login)

{

$form=$login_err.»<p>Страничка доступна лишь библиотекарю. Пожалуйста введите пароль.</p>n

<formmethod=»post»>n

<table>n

<tr><td width=»40%»></td>n

<tr><td></td><td>Введите пароль:<br>n

<input name=»pass» type=»Password«></p>n

<p><input type=»submit» value=»Войти»></p></td></tr>n

</table>n

</form>n»;

}

}

require («inc/Page.inc»);

$homepage = new page();

$homepage ->SetTitle(«библиотека: Логин Библиотекаря»);

$homepage -> SetContent(«<center><p><b>логин Библиотекаря:</b></p></center>».$form);

$homepage -> Display();

?>

Содержание
файла
» libry _add.php»:

<?

require («inc/connect_bd.inc»);

require («inc/global_vars.inc»);

$pass=$HTTP_COOKIE_VARS[«password»];

if(!strcmp($pass, $g_adm_pass))

{

$action1=»Добавить книжку«;

$action4=»Удалить книжку»;

$action2=»Взять книжку«;

$action3=»Возвратить книжку»;

$action5=»Зарегистрировать читателя»;

$action6=»Область познаний»;

if(!isset($action))

{

$text=»<form method=»post»><center><br>

<p><input name=»action» type=»submit» value=»».$action5.»»></p>n

<p><input name=»action» type=»submit» value=»».$action1.»»></p>n

<p><input name=»action» type=»submit» value=»».$action4.»»></p>n

<p><input name=»action» type=»submit» value=»».$action2.»»></p>n

<p><input name=»action» type=»submit» value=»».$action3.»»></p>n

<p><input name=»action» type=»submit» value=»».$action6.»»></p>n

</center><form>n»;

}

else {

if(strcmp($action, $action5)==0)

{

if(isset($hddn))

{

require(«inc/check.inc»);

if(strlen($error)!=0)

{

$text=»Вы допустили ошибку в поле/полях:<br>».$error.»Заполните все поля<hr><br>»;

}

else {

$res=mysql_query(«select max(num_reader) from `Readers`», $link) or die(mysql_errno($link).»: «.mysql_error($link));

$array=mysql_fetch_row($res);

$num=$array[0];

$num=$num+1;

$address=addslashes($address);

$birthday=$year.»-«.$month.»-«.$day;

if(mysql_query(«insert into `Readers` values(‘$num’, ‘$surname’, ‘$name’, ‘$patronymic’, ‘$address’, ‘$phone’, ‘$birthday’)», $link) or die(mysql_errno($link).»: «.mysql_error($link)))

{

$text=»<p>Выудачнозарегистрировали <a target="_blank" href=»users.php?id=».$num.»»><font color=»black»>».$surname.» «.$name.» «.$patronymic.»</font></a>. Номерчитательскогобилета: #».$num.»</p>»;

}

$text=$text.»<form><center><input name=»action» type=»submit» value=»».$action5.»»></center></form>»;

}

}

if(!isset($num))

{

$text=$text.»<br><form method=»post»><input type=»hidden» name=»hddn» value=»true»>

<table border=»0″><tr><td width=»75″>&nbsp;</td><td>n

<table border=»0″>n

<tr><td>Фамилия:</td>n

<td><input name=»surname» type=»text» value=»$surname»></td></tr>n

<tr><td>имя:</td>n

<td><input name=»name» type=»text» value=»$name»></td></tr>n

<tr><td>Отчество:</td>n

<td><input name=»patronymic» type=»text» value=»$patronymic»></td></tr>n

<tr><td colspan=»2″>Деньрождения:</td></tr>n

<tr><td colspan=»4″><table border=»0″>n

<tr><td width=»25″></td><td>&bull;Число: </td><td width=»29″></td>n

<td><input name=»day» type=»text» value=»$day» maxlength=»2″></td></tr>n

<tr><td></td><td>&bull;Месяц: </td><td></td>n

<td><input name=»month» type=»text» value=»$month» maxlength=»2″></td></tr>n

<tr><td></td><td>&bull;Год: </td><td></td>n

<td><input name=»year» type=»text» value=»$year» maxlength=»4″></td></tr>n

</table><td></td></td></tr>n

<tr><td>телефон:</td>n

<td><input name=»phone» type=»text» value=»$phone»></td></tr>n

<tr><td>Домашний адресок:</td>n

<td><input name=»address» type=»text» value=»$address»></td></tr>n

</table><br>

<input name=»action» type=»submit» value=»».$action5.»»><br><br>n

<center><input type=»submit» value=»Вспять»></center>n

</td></tr></table>

</form>n»;

}

}

if(strcmp($action, $action1)==0)

{

$text=»<center><p><b>Добавление/изменениекниг.</b></p></center><br>n»;

if(isset($add))

{

$name_book=trim($name_book);

$author=trim($author);

$coauthor=trim($coauthor);

$place_publ=trim($place_publ);

$year_publ=trim($year_publ);

$year_publ=(int)$year_publ;

$publishers=trim($publishers);

$amount_pages=trim($amount_pages);

$amount_pages=(int)$amount_pages;

$amount=trim($amount);

$amount=(int)$amount;

$aok_count=count($aok);

if(!strlen($name_book))$error=$error.»tНевведеноназваниекниги<br>n»;

if(!strlen($place_publ))$error=$error.»tНезаписаноместоиздательства<br>n»;

if(!$year_publ)$error=$error.»tНезаписангодиздательства<br>n»;

else if(!is_int($year_publ))$error=$error.»tГод — нецелоечисло<br>n»;

if($year_publ-$g_limit_publ_book<0)$error=$error.»tВбиблиотекенедолжныхранитсякнигименьшечем 1960 годаиздания<br>n»;

if(!strlen($publishers))$error=$error.»tВпишитеиздательство<br>n»;

if(!$amount_pages)$error=$error.»tВпишитеколичествостраницвкниге<br>n»;

else if(!is_int($amount_pages))$error=$error.»tЧислостраниц — нецелоечисло<br>n»;

if(!$amount && !isset($edit))$error=$error.»tВведите количество таковых же книжек, завезенных в библиотеку данной для нас партией<br>n»;

else if(!is_int($amount))$error=$error.»tЧислокниг — нецелоечисло<br>n»;

if(!strlen($author) && strlen($coauthor))$error=$error.»tЗаполнение строчки соавторов без записи создателя не может быть<br>n»;

if($aok_count==0)$error=$error.»tНе выбрана область познаний книжек(и)<br>n»;

if(strlen($error)!=0){$text=$text.»Ошибки: <font color=»red»>».$error.»</font>n»;}

else {

if(!isset($edit))

{

$res=mysql_query(«select max(`num_book`) from `Book`», $link) or die(mysql_errno($link).»: «.mysql_error($link));

$result=mysql_fetch_row($res);

$num_books=$result[0]+1;

$res=mysql_query(«select max(`num_inventory`) from `Books`», $link) or die(mysql_errno($link).»: «.mysql_error($link));

$result=mysql_fetch_row($res);

$inventory=$result[0];

$name_book=addslashes($name_book);

$author=addslashes($author);

$coauthor=addslashes($coauthor);

$place_publ=addslashes($place_publ);

$publishers=addslashes($publishers);

mysql_query(«insert into `Book` values(‘$num_books’, ‘$name_book’, ‘$author’, ‘$coauthor’, ‘$place_publ’, ‘$year_publ’, ‘$publishers’, ‘$amount_pages’, ‘$amount’)», $link) or die(mysql_errno($link).»: «.mysql_error($link));

for($i=0; $i<$amount; $i++)

{

$inventory++;

$inv_txt=$inv_txt.»<br>#».$inventory;

mysql_query(«insert into `Books` values(‘$inventory’, ‘$num_books’, 0)», $link) or die(mysql_errno($link).»: «.mysql_error($link));

}

$text=$text.»Добавленокниг: «.$amount.». Инвентарныеномераэтихкниг:<center>».$inv_txt.»</center><br>n

<form method=»post»><p><input type=»submit» value=»Вспять»></p></form>n»;

$updates=true;

}

else {

$updates=true;

$text=$text.»Книжка «<a target="_blank" href=»books.php?book_id=».$num_book.»»><font color=»black»>».$name_book.»</font></a>» былаотредактирована»;

mysql_query(«update `Book` set `name_book`=’$name_book’, `author`=’$author’, `coauthor`=’$coauthor’, `place_publ`=’$place_publ’, `year_publ`=’$year_publ’, `publishers`=’$publishers’, `amount_pages`=’$amount_pages’ where `num_book`=’$num_book'», $link) or die(mysql_errno($link).»: «.mysql_error($link));

mysql_query(«delete from `AreaOfKnowledgeBook` where `num_book`=’$num_book'», $link) or die(mysql_errno($link).»: «.mysql_error($link));

}

for($i=0; $i<count($aok);$i++)

{

mysql_query(«insert into `AreaOfKnowledgeBook` values(‘$num_books’, ‘$aok[$i]’)», $link) or die(mysql_errno($link).»: «.mysql_error($link));

}

}

}

if(!isset($updates))

{

$query=mysql_query(«select `num_aok`, `name_aok` from `AreaOfKnowledge`», $link);

$num_rows=mysql_num_rows($query);

$area=$area.»<fieldset><legend>Жанр/Обл. Познаний</legend><select name=»aok[]» size=»».$num_rows.»» multiple>n»;

for($i=0; $i<$num_rows; $i++)

{

$array=mysql_fetch_row($query);

$area=$area.»<option value=»».$array[0].»»>».$array[1].»</option>»;

}

$area=$area.»</select></fieldset>n»;

if(isset($edit))

{

$txt1=»<tr><td>&nbsp;</td><td>&nbsp;</td></tr>»;

$txt2=»<input name=»edit» type=»submit» value=»Поменять»>n

<input name=»action» type=»hidden» value=»».$action1.»»>n

<input name=»num_book» type=»hidden» value=»».$num_book.»»>n»;

}

else {

$txt1=»<tr><td>Количествокнигвпоступлении:</td>n<td><input name=»amount» type=»text» value=»$amount»></td><tr>n»;

$txt2=»<input name=»action» type=»submit» value=»».$action1.»»>n»;

}

$text=$text.»<form method=»post»>

<table border=»0″><tr><td width=»15″></td><td>».$area.»</td><td width=»15″></td><td>n

<input type=»hidden» name=»add» value=»true»>n

<table border=»0″>n

<tr><td>Названиекниги:</td>n

<td><input name=»name_book» type=»text» value=»$name_book»></td><tr>n

<tr><td>имя создателя:</td>n

<td><input name=»author» type=»text» value=»$author»></td><tr>n

<tr><td>Имена соавторов:</td>n

<td><input name=»coauthor» type=»text» value=»$coauthor»></td><tr>n

<tr><td>пространство издания:</td>n

<td><input name=»place_publ» type=»text» value=»$place_publ»></td><tr>n

<tr><td>Год издания:</td>n

<td><input name=»year_publ» type=»text» value=»$year_publ» maxlength=»4″></td><tr>n

<tr><td>Издательство:</td>n

<td><input name=»publishers» type=»text» value=»$publishers»></td><tr>n

<tr><td>количество страничек:</td>n

<td><input name=»amount_pages» type=»text» value=»$amount_pages»></td><tr>n».$txt1.»

<tr><td>&nbsp;</td><td></td></tr>

</table><br>n».$txt2.»</form>n

<form method=»post»><input type=»submit» value=»Вспять»></form>n

</td><td width=»75″>&nbsp;</td><td align=»top»></td></tr>n

</table>n»;

}

}

if(strcmp($action, $action2)==0)

{

$text=»<center><p><b>Оформитьзаказчитателянакнигу</b></p></center><br>n»;

if(isset($add))

{

$query=mysql_query(«select `surname`, `name`, `patronymic_name` from `Readers` where `num_reader`='».$num_reader.»‘», $link);

if(mysql_num_rows($query)!=1){$error=$error.»tЧитателя с таковым номером читательского билета не существует в Базе Данных Библиотеки<br>n»;}

else {

$res_id=mysql_fetch_array($query);

$ord_name_r=$res_id[«surname»].» «.$res_id[«name»].» «.$res_id[«patronymic_name»];

}

$query=mysql_query(«select `name_book` from `Book` join `Books` using(`num_book`) where `num_inventory`='».$num_inventory.»‘», $link);

if(mysql_num_rows($query)!=1){$error=$error.»tКниги с таковым инвентарным номером не существует в Базе Данных Библиотеки<br>n»;}

else {

$res_inv=mysql_fetch_array($query);

$ord_name_b=$res_inv[«name_book»];

}

$query=mysql_query(«select `num_book` from `Books` where `presence`='».$num_reader.»‘», $link);

$num_books=mysql_num_rows($query);

if($num_books==5){$error=$error.»tЧитатель имеет на руках «.$g_limit_books.» книжек(и), что является максимумом разрешенного числа<br>n»;}

else {

$qry=mysql_query(«select `num_book` from `Books` where `num_inventory`='».$num_inventory.»‘», $link);

$num_book=mysql_fetch_row($qry);

$book=$num_book[0];

mysql_free_result($qry);

for($i=0; $i<$num_books; $i++)

{

$res=mysql_fetch_row($query);

if($res[0]==$book)

{

$error=$error.»tУ читателя уже есть на руках аналогчная кнга<br>n»;

break;

}

}

}

$query=mysql_query(«select `presence` from `Books` where `num_inventory`='».$num_inventory.»‘», $link);

$res=mysql_fetch_row($query);

if($res[0]!=0){$error=$error.»tКнигаужеотданачитателюсномеромчитательскогобилета <a target="_blank" href=»users.php?id=».$res[0].»»><font color=»black»>#».$res[0].»</font></a><br>n»;}

if(strlen($error)!=0)

{

$text=$text.»Обратитевнимание:<br>».$error;

}

else {

$date_iss=date(«Y-m-d»);

$date_ret=date(«Y-m-d», $g_limit_days*24*60*60+mktime(23,59,59));

$dt_ret=date(«jS F Y», $g_limit_days*24*60*60+mktime(23,59,59));

mysql_query(«insert into `Orders` values(null, ‘$num_reader’,’$num_inventory’, ‘$date_iss’, ‘$date_ret’, ‘-1’)», $link);

mysql_query(«update `Books` set `presence`=’$num_reader’ where `num_inventory`=’$num_inventory'», $link);

$num_books=$num_books+1;

$text=$text.»Быласозданазапись: читатель <a target="_blank" href=»users.php?id=».$num_reader.»»><font color=»black»>».$ord_name_r.»</font></a> желаетвзятькнигу <a target="_blank" href=»books.php?book_id=».$book.»»><font color=»black»>»».$ord_name_b.»»</font></a>.<br>


Это «.$num_books.»-я взятая кнга из «.$g_limit_books.» очень разрешенных на данный момент.<br>Требуется возвратить книжку до «.$dt_ret.».<br>

<form method=»post»><center><br><input type=»submit» value=»Вспять»></center></form>»;

}

}

if(!isset($date_iss))

{

$text=$text.»<form method=»post»><input name=»add» type=»hidden» value=»1″><table>

<tr><td>Номер читательского билета:</td>n

<td><input name=»num_reader» type=»text» value=»$num_reader»></td></tr>n

<tr><td>Инвентарный номер книжки:</td>n

<td><input name=»num_inventory» type=»text» value=»$num_inventory»></td></tr>n

<tr><td rowspan=»2″></td><td><input name=»action» type=»submit» value=»».$action2.»»></td></tr>

<tr><td><input type=»submit» value=»Вспять»></td></tr>

</table></form>n»;

}

}

if(strcmp($action, $action3)==0)

{

$text=»<center><p><b>Возвраткнигивбиблиотеку</b></p></center><br>n»;

if(isset($sub))

{

$query=mysql_query(«select `surname`, `name`, `patronymic_name` from `Readers` where `num_reader`='».$num_reader.»‘», $link) or die(mysql_errno($link).mysql_error($link));

if(mysql_num_rows($query)!=1){$error=$error.»tЧитателя с таковым номером читательского билета не существует в Базе Данных Библиотеки<br>n»;}

else {

$res_id=mysql_fetch_array($query);

$ord_name_r=$res_id[«surname»].» «.$res_id[«name»].» «.$res_id[«patronymic_name»];

$query=mysql_query(«select `name_book`, `num_book` from `Book` join `Books` using(`num_book`) where `num_inventory`='».$num_inventory.»‘», $link);

if(mysql_num_rows($query)!=1){$error=$error.»tКниги с таковым инвентарным номером не существует в Базе Данных Библиотеки<br>n»;}

else {

$res_inv=mysql_fetch_array($query);

$book_id=$res_inv[«num_book»];

$ord_name_b=$res_inv[«name_book»];

$query=mysql_query(«select `num_book` from `Books` where `num_inventory`='».$num_inventory.»‘ and `presence`=’$num_reader'», $link);

if(mysql_num_rows($query)!=1){$error=$error.»tКнига «».$ord_name_b.»» синвентарнымномером <a target="_blank" href=»books.php?book_id=».$book_id.»»><font color=»black»>#».$num_inventory.»</font></a> незаписананачитателя <a target="_blank" href=»users.php?id=».$num_reader.»»><font color=»black»>»».$ord_name_r.»»</font></a><br>n»;}

}

}

if(strlen($error)!=0)

{

$text=$text.»Обратитевнимание:<br>».$error;

}

else {

$qry=mysql_query(«select unix_TIMESTAMP(`date_return`) from `Orders` where `num_inventory`=’$num_inventory’ and `num_reader`=’$num_reader’ order by `num_order` desc», $link);

$dt_ret=mysql_fetch_row($qry);

$ret=time()-($dt_ret[0]+24*60*60-1);

if($ret>0)

{

$ret=$ret/(24*60*60);

$returned=floor($ret)+1;

}

else {$returned=0;}

$date_return=date(«Y-m-d»);

mysql_query(«update `Orders` set `date_return`=’$date_return’, `returned`=’$returned’ where `num_reader`=’$num_reader’ and `num_inventory`=’$num_inventory'», $link);

mysql_query(«update `Books` set `presence`=’0′ where `num_inventory`=’$num_inventory'», $link);

if($returned>0)$miss=» сопазданиемв «.$returned.» денька/дней/денек»;

$text=$text.»Быласозданазапись: читатель <a target="_blank" href=»users.php?id=».$num_reader.»»><font color=»black»>».$ord_name_r.»</font></a> сдалвбиблиотекукнигу <a target="_blank" href=»books.php?book_id=».$book_id.»»><font color=»black»>»».$ord_name_b.»»</font></a>».$miss.»<br>

<form method=»post»><center><br><input type=»submit» value=»Вспять»></center></form>»;

}

}

if(!isset($returned))

{

$text=$text.»<form method=»post»><input name=»sub» type=»hidden» value=»1″><table>n

<tr><td>Номер читательского билета:</td>n

<td><input name=»num_reader» type=»text» value=»$num_reader»></td></tr>n

<tr><td>инвентарный номер книжки:</td>n

<td><input name=»num_inventory» type=»text» value=»$num_inventory»></td></tr>n

<tr><td rowspan=»2″></td><td><input name=»action» type=»submit» value=»».$action3.»»></td></tr>

<tr><td><input type=»submit» value=»Вспять»></td></tr>

</table></form>n»;

}

}

if(!strcmp($action, $action4))

{

if(!isset($book_id))

{

$txt=»Впишитеномеркниги, которуюхотитеудалить<br>n

<input name=»book_id» type=»text»>n

<input name=»in» type=»submit» value=»Да»>n

<input name=»action» type=»hidden» value=»».$action4.»»>n»;

}

else {

if(strcmp($in, «Удалить»))

{

$query=mysql_query(«select `num_inventory` from `Books` where `num_book`=’$book_id'», $link);

$nums_inv=mysql_num_rows($query);

if($nums_inv>0)

{

$txt=»Номер книжки, которую желаете удалить #».$book_id.»<br><br>Выбиерете инвентарные номера<br>n

<center><select name=»inv[]» size=»».$nums_inv.»» multiple>n»;

while($res=mysql_fetch_row($query))

{

$txt=$txt.»<option value=»».$res[0].»»>».$res[0].»</option>n»;

}

$txt=$txt.»</select><br><br><input name=»action» type=»hidden» value=»».$action4.»»>n

<input name=»book_id» type=»hidden» value=»».$book_id.»»>n

<input name=»nums_inv» type=»hidden» value=»».$nums_inv.»»>n

<input name=»in» type=»submit» value=»Удалить»></center>n»;

}

else $txt=»книжки с номером #».$book_id.» не существует в БД»;

}

else {

$count_b=$nums_inv-count($inv);

for($i=0; $i<count($inv); $i++)

{

mysql_query(«delete from `Books` where `num_inventory`=’$inv[$i]'», $link);

mysql_query(«delete from `Orders` where `num_inventory`=’$inv[$i]'», $link);

}

mysql_query(«update `Book` set `amount`=’$count_b’ where `num_book`=’$book_id'», $link);

if($count_b==0)

{

mysql_query(«delete from `Book` where `num_book`=’$book_id'», $link);

mysql_query(«delete from `AreaOfKnowledgeBook` where `num_book`=’$book_id'», $link);

}

$txt=»Были удален книжки, которые вы отметили»;

}

}

$text=»<table border=»0″><tr><td width=»50%»><fieldset><legend>УдалениекнигиизБД</legend><form method=»post»>».$txt.»</form>

</fieldset><center><a target="_blank" href=»libry_add.php»><font color=»black»>Вспять</font></a></center></td></tr></table>n»;

}

if(!strcmp($action, $action6))

{

if(!strcmp($in, «Ввести»))

{

$aok=trim($aok);

if(strlen($aok)==0){$error=»Строкапусая, требуетсяеезаполнить<br>n»;}

else {

$query=mysql_query(«select `num_aok` from `AreaOfKnowledge` where name_aok like ‘$aok'», $link) or die(mysql_errno($link).mysql_error($link));

if(mysql_num_rows($query)>0)

{

$error=$error.»Вбазеужесуществуетобластьзнаний <a target="_blank" href=books_search.php?searchtype=3&searchterm=».$aok.»><font color=»black»>».$aok.»</font></a><br>n»;

}

}

if(strlen($error)!=0){$error=»Ошибкиввода:<br>».$error;}

else {

mysql_query(«insert into `AreaOfKnowledge` values(null, ‘$aok’)», $link);

$error=»<p>Область познаний <b>».$aok.»</b> успешно добавлена</p>»;

}

}

if(!strcmp($in, «Удалить»))

{

$query=mysql_query(«select `num_book`, `name_book` from `AreaOfKnowledgeBook` join `Book` using(`num_book`) where num_aok=’$aok'», $link) or die(mysql_errno($link).mysql_error($link)); if(mysql_num_rows($query)>0)

{

$error=»Нереально удалить, так как по данной для нас области познаний имеются книжки:<br>»;

while($ar_aok=mysql_fetch_row($query))

{

$error=$error.»<a target="_blank" href=books.php?book_id=».$ar_aok[0].»><font color=»black»>».$ar_aok[1].»</font></a><br>n»;

}

}

else {

mysql_query(«delete from `AreaOfKnowledge` where `num_aok`=’$aok'», $link);

$error=»<p>Область познаний успешно удалена</p>»;

}

}

$query=mysql_query(«select `num_aok`, `name_aok` from `AreaOfKnowledge`», $link);

$num_rows=mysql_num_rows($query);

$sel_area=»<select name=»aok» size=»».$num_rows.»»>n»;

for($i=0; $i<$num_rows; $i++)

{

$array=mysql_fetch_row($query);

$sel_area=$sel_area.»<option value=»».$array[0].»»>».$array[1].»</option>»;

}

$sel_area=$sel_area.»</select>n»;

$text=$text.»<table border=»0″><tr valign=»top»><td>n

<fieldset><legend>Выбирете жанр, который желаете удалить</legend>

<form method=»post»><center>».$sel_area.»<br>

<input name=»action» type=»hidden» value=»».$action6.»»>n

<p><input name=»in» type=»submit» value=»Удалить»></p></center>n

</form></fieldset></td><td width=»35″></td><td>n

<br>Введите новейшую область познаний:<br>n

<form method=»post»>n

<input name=»aok» type=»text»>n

<input name=»action» type=»hidden» value=»».$action6.»»>n

<input name=»in» type=»submit» value=»Ввести»><br><br>».$error.»n

</form></td></tr></table>n

<center><a target="_blank" href=»libry_add.php»><font color=»black»>Вспять</font></a></center>»;

}

}

}

else {

$text=»<p>Страничка доступна лишь библиотекарю. Зайти под Библиотекарем можно нажав на клавишу «Войти»</p>

<form action=»libry.php» method=»post»>n

<center><input type=»submit» value=»Войти»></center>n

</form>n»;

}

require («inc/Page.inc»);

$homepage = new page();

$homepage ->SetTitle(«библиотека: Хоз. часть»);

$homepage -> SetContent($text);

$homepage -> Display();

?>

]]>