$sql=mysql_query(\from tb_manager where
id='$id'\删除管理员表中id号所对应的管理员信息 $query=mysql_query(\from tb_purview where id='$id'\删除权限表中id号所对应的管理员权限 if($sql==true and $query==true ){ //如果删除操作成功,则弹出提示信息
echo \管理员删除成功!');history.back();\}
else{ //如果删除操作失败,则弹出提示信息
echo \管理员删除失败!');history.back();\} ?>
5.3图书档案管理模块设计
5.3.1图书档案管理模块概述
图书档案管理模块主要包括查看图书列表、添加图书信息、修改图书信息、删除图书信息和查看图书信息5个功能。
41
5.3.2图书档案管理模块技术分析
在图书档案管理模块中,涉及的数据表是tb_bookinfo(图书信息表tb_bookcase(书架设置表)、tb_booktype(图书类型表)和tb_publishing(出版社信息表),这4个数据表间通过相应的字段进行关联。
5.3.3查看图书信息列表的实现过程
管理员登录后,选择“图书管理”/“图书档案管理”菜单项,进入到查看图书列表页面,在该页面中将显示全部图书信息列表,同时提供添加图书信息、删除图书信息、修改图书信息的超链接。
打开功能导航navigation.php文件,设置“图书档案管理”菜单项的超链接的代码如下:
图书档案管理
接起来检索指定条件的图书信息,然后应用do?while循环语句输出查询结果到浏览器。查看图书信息页面的代码如下:
42
include(\连接数据库文件 $query=mysql_query(\book.barcode,book.id as bookid,book.bookname,bt.typename,pb.pubname,bc.name from tb_bookinfo book join tb_booktype bt on book.typeid=bt.id book.ISBN=pb.ISBN
join join
tb_publishing tb_bookcase
pb bc
on on
book.bookcase=bc.id\
$result=mysql_fetch_array($query); //应用外联接检索图书信息
?>
? //省略图书信息标题HTML标记部分
do{ //应用do?while循环语句输出查询结果 ?>
href=\$result[bookid];?>\$result[bookname];?>
href=\
43
style=\echo
$result[barcode];?>
style=\
echo
style=\style=\style=\
echo echo echo
$result[typename];?> $result[pubname];?> $result[name];?>
align=\
echo
$result[bookid];?>\修改
}while($result=mysql_fetch_array($query)); //do?while循环语句结束 ?>
5.3.4添加图书信息的实现过程
管理员登录系统后,在导航栏中单击“图书档案管理”超链接,进入到查看图书列表页面。在该页面中单击“添加图书信息”超链接,进入到添加图书信息页面。
在查看图书列表页面中设置“添加图书信息”超链接的代码如下:
添加图书信息
由于添加图书信息的方法同添加管理员信息的方法类似,所以此处只给出向图书信息表中插入数据的SQL语句,详细代码参见光盘。向图书信息表中插入数据的SQL语句如下:
mysql_query(\
tb_bookinfo(barcode,bookName,typeid,author,translator,ISBN,price,page,bookcase,inTime,operator )values('$barcode','$bookName','$typeid','$author','$translator','$isbn','$price','$page','$bookcaseid','$inTime','$operator')\
44
5.3.5 修改图书信息的实现过程
管理员登录系统后,在导航栏中单击“图书档案管理”超链接,进入到查看图书列表页面。单击想要修改的图书信息后面的“修改”超链接,进入到“修改图书信息”页面。修改图书信息页面的运行结果
在图书信息列表页面中,添加“修改”超链接的代码如下:
href=\ echo $result[bookid];?>\修改
在修改图书信息页面中修改图书信息后,单击“保存”按钮,提交表单信息到数据处理页book_Modify_ok.php,应用UPDATE语句将修改的图书信息保存到数据表tb_bookinfo中,并弹出“图书信息修改成功!”提示信息,将页面重定向到修改图书信息页。数据处理页的代码如下:
session_start(); //初始化session变量 include(\连接数据库文件 $bid=$_POST[bid]; //获取图书id号 $operator=$_SESSION[admin_name]; //获取管理员名称
$barcode=$_POST[barcode]; //获取图书条形码 $bookName=$_POST[bookName]; //获取图书名称 $typeid=$_POST[typeId]; //获取图书类型id号 $author=$_POST[author]; //获取图书作者 $translator=$_POST[translator]; //获取图书译者
$isbn=$_POST[isbn]; //获取出版社ISBN $price=$_POST[price]; //获取图书单价 $page=$_POST[page]; //获取图书页码
45
题 目 图书管理系统 院 系 信息科学与技术学院 专 业 软件技术专业
姓 名 刘赛 樊双起 刘利文 授课教师 程霄
班级学号 23 04 38
目录
1 绪论............................................................................................................................................... 3
1.1 研究背景 .............................................................................................. 3
1.2 研究现状 .............................................................................................. 4 1.3 研究意义 .............................................................................................. 4
2相关技术综述 ................................................................................................................................ 5
2.1 PHP技术 .............................................................................................. 5 2.2 MYSQL数据库 .................................................................................... 6 2.3 Apache ................................................................................................... 7 2.4 WampServer .......................................................................................... 8 2.5 数据库简介 .......................................................................................... 8 2.6 网页制作工具 ...................................................................................... 9 2.7 B/S模式 .............................................................................................. 10
3 需求分析 ..................................................................................................................................... 13
3.1 系统需求 ............................................................................................ 13 3.2 需求分析 ............................................................................................ 13
3.2.1 功能分析 ................................................................................. 13 3.2.2 功能描述 ................................................................................. 13 3.2.3可行性分析 .............................................................................. 14
1
4 总体设计 ..................................................................................................................................... 15
4.1 系统流程图 ........................................................................................ 15
4.2 数据库设计 ........................................................................................ 15
4.2.1 数据库概念设计 ..................................................................... 15 4.2.2 创建数据库及数据表 ............................................................. 17
5 设计思想与实现 ......................................................................................................................... 28
5.1 首页设计 ............................................................................................ 28
5.1.1首页概述 .................................................................................. 28 5.1.2 首页实现过程 ......................................................................... 30 5.2 管理模块设计 .................................................................................... 31
5.2.1 管理员模块概述 ..................................................................... 31 5.2.2 管理员模块技术分析 ............................................................. 32 5.2.3系统登录的实现过程 .............................................................. 33 5.2.4查看管理员的实现过程 .......................................................... 35 5.2.5 添加管理员的实现过程 ......................................................... 37 5.2.6设置管理员权限的实现过程 .................................................. 38 5.2.7删除管理员的实现过程 .......................................................... 40 5.3图书档案管理模块设计 ..................................................................... 41
5.3.1图书档案管理模块概述 .......................................................... 41 5.3.2图书档案管理模块技术分析 .................................................. 42 5.3.3查看图书信息列表的实现过程 .............................................. 42 5.3.4添加图书信息的实现过程 ...................................................... 44 5.3.5 修改图书信息的实现过程 ................................................... 45 5.3.6 删除图书信息的实现过程 ................................................... 46 5.4.1 图书借还模块概述 ............................................................... 47 5.4.2 图书借还模块技术分析 ....................................................... 47 5.4.3图书借阅的实现过程 .............................................................. 48 5.3.4 图书续借的实现过程 ........................................................... 52 5.4.5图书归还的实现过程 .............................................................. 54 5.4.6 图书借阅查询的实现过程 ................................................... 55
6.系统测试 ...................................................................................................................................... 61
6.1 软件测试概念与方法 ........................................................................ 61
6.2 测试内容 ............................................................................................ 62 6.3测试结果 ............................................................................................. 62
6.3.1 登陆测试 ................................................................................. 63 6.3.2添加会员页面 .......................................................................... 63
2
6.3.3借还书测试 .............................................................................. 64
7.总结.............................................................................................................................................. 66 8.参考文献 ..................................................................................................................................... 67
1 绪论
1.1 研究背景
随着社会的发展和经济的进步, 科学技术的飞速发展把人类社会推向了一个崭新的时代——信息时代。学校是人们学习知识、获取信息的主要场所。由于我国的教育行业飞速发展,目前各类学校的学生人数与日俱增,随之而来的是学校所拥有的图书越来越多,在这种情况下,对图书的管理和查询以及对借阅者的管理都变得非常困难,利用计算机设计的图书馆管理系统对其进行辅助管理,是一种很好的方法。图书管理系统的开发和应用,可以提高学校的管理水平以及办公效率,为学校的图书信息的管理提供了一个良好的工具,化简了繁琐的工作模式,从而使得学校的管理更加规范化和科学化。良好的管理信息系统节省了大量的人力和物力,避免了大量重复性工作。它作为计算机应用的一部分,使用计算机对图书信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是学校科学化、正规化管理的重要条件。
3
1.2 研究现状
随着计算机及网络技术的飞速发展,信息自动化的作用也越来越大。这就使传统的图书管理方式受到了很大的冲击,有关图书的借阅工作部分还是手工管理,工作效率很低,并且不能及时了解图书的种类和读者们比较需求的图书等,不能更好的适应当前读者的借阅要求。手工管理还存在这许多弊端,由于不可避免的人为因素,造成数据的遗漏、误报。现今许多学校图书馆已经逐步实现了利用计算机对图书进行信息化管理,但大部分使用的是VB、VC++等系统,这些系统多数使用access数据库,它在并发操作的控制和数据库安全性方面远没有MYSQL强大,不能够进行基于web的管理,即使如此,还有更多的二级学院因经费等各种原因还是延续传统手工管理模式,工作量巨大、存放麻烦、更新困难、不易备份,已不能适应信息化社会的要求。
1.3 研究意义
本系统主要适用于二级学院的图书管理,编写本系统是为了达到图书管理工作系统化、智能化、规范化、自动化、科学化,减轻管理人员的工作强度,方便查询与统计,节约时间,从而达到提高图书管理效率的目的。使用本系统,图书管理人员作为桥梁、导航的作用将变得更为重要,图书管理工作变得更加便利和高效,系统将传统的方式与现代的信息技术相结合,为读者提供更加优质的服务,只有如此,才能有效地提高学校的科研和教学水平。 本系统服务器端采用MYSQL数据库系统和PHP组件来构成整个图书管理系统客户端采用浏览器来实现信息管理的全过程,同时管理员通过浏览器也可以进行远程系统的维护和管理。本系统选择使用目前比较流行的apache服务器结合mysql数据库使用php语言进行web设计。
4
2相关技术综述
2.1 PHP技术
PHP“PHP Hypertext Preprocessor”超文本预处理器的字母缩写,是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。它是一种服务器端的 HTML 脚本编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言。
PHP代码在服务器端被解释转变成普通的HTML页面内容,送给浏览器端,这种模式可使我们用它来完成相当复杂的功能。它能运行在包括Windows、Linux等在内的绝大多数操作系统环境中,常与免费的Web服务器软件Apache和免费数据库软件MySQL配合使用于Linux平台上,具有较高的性能价格比。
强大的数据库支持 目前其支持范围覆盖了包括Oracle,Sybase,Microsoft SQL,MySQL,Informix、Solid dBase,ODBC,Unix db,PostgreSQL,Adabas D等在内的大多数常见数据库。用它编写一个含有数据库功能的网页程序十分简单。
PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是绝佳组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用数据库时,可以轻松的更改编码以适应变化。
可扩展性 就像前面说的那样PHP已经进入了一个高速发
5
tb_manager和tb_purview中查询出符合条件的数据,然后将查询结果应用do?while循环语句输出到浏览器。关键代码如下:
include(\连接数据库文件 $sql=mysql_query(\
m.id,m.name,p.sysset,p.readerset,p.bookset,p.borrowback,p.sysquery from tb_manager as m left join (select * from tb_purview) as p on m.id=p.id\
$info=mysql_fetch_array($sql); //检索数据信息do{ //应用do?while循环语句输出查询结果 ?>
/*输出符合查询条件的记录*/
style=\align=\
echo
$info[name];?>
name=\
type=\class=\value=\disabled=\
align=\
name=\
name=\
type=\class=\value=\disabled=\
36
if($info[readerset]==1){echo(\
align=\
type=\class=\value=\
align=\name=\
type=\class=\value=\
if($info[borrowback]==1){echo(\
if($info[sysquery]==1){echo(\
$info[id]; ?>','','width=292,height=175')\权限设置
************************************************************************************* */
}while($info=mysql_fetch_array($sql)); //do?while循环语句结束 ?>
align=\
href=\
onClick=\
align=\
name=\
type=\class=\value=\
5.2.5 添加管理员的实现过程
在添加管理员页面中,输入合法的管理员名称及密码后,单击“保存”按钮,提交表单信息到数据处理页,将添加的管理员信息保存到数据表中。如果添加成功,弹出成功的提示信息;否则,弹出错误提示。 代码如下:
37
include(\连接数据库文件 if($_POST[submit]!=\如果单击了“保存”按钮,则执行下面的作
$name=$_POST[name]; //获取管理员名称 $pwd=$_POST[pwd]; //获取管理员密码
$sql=mysql_query(\into tb_manager (name,pwd) values('$name','$pwd')\
if($sql==true){ //向数据表中添加管理员信息成功,则给出提示信息
echo \管理员添加
\}
else{ //向数据表中添加管理员信息失败,则给出提示信息
echo \管理员添加
script>\} } ?>
失
败
!
');window.close();window.opener.location.reload();
成
功
!
');window.close();window.opener.location.reload();
5.2.6设置管理员权限的实现过程
在查看管理员列表页面中添加“权限设置”列,并在该列中添加以下用于打开“权限设置”页面的超链接代码。 38 href=\ onClick=\echo $info[id]; ?>','','width=292,height= 175')\权限设置
从上面的URL地址中可以获取设置管理员权限页所涉及的id号,将id号提交给处理页manager_ modifyok.php,修改id号所对应的管理员信息。具体代码如下:
include(\连接数据库文件 if($_POST[submit]!=\如果提交表单,则执行以下操作
$id=$_POST[id]; //获取id信息
$sysset=$_POST[sysset]==\应用三目运算符求出“系统设置”复选框的值
$readerset=$_POST[readerset]==\应用三目运算符求出“读者管理”复选框的值
$bookset=$_POST[bookset]==\应用三目运算符求出“图书管理”复选框的值
$borrowback=$_POST[borrowback]==\应用三目运算符求出“图书借还”复选框的值
$sysquery=$_POST[sysquery]==\应用三目运算符求出“系统查询”复选框的值
$query=mysql_query(\* from tb_purview where id=$id\
$info=mysql_fetch_array($query); //检索权限信息表中是否存在该管理员
if($info==false){ //如果不存在,向权限表中添加管理员权限信息
mysql_query(\query)
39
into
tb_purview(id,sysset,readerset,bookset,borrowback,sys
values($id,$sysset,$readerset,$bookset,$borrowback,$sysquery)\}
else{ //否则,更新管理员的权限信息 mysql_query(\
sysset=$sysset,readerset=$readerset,bookset=$bookset,borrowback=$borrowback,sysquery=$sysquery where id='$id'\}
echo\权限设置修改成
功
!
');window.close();window.opener.location.reload(); \更新成功,弹出提示信息,并更新父窗口 } ?>
5.2.7删除管理员的实现过程
在查看管理员列表页面中单击指定管理员信息后面的“删除”超链接,该管理员及其权限信息将被删除。
在查看管理员列表页面中添加以下用于删除管理员信息的超链接代码。
从上面的URL地址中,可以获取删除管理员所涉及的id号,将id号提交给manager_del.php处理页删除id号所对应的管理员信息。具体代码如下:
include(\连接数据库文件 $id=$_GET[id]; //获取管理员的id号
40
--
-- 转存表中的数据 `tb_manager` --
INSERT INTO `tb_manager` (`id`, `name`, `pwd`) VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3'),
(2, 'bulongwind', '845d07a73a3c0bbf6ff27b4b2130413a'); --
-- 表的结构 `tb_parameter` --
CREATE TABLE IF NOT EXISTS `tb_parameter` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cost` int(10) unsigned DEFAULT NULL, `validity` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1 ; --
-- 表的结构 `tb_publishing` --
CREATE TABLE IF NOT EXISTS `tb_publishing` ( `ISBN` varchar(20) DEFAULT NULL, `pubname` varchar(30) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=gb2312; --
-- 表的结构 `tb_purview` --
CREATE TABLE IF NOT EXISTS `tb_purview` ( `id` int(11) NOT NULL DEFAULT '0', `sysset` tinyint(1) DEFAULT '0', `readerset` tinyint(1) DEFAULT '0', `bookset` tinyint(1) DEFAULT '0',
26
`borrowback` tinyint(1) DEFAULT '0', `sysquery` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312; --
-- 转存表中的数据 `tb_purview` --
INSERT INTO `tb_purview` (`id`, `sysset`, `readerset`, `bookset`, `borrowback`, `sysquery`) VALUES (1, 1, 1, 1, 1, 1); --
-- 表的结构 `tb_reader` --
CREATE TABLE IF NOT EXISTS `tb_reader` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `sex` varchar(4) DEFAULT NULL,
`barcode` varchar(30) DEFAULT NULL, `vocation` varchar(50) DEFAULT NULL, `birthday` date DEFAULT NULL,
`paperType` varchar(10) DEFAULT NULL, `paperNO` varchar(20) DEFAULT NULL, `tel` varchar(20) DEFAULT NULL, `email` varchar(100) DEFAULT NULL, `createDate` date DEFAULT NULL,
`operator` varchar(30) DEFAULT NULL, `remark` mediumtext,
`typeid` int(11) DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1 ; --
27
-- 表的结构 `tb_readertype` --
CREATE TABLE IF NOT EXISTS `tb_readertype` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `number` int(4) DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1 ;
5 设计思想与实现
5.1 首页设计
5.1.1首页概述
管理员通过“系统登录”模块的验证后,可以登录到图书馆管理系统的首页。系统首页主要包括导航栏、排行榜和版权信息3部分。其中,导航栏中的功能菜单将根据登录管理员的权限进行显示。例如,系统管理员admin登录后,将拥有整个系统的全部功能,因为它是超级管理员。
28
5.1.2 首页技术分析
学校图书馆管理系统是一个功能全面、大型的Web网站,通过对网站的安全性考虑,本网站对该系统进行权限的分配,只有管理员级别的超级用户可以对普通用户的权限进行管理和设置。系统首页主要通过判断管理员的权限来显示该用户所操作的功能模块,关键代码如下:
session_start(); //初始化session变量 include(\连接数据库文件
$query=mysql_query(\
m.id,m.name,p.id,p.sysset,p.readerset,p.bookset,p.borrowback,p.sysquery from tb_manager as m left join (select * from tb_purview ) as p on m.id=p.id where name='$_SESSION[admin_ name]'\
$info=mysql_fetch_array($query); //检索用户权限 ?>
┊ if($info[sysset]==1){ ?> onmouseover=showmenu(event,sysmenu) onmouseout=delayhidemenu() style=\ class=\系统设置 if($info[readerset]==1){?> onmouseover=showmenu(event,readermenu) onmouseout=delayhidemenu() style= \class=\读者管理 ┊ if($info[borrowback]==1){?> onmouseover=showmenu(event,borrowmenu) onmouseout=delayhidemenu() style=\>图书借还 if($info[sysquery]==1){ ?> onmouseover=showmenu(event,querymenu) onmouseout=delayhidemenu() style=\ class=\系统查询
5.1.2 首页实现过程
系统首页的内容显示区用于显示图书的排行信息,并将排行结果按借阅数量降序排列。该页的关键代码如下:
30
style=\
style=\style=\align=\align=\
echo echo echo echo echo
$info[barcode];?>
5.2 管理模块设计
5.2.1 管理员模块概述
管理员模块主要包括管理员登录、查看管理员列表、添加管理员信息、管理员权限设置、管理员删除和更改口令6个功能。
31
5.2.2 管理员模块技术分析
在管理员模块中,涉及的数据表是tb_manager(管理员信息表)和tb_purview(权限表)。其中,管理员信息表中保存的是管理员名称和密码等信息,权限表中保存的是各管理员的权限信息,这两个表通过各自的id字段相关联。通过这两个表可以获得完整的管理员信息。
从网站安全的角度考虑,仅有上面介绍的系统登录页面并不能有效地保存系统的安全,一旦系统首页面的地址被他人获得,就可以通过在地址栏中输入系统的首页面地址而直接进入到系统中。为了便于网站的维护,因此将验证用户是否登录的代码封装在独立的PHP文件中,即check_login.php文件。验证用户是否登录的具体代码如下:
session_start(); //初始化session变量 if($_SESSION[admin_name]==\如果session变量为空,则说明用户未登录
32
echo \对不起,请通过正确的途径登录博考图} ?>
书
馆
管
理
系
统!');window.location.href='login.php';\
5.2.3系统登录的实现过程
系统登录是进入学校图书馆管理系统的入口,主要用于验证管理员的身份。运行本系统,首先进入的是系统登录页面,在该页面中,系统管理员可以通过输入正确的管理员名称和密码登录到系统首页,当用户没有输入管理员名称或密码时,系统会通过JavaScript进行判断,并给予信息提示。
系统登录页面主要用于收集管理员的输入信息及通过自定义的JavaScript函数验证输入信息是否为空。
编写自定义的JavaScript函数,用于判断管理员名称和密码是否为空。代码如下:
提交表单到数据处理页,页面中为了防止非法用户进入学校图书馆管理系统首页,通过调用类的
chkinput()方法实现判断用户名和密码是否正确。如果为合法用户,则可以登录学校图书馆管理系统的首页; 否则,弹出相应的错误提示。关键代码如下:
session_start(); //初始化session变量 $A_name=$_POST[name]; //接收表单提交的用户名
$A_pwd=$_POST[pwd]; //接收表单提交的密码
class chkinput{ //定义类
var $name; var $pwd;
function chkinput($x,$y){ //定义一个方法
$this->name=$x; //将管理员名称传给类对象 $this->pwd=$y; //将管理员密码传给类对象}
function checkinput(){
include(\连接数据库文件
$sql=mysql_query(\* from tb_manager where name='\and pwd='\$conn);
$info=mysql_fetch_array($sql); //检索管理员名称和密码是否正确
if($info==false){ //如果管理
34
$this->name $this->pwd
员名称或密码不正确,则弹出相关提示信息
echo \您输入的管理员名称错误,请重新输入!');history.back();\
exit; }
else{ //如果管理员名称或密码正确,则弹出相关提示信息
echo \管理员登录成功!');window.location='index.php';\
$_SESSION[admin_name]=$info[name]; //将管理员名称存到
$_SESSION[admin_name]变量中
$_SESSION[pwd]=$info[pwd]; //将管理员密码存到$_SESSION[pwd]变量中
}
$obj=new chkinput(trim($name),trim($pwd)); //创建对象
$obj->checkinput(); //调用类
?>
} }
5.2.4查看管理员的实现过程
管理员登录后,选择“系统设置”/“管理员设置”菜单项,进入到查看管理员列表页面。在该页面中,将以表格的形式显示全部管理员及其权限信息,并提供添加管理员信息、删除管理员信息和设置管理员权限的超链接。
首先使用左外联接语句(left join?on)从数据表
35
$bookcase=$_POST[bookcaseid]; //获取图书书架id号$inTime=date(\设置图书更新日期为当前日期
$query=mysql_query(\barcode='$barcode', typeid='$typeid', translator='$translator',
tb_bookinfo
set , ,
bookName='$bookName'
ISBN='$isbn'
author='$author',
price='$price' , page='$page' , bookcase='$bookcaseid', inTime='$inTime', operator='$operator' where id=$bid\//更新数据表
echo \图书信息修改成功!');history.back();\?>
5.3.6 删除图书信息的实现过程
单击想要删除的图书信息后面的“删除”超链接,提交表单信息到数据处理页book_del.php,应用DELETE语句将指定的图书信息从数据表tb_bookinfo中删除,如果删除操作执行成功,则弹出“图书信息删除成功!”提示信息,并将页面重定向到图书信息列表页面。数据处理页的代码如下:
include(\连接数据库文件 $info_del=mysql_query(\id=$_GET[id]\删除指定的图书信息
if($info_del){ //如果信息删除成功,则弹出
46
href=\echo
$result[bookid];?>\
提示
echo \language='javascript'>alert('图书信息删除功!');history.back(); \} ?>
5.4图书借还模块设计
5.4.1 图书借还模块概述
图书借还模块主要包括图书借阅、图书续借、图书归还、图书档案查询、图书借阅查询和借阅到期提醒6个功能。在图书借阅模块中的用户只有一种身份,那就是操作员,通过该身份可以进行图书借还等相关操作。图书借还模块的用例图如图所示。
5.4.2 图书借还模块技术分析
在图书借还模块中涉及的数据表是tb_borrow(图书借阅信息表)、tb_bookinfo(图书信息表)和tb_reader(读者信息表),
47
这3个数据表间通过相应的字段进行关联。
5.4.3图书借阅的实现过程
tb_borrowtb_bookinfotb_reader
管理员登录后,选择“图书借还”/“图书借阅”菜单项,进入到图书借阅页面,在该页面的“读者条形码”文本框中输入读者的条形码(如123456789)后,单击“确定”按钮,系统会自动检索出该读者的基本信息和未归还的借阅图书信息。如果检索到对应的读者信息,则将其显示在页面中,此时输入图书的条 形码或图书名称后,单击“确定”按钮,借阅指定的图书。
图书借阅页面总体上可以分为两个部分:一部分用于查询并显示读者信息,另一部分用于显示读者的借阅信息和添加读者借阅信息。
在进行图书借阅时,系统要求每个读者只能同时借阅一定数量的图书,并且该数量由读者类型表tb_readerType中的可借数量number决定,所以笔者编写了自定义的checkbook()函数,用于判断当前选择的读者是否还可以借阅新的图书,同时该函数还具有判断输入读者条形码或图书名称文本框是否为空的功能。 代码如下:
?
检索读者的基本信息和未归还的借阅图书信息的SQL语句如下:
$sql=mysql_query(\tb_readerType
t
on
r.*,t.name r.typeid=t.id
as where
typename,t.number from tb_reader r left join r.barcode='$barcode'\
$info=mysql_fetch_array($sql); //检索读者信息 获取读者借阅信息的SQL语句如下:
$sql1=mysql_query(\
r.*,borr.borrowTime,borr.backTime,book.bookname,book.price,pub.pubname,bc.name as bookcase from tb_borrow as borr join tb_bookinfo as book on book.id=borr.bookid join tb_publishing as pub on book.ISBN=pub.ISBN join tb_bookcase as bc on book.bookcase=bc.id join tb_reader as r on borr.readerid=r.id where
borr.readerid='$readerid' and borr.ifback=0\
49
alert(\您不能再借阅其他图书了!\
//弹出提示信 息
$info1=mysql_fetch_array($sql1); //检索读者的借阅信息
$borrowNumber=mysql_num_rows($sql1); //获取结果集中行的数目
在“图书条形码”/“图书名称”文本框中输入图书条形码或图书名称后,单击“确定”按钮,检索图书信息是否存在,如果不存在,则向图书借阅信息表中添加该读者的图书的借阅记录,完成图书借阅操作;
否则,弹出该书不能被同一读者重复借阅的提示信息。图书借阅的具体代码如下:
if($_POST[inputkey]!=\如果“图书条形码”/“图书名称”后的文本框不为空
$f=$_POST[f]; //获取用户选择的条件值 $inputkey=trim($_POST[inputkey]); //获取用户输入的查询关键字
$barcode=$_POST[barcode]; //获取读者的条形码 $readerid=$_POST[readerid]; //获取读者id号 $borrowTime=date('Y-m-d'); //图书的借阅时间为系统当前时间
$backTime=date(\ //归还图书日期为当前期日期+30天期限
$query=mysql_query(\* from tb_bookinfo where $f='$inputkey'\
$result=mysql_fetch_array($query); //检索图书信息是否存在
if($result==false){ //如果读者借阅的图书不存在,那么弹出提示信息
echo \该图书不存在!
50
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库PHP+MYsql图书管理系统在线全文阅读。
相关推荐: