database program —— web library…

突然整理发现去年数据库的文档还在。
当时辛辛苦苦码的,可以给大家学习学习。
但是源代码暂时就不贴了,其实大家真看懂了很简单哦~
真的需要的可以给up主留言O(∩_∩)O哈!
貌似所有图片都没法显示,up主将来会再补上的!

 

数据库课程设计报告

 

 

       -------图书馆管理系统

 

 

 

 

 


目 

一:系统开发平台 2

二、数据库规划 3

2.1 任务陈述 3

2.2 任务目标 3

三、系统定义 4

3.1 系统边界 4

3.2 用户视图 4

四:需求分析 4

4.1 用户需求说明 4

4.2 系统需求说明 5

五、数据库逻辑设计 6

5.1 ER 6

5.2 数据字典 6

5.3 关系表 13

六、数据库物理设计 13

6.1 索引 13

6.2 视图 14

七、应用程序设计 19

7.1 功能模块 19

7.2 界面设计 20

7.3 事务设计 29

八、测试和运行 44

九、总结 69

附. 参考文献 71

 

一:系统开发平台

图书管理系统是我们平时在学校当中接触最多的系统之一,也是相对来说十分实用的一个系统。借助这次的数据库课程设计来达到我们的模拟过程。

本系统采用WAMPSERVER集成开发环境,后台使用MySQL简历数据库。

1、服务器端

整体架构:WampServer 2.3

操作系统:Windows 7

服务器:Apache 2.3.14

PHP软件:PHP 5.4

数据库:MySQL 5.5.16

数据库管理系统:phpMyAdmin 3.4.5

开发工具:EmEditor 13.0.4

浏览器:Google Chrome

2、客户端

浏览器:Google Chrome

二、数据库规划

2.1 任务陈述

OnLine Reader Borrower System可以说是一个应运而生的系统,在当前一个信息爆炸的时代,一切的信息都能够成为我们努力追求的目标。尤其像一些前沿发展迅速的行业,如IT行业,有很多经典书籍都值得我们大家去阅读、去吸收,那么我们就很有必要有那么一个网站,能够专门介绍并且带领大家进入这么一些前沿的行业的介绍书籍。

2.2 任务目标

通过对一些在线阅读网站和在线借书网站的实际考察、分析,并结合Online Borrower System的要求以及实际的市场调查,要求实先以下几个主要功能:

网站设计页面要求美观大方、功能全面、操作简单。

网站整体结构和操作流程合理顺畅,实现人性化设计。

规范、完善的基础信息设置。

对操作员设置不同的操作权限,为管理员提供修改权限功能。

对所有读者进行集中管理。

对所有书籍进行集中管理。

实现书籍借阅排行,以便了解当前的畅销书。

实现书籍借阅、书籍续借、书籍归还、电子书籍等功能。

三、系统定义

3.1 系统边界

实现基础信息的管理平台。

要求图书借阅、续借、归还是记下每一笔记录的操作员。

实现对图书借阅、续借和归还过程的全程数据信息跟踪。

提供借阅到期提醒功能,是管理者可以及时了解已经到达归还日期的图书借阅信息。

提供灵活、方便的权限设置功能,是整个系统的管理分工明确。

具有以维护性和易操作性。

3.2 用户视图 

网站设计页面要求美观大方、个性化,功能全面,操作简单。

实现图书借阅排行、了解当前的畅销书。

商品分类详尽,可按不同类别查看图书信息。

提供快速的图书信息、图书借阅检索功能,保证数据查询的灵活性。

实现图书借阅、图书续借、图书归还、电子图书的功能。

实现综合条件查询,如按用户指定条件查询、按日期时间段查询、综合条件查询等。

四:需求分析

4.1 用户需求说明

当以游客身份进行登录的时候能够进入以下版块

1.Index版块,能够显示欢迎界面,以及一些有关于网站的基本介绍

2.Search板块,能够按照关键字进行搜索

3.Rank板块,将所有书籍按照分类,显示每一类最受欢迎,也就是借阅次数最多的三本书

4.Login板块,能够让游客输入用户名、密码进行登录,如果可以的话,最好能够以验证码进行验证登陆

5.Register板块,能够让游客注册信息

 

当以某一个用户身份登录是能够进入以下版块

1.Index版块,能够显示欢迎界面,以及一些有关于网站的基本介绍

2.Search板块,能够按照关键字进行搜索

3.Rank板块,将所有书籍按照分类,显示每一类最受欢迎,也就是借阅次数最多的三本书

4.Information板块,能够显示当前用户的个人基本信息,并且支持一些修改操作

5.BorrowList板块,能够显示当前用户正在借阅的书籍

6.Favourite板块,能够显示当前用户已经选择收藏的书籍

7.Preservation板块,能够显示当前用户已经预定的书籍

8.Logout板块,能够支持让当前用户登出功能

4.2 系统需求说明 

当以普通管理员的身份进行登录的时候能够进入以下版块:

1.Index板块,能够显示欢迎界面,以及一些有关于网站的基本介绍

2.Searh板块,能够按照关键字进行搜索

3.Rank板块,将所有书籍按照分类,显示每一类最受欢迎,也就是借阅次数最多的三本书

4.Add板块,能够允许管理员进行新书增添入库的功能

5.View板块,能够允许管理员对所有书籍进行浏览功能

6.Edit板块,在View板块当中嵌入,能够允许管理员编辑图书信息

7.Delete板块,在View板块当中嵌入,能够允许管理员删除图书性信息

8.Lend板块,能够允许管理员操作借阅图书给读者

9.Preserve板块,能够允许管理员按照预订信息将图书借阅给读者

10.Return板块,能够允许管理员按照还书信息记录图书还书情况

11.BooksOut板块,能够允许管理员列出当前借出图书信息

12.BooksPreserved板块,能够允许管理员列出当前预定图书信息

13.Logout板块,能够支持让当前用户登出功能

 

当以超级管理员的身份进行登录的时候能够进入以下板块:

1.Index板块,能够显示欢迎界面,以及一些有关于网站的基本介绍

2.Searh板块,能够按照关键字进行搜索

3.Rank板块,将所有书籍按照分类,显示每一类最受欢迎,也就是借阅次数最多的三本书

4.Add板块,能够允许超级管理员进行新书增添入库的功能

5.View板块,能够允许超级管理员对所有书籍进行浏览功能

6.Edit板块,在View板块当中嵌入,能够允许超级管理员编辑图书信息

7.Delete板块,在View板块当中嵌入,能够允许超级管理员删除图书性信息

8.Lend板块,能够允许超级管理员操作借阅图书给读者

9.Preserve板块,能够允许超级管理员按照预订信息将图书借阅给读者

10.Return板块,能够允许超级管理员按照还书信息记录图书还书情况

11.BooksOut板块,能够允许超级管理员列出当前借出图书信息

12.BooksPreserved板块,能够允许超级管理员列出当前预定图书信息

13.Manage板块,能够允许超级管理员管理普通用户和普通管理员,并且能够支持设置权限

14.Logout板块,能够支持让当前用户登出功能

 

五、数据库逻辑设计

5.1 ER图


5.2 数据字典

表的结构 book

字段

类型

默认

book_id

int(10)

 

bookname

varchar(100)

 

author

varchar(100)

 

price

double

 

page

int(11)

 

sort_id

int(11)

 

inTime

datetime

 

isInStore

int(11)

1

转存表中的数据 book


字段

类型

默认

book_id

int(10)

 

bookname

varchar(100)

 

author

varchar(100)

 

price

double

 

page

int(11)

 

sort_id

int(11)

 

inTime

datetime

 

isInStore

int(11)

1

表的结构 book

表的结构 book_sort

字段

类型

默认

sort_id

int(11)

 

booksort

varchar(100)

 

转存表中的数据 book_sort

1

Computer

2

Language

3

Art

4

others

表的结构 book_sort

字段

类型

默认

sort_id

int(11)

 

booksort

varchar(100)

 

表的结构 favourite

字段

类型

默认

favourite_id

int(10)

 

reader_id

int(11)

 

book_id

int(11)

 

转存表中的数据 favourite

1

2

1

3

3

5

4

2

5

5

2

23

8

2

46

9

2

43

表的结构 favourite

字段

类型

默认

favourite_id

int(10)

 

reader_id

int(11)

 

book_id

int(11)

 

表的结构 lend_out

字段

类型

默认

lend_id

int(11)

 

book_id

int(11)

 

reader_id

int(11)

 

lendTime

datetime

 

deadline

datetime

 

isReturn

int(11)

0

renewTime

int(11)

0

转存表中的数据 lend_out

字段

类型

默认

lend_id

int(11)

 

book_id

int(11)

 

reader_id

int(11)

 

lendTime

datetime

 

deadline

datetime

 

isReturn

int(11)

0

renewTime

int(11)

0

表的结构 lend_out

表的结构 preservation

字段

类型

默认

preservation_id

int(10)

 

reader_id

int(11)

 

book_id

int(11)

 

deadline

datetime

 

转存表中的数据 preservation

表的结构 preservation

字段

类型

默认

preservation_id

int(10)

 

reader_id

int(11)

 

book_id

int(11)

 

deadline

datetime

 

表的结构 reader

字段

类型

默认

reader_id

int(10)

 

username

varchar(20)

 

password

varchar(1000)

 

email

varchar(20)

 

gender

varchar(10)

 

address

varchar(100)

 

profession

varchar(100)

 

level

int(11)

 

转存表中的数据 reader

1

admin

21232f297a57a5a743894a0e4a801fc3

admin

male

student

SDU

2

2

aaa

47bce5c74f589f4867dbd57e9ca9f808

aaa@aaa.com

Male

aaa

aaa

0

3

lsc

6f6c90e968a4adc904152244698d1dda

lsc@lsc.com

Male

lsc

lsc

0

表的结构 reader

字段

类型

默认

reader_id

int(10)

 

username

varchar(20)

 

password

varchar(1000)

 

email

varchar(20)

 

gender

varchar(10)

 

address

varchar(100)

 

profession

varchar(100)

 

level

int(11)

 

表的结构 return_back

字段

类型

默认

return_id

int(11)

 

book_id

int(11)

 

reader_id

int(11)

 

lendTime

datetime

 

returnTime

datetime

 

isReturn

int(11)

1

转存表中的数据 return_back

字段

类型

默认

return_id

int(11)

 

book_id

int(11)

 

reader_id

int(11)

 

lendTime

datetime

 

returnTime

datetime

 

isReturn

int(11)

1

表的结构 return_back

六、数据库物理设计

6.1 索引

对象名

索引值

book

book_id

reader

reader_id

lend_out

lend_id

return_back

return_id

favourite

favourite_id

preservation

preservation_id

book_sort

sort_id

 

七、应用程序设计

7.1 功能模块

1.index板块,能够显示欢迎界面,以及一些有关于网站的基本介绍

2.searh板块,能够按照关键字进行搜索

3.rank板块,将所有书籍按照分类,显示每一类最受欢迎,也就是借阅次数最多的三本书

4.login板块,能够让游客输入用户名、密码进行登录,如果可以的话,最好能够以验证码进行验证登陆

5.register板块,能够让游客注册信息

6.logout板块,能够支持让当前用户登出功能

7.detail板块,在用户板块和管理员板块当中嵌入,对于普通读者用户,可以支持添加到收藏夹(favourite)、取消收藏、添加到预定图书(preserve)、取消预订功能;对于管理员,则可以进行编辑(edit)和删除(delete)功能

8.individual_information板块,能够显示当前用户的个人基本信息,并且支持一些修改操作

9.individual_borrow_list板块,能够显示当前用户正在借阅的书籍

10.individual_favourite板块,能够显示当前用户已经选择收藏的书籍

11.individual_preservation板块,能够显示当前用户已经预定的书籍

12.books_add板块,能够允许超级管理员进行新书增添入库的功能

13.books_view板块,能够允许超级管理员对所有书籍进行浏览功能

14.books_edit板块,在View板块当中嵌入,能够允许超级管理员编辑图书信息

15.books_delete板块,在View板块当中嵌入,能够允许超级管理员删除图书性信息

16.books_lend板块,能够允许超级管理员操作借阅图书给读者

17.books_in_preservation板块,能够允许超级管理员按照预订信息将图书借阅给读者

18.books_return板块,能够允许超级管理员按照还书信息记录图书还书情况

19.books_out板块,能够允许超级管理员列出当前借出图书信息

20.Books_in_preservation板块,能够允许超级管理员列出当前预定图书信息

21.manage板块,能够允许超级管理员管理普通用户和普通管理员,并且能够支持设置权限

7.2 界面设计

index欢迎界面index.php


注册界面register.php


注册信息不完整


登陆界面login.php


登录信息有误


搜索界面search.php


排行榜rank.php


普通读者用户个人信息individual_information.php


普通读者用户的借阅历史以及当前借阅书籍individual_borrow_list.php


普通读者用户收藏夹individual_favourite.php


管理员管理借出书籍信息books_lend.php


管理员管理还书信息books_return.php


管理员管理预约书籍信息books_preserve.php


管理员列出当前所有借阅出去书籍books_out.php


超级管理员管理普通读者用户和管理员信息manage.php


管理员显示当前所有书籍的信息books_view.php


管理员管理修改当前书籍信息books_edit.php


管理员管理删除当前书籍信息books_delete.php


 

 

7.3 事务设计

1.CSS编写,模板设计

对于本次课程设计,其实一开始最担心的就是需求分析以及数据库的设计;而在代码开始编写阶段,就是担心界面友好设计的一些东西了。当初在课程设计开始就决定使用PHP+HTML+MySQL是因为平时接触更多数据库的机会是在BS或是BSS架构中遇见的,所以这次想从身边比较熟悉的下手;紧接着而来的问题就是如何写一个CSS,将我所需要的界面呈现出来。

这次使用CSS将所需要的模板架构构建出来,核心代码是在文件夹templates下的header.html文件和footer.html文件。

#footer {

padding:20px;

text-align:right;

border-top:1px solid #eee;

margin:0;

color:#999;

}

#header {

border-top:20px solid #BCE77C;

}

#wrapper {

width:900px;

margin:0 auto;

}

这是CSS部分,而后我还需要把CSS部分具体写到html文本当中。 

2.读者用户密码修改

首先这个系统在读者用户密码修改部分是在individual_information部分显示的,所以一个在同一个页面显示的页面需要确定一下逻辑。

A第一次进入,!isset(POST[change]),按确认要修改密码

B第二次进入,isset(POST[change]),让用户进行表单修改,修改密码

C第三次进入,isset(POST[submit]),如果确认修改完成,进入步骤A;否则如果修改有误,则进入步骤B

3.密码的加密

PHP当中的密码加密其实非常简答,只需要我们每次在进行密码存取的时候,调用函数md5()即可。

4.读者用户收藏、预约操作

这个收藏、预约操作都是在detail.php文本当中完成的。大致逻辑如下:

if (isset($_GET['bookname']) && isset($_GET['author'])){

根据书本booknameauthor显示当前书本信息

}elseif(isset($_POST['disfavourite'])){

取消对当前书本的收藏

}elseif(isset($_POST['favourite'])){

将当前书本加入收藏

}elseif(isset($_POST['dispreserve'])){

取消对当前书本的预约

}elseif(isset($_POST['preserve'])){

将当前书本加入预约

}elseif (isset($_GET['book_id'])){

根据书本bookid,显示当前书本信息

}

具体结果就是如下所示:


5.管理员编辑 、删除单本书籍和单类书籍

这里是一个比较细节的一个点,就是当一个管理员如果在view板块对所有书籍进行阅览的时候,可以进行两种操作:


如图所示,可以进行edit和delete操作。在edit界面,我们进入如下板块


这里的“update this item of book”就是只对当前这单本书进行修改,而“update this kind of book”则是对当前这类书都进行修改。前者只修改某一本书,系统所需要的关键语句就是$query = " update book set bookname = '$bookname' , author = '$author', price = '$price', page= '$page', sort_id = $sort_id where book_id = $book_id "也就是进行修改的关键句是按照book_id进行修改的,这也符合了我们对于每一本书的界定就是根据每本书独特的book_id。至于后者,要修改某一类的书,系统规定“update this kind of book”,则要求使用的SQL语句是$query = " update book setbookname = '$bookname', author = '$author', price = '$price', page = '$page', sort_id = $sort_id where bookname='$old_bookname' and author='$old_author'",这里系统实际上是做了这么一个假设,就是所有同一类书籍的booknameauthor,也就是书名和作者是相同的,那么系统就根据每本书的booknameauthor进行修改更新。

另外一个delete板块也相同,$query="delete from book where bookname = '$bookname' and author = '$author'"能够让我们按照书籍的booknameauthor对书本进行删除这一类书籍;$query = "delete from book where book_id = $book_id"则是按照每一本书的有的book_id进行删除

6.超级管理员管理普通读者用户和管理员权限的设置

具体模块代码在manage.php中实现。具体想法就是每一次先进行判断if(isset($_GET['change_id'])),如果当前判断成立,就表示我当前有需要进行权限转换的普通读者用户和普通管理员,所以就利用SQL语句$query3="update reader set level=$to_level where reader_id='$reader_id'"进行权限转换。然后进入正常显示列出表格,如下图所示:


至于中间显示的operation操作,就是change操作,则是让我们进行权限转换操作,这里才用到是html

表单标签,传递方法method= POST ,所以才有了开始的判断if(isset($_GET['change_id'])),从而起到了刷新页面每个用户权限的功能。

7.涉及时间戳的操作

时间戳可以说是整个系统当中细节处理最为重要的一个部分。首先需要区分MySQLPHP当中时间戳的区别以及相互转换:

mysql中有三种时间字段类型:DATETIMEDATETIMESTAMP

DATETIMEYYYY-MM-DD HH:MM:SS格式的字符串来保存数据;

DATE则是只有年月日以YYYY-MM-DD形式的字串;

TIMESTAMP类型和PHP中的TIMESTAMP类型名字一样,但是两者基本上是不同的。

PHP是延用了UNIX时间签的类型为一个整数,而在mysqlTIMESTAMP字段则是随着记录变化而一个自动更新为当时时间的DATETIMP字段。在mysql4.1版本之后TIMESTAMP格式DATETIME格式基本上是一致了。

于是常常需要在phpmsql中对两种格式的Timestamp进行转换。转换方法总结一下:

第一种方法:使用 date()和strtotime()函数

$mysqltime=date('Y-m-d H:i:s',$phptime);

$phptime=strtotime($mysqldate);

第二种方法:在查询语句中使用mysql函数转换:UNIX_TIMESTAMP(DATETIME=>PHP TIMESTAMP)FROM_UNIXTIME(PHP TIMESTAMP=>DATETIME).

$sql="SELECT UNIX_TIMESTAMP(datetimefield) FROM table WHERE ...";

$sql="UPDATE table set datetimefield=FROM_UNIXTIME($phptime) WHERE ..";

第三种方法:就是mysql中使用整数字段来保存phptimestamp类型。

由此三种方法,我们就可以很轻松的解决涉及到时间戳的问题了。首先明确有几个功能需要系统对时间进行一系列的设置:涉及借阅时间的设置,主要有books_lend.phpbooks_retrn.phpindividual_borrowing_list.php;涉及预定时间的设置,主要有indivudual_preservation.phpbooks_in_preservation.phpbooks_preserve_out.php

借阅时间的设置:

本次系统对于借出书籍有一个借出时间和一个还书截止日期,分别是表单lend_outlendTimedeadline属性,而返还书籍则有一个返回时间,对应的是表单return_backreturnTime属性,而每一本书还有一个isInStore属性,用来标记当前这本书是否借出。而后在普通读者用户界面,系统还特地将用户已经借阅的书籍和借阅当中的书籍信息分别显示,中间有一个小点,就是如何判断当前时间是否在deadline之后,方法就是取当前的时间time(),再从数据库当中取出datetime时间deadline,将其转化为UNIX时间戳,方法是strtotime(),最后相减,判断是否大于0,大于0则过期借阅书籍了,否则当前借阅书籍时间还在deadline之内。

中间关键代码就是$currentTime>$tempReturnTime以及$currentTime<$tempReturnTime,就是按照如上所述,利用UNIX时间戳进行的时间早晚判断。

而后在individual_borrow_list.php当中,系统规定可以用一个renew操作,就是可以进行续借功能,实现方式就是将原来时间取出,同时加上十天时间作为续借时间$old = strtotime( $row5['deadline'] )$neo = date('Y-m-d H:i:s',$old+$shiftingTime)。具体代码如下:

if(isset($_GET['renew'])){

$lend_id=$_GET['renew'];

$query5="select from lend_out where lend_id=$lend_id";

$result5=mysql_query($query5,$dbc);

$row5=mysql_fetch_array($result5);

$renewTime=$row5['renewTime'];

if(!$renewTime){

$old=strtotime($row5['deadline']);

$neo=date('Y-m-d H:i:s',$old+$shiftingTime);

echo "{$row5['deadline']}  $old  $neo  $lend_id
";

$query6="update lend_out set renewTime=1 where lend_id=$lend_id";

$query7="update lend_out set deadline='$neo' where lend_id=$lend_id";

$result7=mysql_query($query7,$dbc);

if($result7)

mysql_query($query6,$dbc);

else

echo "

Something wrong!

";

}else{

echo "

You have renewed this book!

";

echo "

You cannot renew the same book twice!

";

exit();

}

}

预定时间的设置:

整个时间戳比较难以考虑处理的地方就是预定时间的设置。首先需要确定的是,系统需要能够提供支持的功能,当某个普通读者用户在预定某本书籍之后,一定时间之内该预定是有效的(本系统为了检测方便,设置为五分钟)而后在有效时间之后,该预定就作废,从预定表单当中删除当前预订记录。这里利用一个数据结构当中的lazy概念,就是只有当我需要查询所有预订信息的时候,我才对当前的预定表进行修改,把超过有效时间的记录删除或者设置为无效,这里的lazy概念其实是十分重要的。

八、测试和运行

首先在数据库当中插入超级管理员

insert into reader (username,password,email,gender,address,profession,level) 

values ('admin',md5('admin'),'admin','male','student','SDU',2)

然后开始进入首页界面

首先进行注册

 自动进入登陆界面

次进入首页界面

进入搜索板块,搜索书名和作者名字当中含有字母“h”的结果

进入热门板块,查看当前所有书籍按照分类的热门度

进入信息板块,查看个人信息

改密码界面

进入借阅历史板块,查看当前借阅书籍以往借阅历史

进入收藏板块,查看当前用户的收藏夹

到搜索或是热门板块随意选择一本书,作为收藏内容

点击“增添收藏” ,显示成功添加收藏

则按钮变为“取消收藏”

同时当前读者用户的收藏夹变味了

点击书名“PHP”或者操作“取消收藏”,进入取消收藏的页面

点击“取消收藏”,显示成功取消收藏

则页面返回“增添收藏”按钮

同时个人收藏夹的页面页边为了

进入预定板块,浏览当前读者用户的预定信息

点击某本书的信息页面,选择预定功能

点击按钮“预定本书”,显示

就变为了“取消预定”

预约列表变成了

回到当前本书的信息页面

点击按钮“取消预订”,显示

同时按钮变为“预定本书”

当前用户的预定列表

当前用户登出

用超级管理员账号进行登录

进入添书板块,能够添加书籍

进入浏览板块,能够预览当前所有书籍信息

进入借书板块,将书籍借阅给读者用户,这里显示的是将ID8的书,借给ID4的读者用户

回头再看浏览板块,ID8的书就不在书架上了

进入借阅中板块,浏览当前所有接触书籍的信息

然后再还书板块当中把书籍归还 

再回到浏览板块,就会发现ID8的书籍已经回到书架

在借阅中板块当中,ID8的书也已经返回了

最后进入的是超级管理员对所有用户,当前状态如图所示

然后系统可以对某一位普通读者用户进行权限变换操作

操作在当前用户我进行某本书籍的预定

那么当我登录另外一个用户的时候,在对当前这么书进行预约,如果当前这类书只有0本,就会出现如下情况 

然后等我登录管理员账号,并且输入预定号码

然后就能过成功将预定书籍借出

在管理员的浏览板块我们会发现只有一本的《c》就借出了

在借阅中板块我们也可以很清楚地看到这本书借给了bbb这个用户

我们转而登录bbb,到了借阅历史板块

发现《c》这本书就到了我们当前借阅的记录

当我们按下续借操作之后,我们就可以把进行续借操作

然后可以发现还书的时间就这样延长了30


之后再点击续借

九、总结

以下是我个人在做系统当中遇到的一些问题

1.借书还书时间的比较,对timestamp有一个很好地理解

2.还书设置,在还书同时更新lend_out,return_back和book表

3.个人收藏夹设置,加入到favourite表

4.设置PHP的mail()函数,设置SMTP,做成一个BSS架构,但是难度比较大,有待完成

5.超级管理员设置

6.修改一类书籍大小设置

7.边界大小的设计,这个需要CSS支持

8.借出书籍的展示

9.对于delete操作,需要我们进行级联删除

10.借书设置,在借出书籍的同时更新book和lend_out

11.MySQL语句的一个重要注意点就是单引号,因为在SQL语句当中,除了数值类型,其他类型的数据都需要单引号包含住,如下所示$query select from book where name $bookname’”

12.修改单本书籍、修改一类书籍、删除单本书籍、删除一类书籍的操作,原样表单提交修改,只要记录原书名、作者,并且以它进行更新即可

13.密码加密

14.在rank板块,当前种类的显示的个数不足三个的时候,我要取出从来没有借出过的书补充道三本

15.板块detail对两种GET进行操作(1)传入book_id(2)传入bookname和author。加入收藏、取消收藏、预定、取消预订功能

16.$mysqltime date (Y-m-d H:i:s,time()    $phptime strtotime  $mysqltime  ;

17.修改密码

A第一次进入,!isset(POST[change]),按确认要修改密码

B第二次进入,isset(POST[change]),让用户进行表单修改,修改密码

C第三次进入,isset(POST[submit]),如果确认修改完成,进入步骤A;否则如果修改有误,则进入步骤B

18.预约功能的实现

预约流程 preservation_id reader_id book_id 到 books_preservation

预约号 预约列表individual_preservation,更新preservation表,if $time strtotime($deadline) delete  到管理员books_preservation 提交预约号

附. 参考文献

PHP for the Web Visual QuickStart Guide —— PHP基础教程

www.w3cschool.com.cn

www.sicshootermedia.com

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值