Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Создание сайта Библиотека онлайн

Тип Реферат
Предмет Информатика
Просмотров
415
Размер файла
49 б
Поделиться

Ознакомительный фрагмент работы:

Создание сайта Библиотека онлайн

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

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

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

"Чувашский государственный университет им. И.Н. Ульянова"

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

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

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

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

Тема: "Библиотека"

Выполнил:

студент гр. ИВТ 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 книг. Читатель не должен одновременно держать более одного экземпляра книги одного названия.

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

уникальный шифр

название

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

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

место издания (город)

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

год издания

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

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

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

уникальный инвентарный номер

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

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

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

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

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

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

Каждый экземпляр книги может находиться на руках только у одного читателя.

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

Не может быть информации о соавторах, если нет информации об авторе. Книга может не иметь ни автора, ни соавтора.

В библиотеке должны быть записаны читатели не моложе 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_inventoryint(11)-
date_issuedate-
date_returndate-
returnedsmallint(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" ><a href="$url"><font color="blue">$name</font></a></td>n";

}

else {

echo "<td align="center" ><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 border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">n";

echo "<tr valign="Top">n";

echo "<td >n";

echo "<table border="0" cellspacing="5" cellpadding="0">n";

echo "<tr>n";

echo "<td > <a href="http://www.chebnet.com"><img src="image/book_logo.jpg" border="0"></a></td>n";

echo "</tr>n";

}

//-----------------------------------------------------------

function DisplayMenu($subbtns, $btns)

{

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

echo "<tr valign="Top">n";

echo "<td>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 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 background="image/bg_sadowside.gif"></td>n";

echo " <td>n";

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

echo "<table border="0" cellspacing="0" cellpadding="0">n";

echo "<tr valign="Top">n";

echo "<td ><img src="image/book_top.jpg" border="0"></td>n";

echo "</tr>n";

echo "</table>n";

echo "<table border="0" cellspacing="0" cellpadding="0">n";

echo "<tr>n";

#echo "<td ></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 border="0" 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 border="0" cellspacing="0" cellpadding="0">n";

echo "<tr valign="top">n";

echo "<td background="image/bg_circle_left.gif" ></td>n";

echo "<td background="image/bg_rect.gif" text-align="justify">n";

echo "<table border="0" cellspacing="10">n";

echo "<tr><td valign="top">n";

}

//-----------------------------------------------------------

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

{

if ($active)

{

echo "<td align="center" ><a href="$url"><font color="blue">$name</font></a></td>n";

}

else {

echo "<td align="center" ><font color="blue"><b>$name<b></font></td>n";

}

}

//-----------------------------------------------------------

function DisplayFooter()

{

echo "</td></tr>n";

echo "</table>n";

echo "</td>n";

echo "<td background="image/bg_circle_rigth.gif" ></td>n";

echo "</tr>n";

echo "</table>n";

echo "<table border="0" cellspacing="0" cellpadding="0">n";

echo "<tr>n";

echo "<td background="image/bg_shadow_buttom.gif"></td>n";

echo "</tr>n";

echo "</table>n";

echo "</td>n";

echo "<td ><center><font size="2">";

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

echo "<table>n";

echo "<tr><td valign="top" colspan="2" ><font size="2"><center>".date("jS F Y")."</center></font></td></tr>n";

echo "<tr><td ></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" style="padding: 0px;">n";

echo "<tr>n";

echo "<td 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 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 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 ></td><td>n

<table border="0" ><tr><td>&nbsp;&nbsp;<a 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 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 >&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 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 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 ></td><td valign="bottom">n

<center><a 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 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 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 {

if(strlen($chpass1)<6 || 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 ></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 ></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 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 >&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 ></td><td>&bull;Число: </td><td ></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 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 ></td><td>".$area."</td><td ></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 >&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 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 href="users.php?id=".$num_reader.""><font color="black">".$ord_name_r."</font></a> желаетвзятькнигу <a 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 href="books.php?book_id=".$book_id.""><font color="black">#".$num_inventory."</font></a> незаписананачитателя <a 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 href="users.php?id=".$num_reader.""><font color="black">".$ord_name_r."</font></a> сдалвбиблиотекукнигу <a 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 ><fieldset><legend>УдалениекнигиизБД</legend><form method="post">".$txt."</form>

</fieldset><center><a 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 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 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 ></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 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();

?>


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
147998
рейтинг
icon
3130
работ сдано
icon
1353
отзывов
avatar
Математика
Физика
История
icon
142374
рейтинг
icon
5882
работ сдано
icon
2654
отзывов
avatar
Химия
Экономика
Биология
icon
95606
рейтинг
icon
2034
работ сдано
icon
1274
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
54 557 оценок star star star star star
среднее 4.9 из 5
Школа
Очень приятно работать с этим человеком! За столь сверх маленький срок,(сутки) информацию...
star star star star star
ОмГТУ
Хорошая, качественная работа. Информация свежая, все пожелания были учтены. Хороший исполн...
star star star star star
Санкт-Петербургский Государственный институт культуры
Спасибо большое! Работа выполнена хорошо, замечания были исправлены оперативно и качестве...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить задачи с развернутыми ответами

Решение задач, гражданский процесс

Срок сдачи к 17 окт.

только что

Структуры и алгоритмы обработки данных в ЭВМ

Лабораторная, Структуры и алгоритмы обработки данных в ЭВМ

Срок сдачи к 11 окт.

только что

Все указано в методичке

Курсовая, Деньги , кредит , банки

Срок сдачи к 9 окт.

1 минуту назад

Расчетно графическая работа, 3 задачи физики

Контрольная, Физика

Срок сдачи к 14 окт.

2 минуты назад

Выполнить курсовую работу

Курсовая, Основы Производства Предприятий Сервиса

Срок сдачи к 14 окт.

2 минуты назад

“Gone With the Wind” essay.

Эссе, Англйский

Срок сдачи к 10 окт.

6 минут назад

Сделать курсовую по варианту (роат)

Курсовая, Строительные конструкции

Срок сдачи к 21 окт.

6 минут назад

Какие пары слов составляют предложения

Решение задач, Русский язык

Срок сдачи к 8 окт.

7 минут назад
7 минут назад

Сделать доклад и презентацию к теме, а также ментальную карту

Доклад, государственное и муниципальное управление

Срок сдачи к 8 окт.

7 минут назад

Написать курсовую

Курсовая, Технические средства защиты информации

Срок сдачи к 21 окт.

7 минут назад

Курсовая (роат)

Курсовая, Строительные конструкции

Срок сдачи к 21 окт.

8 минут назад

решить все

Контрольная, правовые формы борьбы с терроризмом

Срок сдачи к 9 окт.

9 минут назад

Сделать всё, что написано в задании (скриншоты приложены)

Другое, Основы научной деятельности

Срок сдачи к 12 окт.

9 минут назад

Решение теста с ограничением по времени 11.10.24. Примерные задания...

Контрольная, теоретическая механика

Срок сдачи к 11 окт.

9 минут назад

П ро л

Отчет по практике, Ведение процесса чертёжных и простых научно-конструкторских работ

Срок сдачи к 11 окт.

10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно