作者:shmily
开发平台:Apache2.4.39
前端:Bootstrap框架(基于HTML、CSS、JavaScript)
后端:php+mysql
本系统是一个线上影视资源租用网站,不同于普通需要花钱开会员的网站,本网站向用户提供“租用”服务,需要影视资源时用自己的积分兑换,观赏完后积分自动退回,并且由于网络流量限制,一个资源在同一时刻只允许一名用户使用。网站分为管理员界面和会员界面。
对于管理员,所提供的服务包括:
(一)资源管理
(二)会员管理
(三)用户下载明细管理
(四)密码修改
对于会员,所提供的服务包括:
(一)资源查询
(二)个人数据管理
(三)下载业务
(四)密码及会员证管理
将项目文件夹放在服务器根目录下,在地址栏输入地址http://localhost/one/
即可进入页面
表名 | 解释 |
---|---|
admin | 管理员信息 |
reader_info | 会员信息 |
movie_info | 影视资源信息 |
class_info | 影视类别信息 |
lend_list | 租用下载信息 |
reader_card | 会员证信息 |
admin:
字段名称 | 数据类型 | 长度 | 主外键 | 解释 |
---|---|---|---|---|
admin_id | int | 11 | P | 管理员账号 |
password | varchar | 15 | 账号的密码 |
reader_info:
字段名称 | 数据类型 | 长度 | 主外键 | 解释 |
---|---|---|---|---|
reader_id | int | 11 | P | 会员账号 |
name | varchar | 16 | 姓名 | |
sex | varchar | 2 | 性别 | |
birth | date | 生日 | ||
address | varchar | 50 | 居住地 | |
telcode | varchar | 11 | 电话 |
movie_info:
字段名称 | 数据类型 | 长度 | 主外键 | 解释 |
---|---|---|---|---|
id | bigint | 20 | P | 影视资源号 |
name | varchar | 50 | 资源名 | |
author | varchar | 50 | 导演 | |
actor1 | varchar | 50 | 主演1 | |
actor2 | varchar | 50 | 主演2 | |
introduction | text | 简介 | ||
language | varchar | 10 | 语言 | |
price | decimal | 10,2 | 所需积分 | |
pubdate | date | 上映日期 | ||
class_id | int | 11 | F | 片类别代号 |
pressmark | int | 11 | 所在文件夹号 | |
state | smallint | 6 | 状态 |
class_info:
字段名称 | 数据类型 | 长度 | 主外键 | 解释 |
---|---|---|---|---|
class_id | int | 11 | P | 片类别代号 |
class_name | varchar | 45 | 类别名 |
lend_list:
字段名称 | 数据类型 | 长度 | 主外键 | 解释 |
---|---|---|---|---|
sermun | bigint | 20 | P | 下载流水号 |
id | bigint | 20 | F | 资源号 |
reader_id | int | 11 | F | 会员账号 |
lend_date | date | 下载日期 | ||
back_date | date | 退还日期 |
reader_card:
字段名称 | 数据类型 | 长度 | 主外键 | 解释 |
---|---|---|---|---|
reader_id | int | 11 | P | 会员账号 |
name | int | 16 | F | 姓名 |
password | varchar | 15 | 密码,默认值111111 | |
card_state | smallint | 4 | 会员状态,默认值1 |
文件中admin
开头的为管理员功能,reader
开头的为用户功能,index.php
为登陆页面,mysqli_connect.php
为数据库连接文件。
首先创建数据库,建立好相应的表单:
--
-- 表的结构 `admin`
--
CREATE TABLE `admin` (
`admin_id` int(11) NOT NULL,
`password` varchar(15) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- 表的结构 `movie_info`
--
CREATE TABLE `movie_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`author` varchar(50) NOT NULL,
`actor1` varchar(30) NOT NULL,
`actor2` varchar(13) NOT NULL,
`introduction` text,
`language` varchar(10) NOT NULL,
`price` decimal(10,2) NOT NULL,
`pubdate` date DEFAULT NULL,
`class_id` int(11) DEFAULT NULL,
`pressmark` int(11) DEFAULT NULL,
`state` smallint(6) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- 表的结构 `class_info`
--
CREATE TABLE `class_info` (
`class_id` int(11) NOT NULL,
`class_name` varchar(45) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- 表的结构 `lend_list`
--
CREATE TABLE `lend_list` (
`sernum` bigint(20) NOT NULL AUTO_INCREMENT,
`id` bigint(20) NOT NULL,
`reader_id` int(11) NOT NULL,
`lend_date` date DEFAULT NULL,
`back_date` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- 表的结构 `reader_card`
--
CREATE TABLE `reader_card` (
`reader_id` int(11) NOT NULL,
`name` varchar(16) NOT NULL,
`passwd` varchar(15) NOT NULL DEFAULT '111111',
`card_state` tinyint(4) DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- 表的结构 `reader_info`
--
CREATE TABLE `reader_info` (
`reader_id` int(11) NOT NULL,
`name` varchar(16) NOT NULL,
`sex` varchar(2) DEFAULT NULL,
`birth` date DEFAULT NULL,
`address` varchar(50) DEFAULT NULL,
`telcode` varchar(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
对于admin
和reader_info
,为其添加默认账号与密码:
--
-- 添加表中的数据 `admin`
--
INSERT INTO `admin` (`admin_id`, `password`) VALUES
(20170001, '111111');
--
-- 添加表中的数据 `reader_info`
--
INSERT INTO `reader_info` (`reader_id`, `name`) VALUES
(1501014101, '张华');
对于class_info
,为其添加对应类别:
INSERT INTO `class_info` (`class_id`, `class_name`) VALUES
(1, '喜剧'),(2, '爱情'),(3, '动作'),(4, '枪战'),(5, '犯罪'),(6, '惊悚'),(7, '恐怖'),
(8, '悬疑'),(9, '动画'),(10, '家庭'),(11, '奇幻'),(12, '科幻'),(13, '战争'),
(14, '青春'),(15, '纪录片'),(16,'古装');
在mysqli_connect.php
中,用mysqli_connect()
配置好数据库登录信息:
DEFINE ('DB_USER','root');
DEFINE ('DB_PASSWORD','ls981107');
DEFINE ('DB_HOST','127.0.0.1');
DEFINE ('DB_NAME','library');
DEFINE ('DB_PORT',3307);
$dbc=@mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME,3307) OR die('Could not to connect to Mysql:'.mysqli_connect_error());
mysqli_set_charset($dbc, 'utf8');
?>
用默认的账号密码登录,登录后界面如下:
在admin_index.php
文件中,添加php与sql查询语句,可以显示上图中对于资源数量和会员数量的显示:(由于页面设计部分的php脚本不属于课程要求内容,就未在报告中展示出,在项目源码中查看这部分内容。报告中只写了关键的嵌入式sql语句,下同。)
<h3 style="text-align: center"> echo $userid; ?>号管理员,您好</h3><br/><br/><br/>
<h4 style="text-align: center">
$sql="select count(*) a from movie_info;";
$res=mysqli_query($dbc,$sql);
$result=mysqli_fetch_array($res);
echo "当前共有{$result['a']}部影视佳作。";
?>
</h4>
<h4 style="text-align: center">
$sqla="select count(*) b from reader_card;";
$resa=mysqli_query($dbc,$sqla);
$resulta=mysqli_fetch_array($resa);
echo "共有会员{$resulta['b']}名。";
?>
</h4>
设施一条顶部任务栏并添加相应功能。
全部资源
可以显示系统中已有的全部资源,并支持查询指定影片功能:
例如搜索《隐秘而伟大》:
该页面实现所用到的php sql语句为在movie_info
和class_info
表上的两条查询,一条有where条件,条无where条件。对每一个影视资源还提供了“修改”、“删除”、“下载/退还”功能,究竟是下载还是退还则根据状态码来确定。
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$gjc = $_POST["bookquery"];
$sql="select id,name,author,actor1,actor2,introduction,language,price,pubdate,movie_info.class_id,class_name,pressmark,state from movie_info,class_info where movie_info.class_id=class_info.class_id and ( name like '%{$gjc}%' or id like '%{$gjc}%') ;";
}
else{
$sql="select id,name,author,actor1,actor2,introduction,language,price,pubdate,movie_info.class_id,class_name,pressmark,state from movie_info,class_info where movie_info.class_id=class_info.class_id ;";
}
$res=mysqli_query($dbc,$sql);
foreach ($res as $row){
echo "";
echo "{$row['id']} ";
echo "{$row['name']} ";
echo "{$row['author']} ";
echo "{$row['actor1']} ";
echo "{$row['actor2']} ";
echo "{$row['introduction']} ";
echo "{$row['language']} ";
echo "{$row['price']} ";
echo "{$row['pubdate']} ";
echo "{$row['class_id']} ";
echo "{$row['class_name']} ";
echo "{$row['pressmark']} ";
if($row['state']==1) echo "在厅 "; else if($row['state']==0) echo "已借出 ";else echo "无状态信息 ";
echo "]}'>修改 ";
echo "]}'>删除 ";
if($row['state']==1)echo "]}'>下载 ";
if($row['state']==0)echo "]}'>归还 ";
echo " ";
};
?>
修改功能:
在movie_info
表上运用了update语句:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$boid=$_GET['id'];
$nnam = $_POST["nname"];
$naut = $_POST["nauthor"];
$npubl = $_POST["npublish"];
$nisb = $_POST["nISBN"];
$nint = $_POST["nintroduction"];
$nlan = $_POST["nlanguage"];
$npri = $_POST["nprice"];
$npubd = $_POST["npubdate"];
$ncla = $_POST["nclass_id"];
$npre = $_POST["npressmark"];
$nsta= $_POST["nstate"];
$sqla="update movie_info set name='{$nnam}',author='{$naut}',actor1='{$npubl}',
actor2='{$nisb}',introduction='{$nint}',language='{$nlan}',price='{$npri}',pubdate='{$npubd}',
class_id={$ncla},pressmark={$npre},state={$nsta} where id=$boid;";
$resa=mysqli_query($dbc,$sqla);
if($resa==1)
{
echo "";
echo "";
}
else
{
echo "";
}
?>
删除功能:首先要从movie_info
中查询,根据state信息判断该资源是否已经被租用了,如果没有被租用,表明还在资源库中,可以执行delete语句,如果是个已经被租出去的资源,就不能删除。
<?php
session_start();
$userid=$_SESSION['userid'];
include ('mysqli_connect.php');
$delid=$_GET['id'];
$sqla="select state a from movie_info where id={$delid};";
$resa=mysqli_query($dbc,$sqla);
$resulta=mysqli_fetch_array($resa);
if($resulta['a']==1) {
$sql = "delete from movie_info where id={$delid} ;";
$res = mysqli_query($dbc, $sql);
if ($res == 1) {
echo "";
echo "";
}
else {
echo "删除失败!";
echo "";
}
}
else {
echo "";
echo "";
}
?>
下载功能:输入要下载的用户的会员卡卡号即可。
下载功能的实现首先要判断该用户是否可以下载,也就是从reader_card
中查看state字段是否为正常,如果state=0,表明该会员卡已经被挂失,用户不能下载。
若为正常卡片,首先把下载信息添加到lend_list
中去,并且把该资源的状态设置为0,表明该资源正在被租用,其他用户不可以使用。
if($_SERVER["REQUEST_METHOD"] == "POST"){
$jctsid=$_GET['tsid'];
$reid=$_POST['borrower'];
$sqlc="select card_state from reader_card where reader_id={$reid}";
$resc=mysqli_query($dbc,$sqlc);
$resultc=mysqli_fetch_array($resc);
if($resultc['card_state']==1){
$sqla="insert into lend_list(id,reader_id,lend_date) values ({$jctsid},{$reid},NOW());";
$sqlb="UPDATE movie_info set state=0 where id={$jctsid};";
$resa=mysqli_query($dbc,$sqla);
$resb=mysqli_query($dbc,$sqlb);
if($resa==1 && $resb==1)
echo"";
else echo"";
}
else echo"";
};
?>
退还功能:首先要从lend_list
中更新下载信息,也就是添加归还时间,用NOW()函数实现,然后在movie_info
中将该资源的状态为置位1表示其他用户可以下载。
<?php
$sqle="select sernum from lend_list where id={$bookid}";
$rese=mysqli_query($dbc,$sqle);
$resulte=mysqli_fetch_array($rese);
$sqlc="update lend_list set back_date=NOW() where sernum={$resulte['sernum']};";
$sqld="UPDATE movie_info set state=1 where id={$bookid};";
$resc=mysqli_query($dbc,$sqlc);
$resd=mysqli_query($dbc,$sqld);
if($resc==1 && $resd==1)
echo"";
else echo"";
?>
上架资源
管理员输入资源的相关信息即可上架资源。其中影视仓库号可为一个url链接的编号:
上架资源的sql实现就是对movie_info
表的一条insert语句:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$nnam = $_POST["nname"];
$naut = $_POST["nauthor"];
$npubl = $_POST["npublish"];
$nisb = $_POST["nISBN"];
$nint = $_POST["nintroduction"];
$nlan = $_POST["nlanguage"];
$npri = $_POST["nprice"];
$npubd = $_POST["npubdate"];
$ncla = $_POST["nclass_id"];
$npre = $_POST["npressmark"];
$nsta= $_POST["nstate"];
$sqla="insert into movie_info VALUES (NULL ,'{$nnam}','{$naut}','{$npubl}','{$nisb}','{$nint}','{$nlan}','{$npri}','{$npubd}',{$ncla},{$npre},{$nsta} )";
$resa=mysqli_query($dbc,$sqla);
if($resa==1)
{
echo "";
echo "";
}
else
{
echo "";
}
}
?>
全部会员
可以显示该网站的全部会员的信息,并且支持特定会员的查询:
该页面实现所用到的php sql语句为两条查询,所显示的内容涉及到了reader_info
和reader_card
表,因此要做连接查询,根据查询到的状态码来显示是正常还是挂失中:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$gjc = $_POST["readerquery"];
$sql="select reader_info.reader_id, reader_info.name,sex,birth,address,telcode,card_state from reader_info,reader_card where reader_info.reader_id=reader_card.reader_id and (name like '%{$gjc}%' or reader_id like '%{$gjc}%') ;";
}
else{
$sql="select reader_info.reader_id, reader_info.name, sex, birth, address, telcode, card_state
from reader_info, reader_card where reader_info.reader_id = reader_card.reader_id";
}
$res=mysqli_query($dbc,$sql);
foreach ($res as $row){
echo "";
echo "{$row['reader_id']} ";
echo "{$row['name']} ";
echo "{$row['sex']} ";
echo "{$row['birth']} ";
echo "{$row['address']} ";
echo "{$row['telcode']} ";
if($row['card_state']==1) echo "正常 "; else echo "挂失 ";
echo "]}'>修改 ";
echo "]}'>删除 ";
echo " ";
};
?>
对每一个影视资源还提供了“修改”、“删除”、功能。
修改:
在reader_info
和reader_card
表上运用了update语句,由于所修改的内容涉及到两张表,因此两张表都要更新,否则会有参照完整性错误:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$readid=$_GET['id'];
$nnid = $_POST["nid"];
$nnam= $_POST["nname"];
$nsex = $_POST["nsex"];
$nbir= $_POST["nbirth"];
$nadd= $_POST["naddress"];
$nnte = $_POST["ntel"];
$sqla="update reader_info set reader_id={$nnid},name='{$nnam}',sex='{$nsex}',
birth='{$nbir}',address='{$nadd}',telcode='{$nnte}' where reader_id=$readid;";
$resa=mysqli_query($dbc,$sqla);
$sqlc="update reader_card set name='{$nnam}' where reader_id=$readid;";
$resc=mysqli_query($dbc,$sqlc);
if($resa==1)
{
echo "";
echo "";
}
else
{
echo "";
}
}
?>
删除功能:
首先要明确该会员可以被删除的条件:该会员对所有的资源使用都已经归还。因此先用select查询在lend_list
中该会员是否已经退还所有资源,若没问题,就利用delete从reader_card
和reader_info
中删除。
session_start();
$userid=$_SESSION['userid'];
include ('mysqli_connect.php');
$delid=$_GET['id'];
$sqla="select count(*) a from lend_list where reader_id={$delid} and back_date is NULL;";
$resa=mysqli_query($dbc,$sqla);
$resulta=mysqli_fetch_array($resa);
if($resulta['a']==0) {
$sqla = "delete from reader_card where reader_id={$delid} ;";
$sqlb = "delete from reader_info where reader_id={$delid} ;";
$resa = mysqli_query($dbc, $sqla);
$resb = mysqli_query($dbc, $sqlb);
if ($resa == 1 && $resb == 1) {
echo "";
echo "";
}
else {
echo "删除失败!";
echo "";
}
}
else {
echo "";
echo "";
}
?>
增加会员
管理员输入会员的相关信息即可上架资源:
增加会员的sql实现就是两条insert语句,要在reader_info
和reader_card``中同时添加,其中reader_card
中密码字段为默认值111111,状态字段为1,这些在表单create的时候已经设置好:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$nnid = $_POST["nid"];
$nnam= $_POST["nname"];
$nsex = $_POST["nsex"];
$nbir= $_POST["nbirth"];
$nadd= $_POST["naddress"];
$nnte = $_POST["ntel"];
$sqla="insert into reader_info VALUES ($nnid ,'{$nnam}','{$nsex}','{$nbir}','{$nadd}','{$nnte}')";
$sqlb="insert into reader_card (reader_id,name) VALUES($nnid,'{$nnam}');";
$resa=mysqli_query($dbc,$sqla);
$resb=mysqli_query($dbc,$sqlb);
if($resa==1&&$resb==1)
{
echo "";
echo "";
}
else
{
echo "";
}
}
?>
下载页面显示所有会员下载记录的详情,还提供对特定会员/资源的下载查询:
下载的资源信息从movie_info
表中通过select语句获得。默认的租借期为一个月,在sql语句中用DATE_ADD(lend_date,INTERVAL 1 MONTH)实现应退日期字段。如果lend_list
的back_date字段为空,表明该资源还没有被退还;如果实退日期大于应退日期,表明该会员的下载超过期限,如果是未归还的资源,就默认实退日期为今天,再和应退日期作比较。
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$gjc = $_POST["bookquery"];
$sql="select sernum,lend_list.id,name,reader_id,lend_date,DATE_ADD(lend_date,INTERVAL 1 MONTH) AS yhrq,back_date
from movie_info,lend_list
where movie_info.id=lend_list.id and ( name like '%{$gjc}%'or reader_id like '%{$gjc}% 'or lend_list.id like '%{$gjc}%' ) ;";
}
else{
$sql="select sernum,lend_list.id,name,reader_id,lend_date,DATE_ADD(lend_date,INTERVAL 1 MONTH) AS yhrq,back_date
from movie_info,lend_list
where movie_info.id=lend_list.id;";
}
$res=mysqli_query($dbc,$sql);
foreach ($res as $row){
echo "";
echo "{$row['sernum']} ";
echo "{$row['id']} ";
echo "{$row['name']} ";
echo "{$row['reader_id']} ";
echo "{$row['lend_date']} ";
echo "{$row['yhrq']} ";
echo "{$row['back_date']} ";
echo ""; if($row['back_date']!=null) echo"已退还 ";else echo "未退还";
echo ""; if(date("Y-m-d")>$row['yhrq']) echo"已超期 ";else echo "未超期";
echo " ";
};
?>
修改密码的实现是在admin
表上执行一条update语句:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$passa = $_POST["pass1"];
$passb = $_POST["pass2"];
if($passa==$passb){
$sql="update admin set password='{$passa}' where admin_id={$userid}";
$res=mysqli_query($dbc,$sql);
if($res==1)
{
echo "";
echo "";
}
}
else{
echo "";
}
}
?>
用默认账号密码登录用户端,在主页中,可以显示该会员对资源的使用情况,包括所有下载和已超期待归还情况。界面如下:
对资源使用情况的显示用到了sql中对指定条件的select count(*);
超期情况的显示分两步:首先从lend_list
中找到还没有归还的书,并通过DATE_ADD(lend_date,INTERVAL 1 MONTH)计算出应该归还的日期,接着比较当下日期和应还日期,如果该未退还资源已经超出应还日期,count++,如果最终count=0,您当前没有超期且未退还的资源,否则显示有多少未退还且已经超期的资源,提醒用户尽快归还。
<h4 style="text-align: center">
$sqla="select count(*) a from lend_list where reader_id={$userid} and back_date is NULL;";
$resa=mysqli_query($dbc,$sqla);
$resulta=mysqli_fetch_array($resa);
echo "您目前共下载{$resulta['a']}个影视资源。";
?>
</h4>
<h4 style="text-align: center">
$sqlb="select DATE_ADD(lend_date,INTERVAL 1 MONTH) AS yhrq from lend_list where reader_id={$userid} and back_date is NULL;";
$counta=0;
$resb=mysqli_query($dbc,$sqlb);
foreach ($resb as $row){
if(strtotime(date("y-m-d"))>strtotime($row['yhrq'])) $counta++;
};
if($counta==0) echo "您当前没有超期且未退还的资源。";
else echo "有{$counta}个影视资源已超期,请您及时退还";
?>
</h4>
还有若干超链接,例如点开厅内咨询与每日推荐:
在任务条中,用户可以实现若干功能。
可根据指定的资源名称或者编号查询相关信息:
查询的实现是在movie_info
与class_info
表上使用select,由于在movie_info
中只存放了编号,所以想显示具体的分类名,就要和class_info
做连接查询:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$gjc = $_POST["bookquery"];
if($gjc=="") echo "";
else{
$sqla="select id,name,author,actor1,actor2,introduction,language,price,pubdate,movie_info.class_id,class_name,pressmark,state from movie_info,class_info where movie_info.class_id=class_info.class_id and ( name like '%{$gjc}%' or id like '%{$gjc}%') ;";
$resa=mysqli_query($dbc,$sqla);
$jgs=mysqli_num_rows($resa);
if($jgs==0) echo "";
else{
echo "
资源号
资源名
导演
主演1
主演2
简介
语言
所需积分
上映日期
分类
资源仓库号
状态
";
foreach ($resa as $row){
echo "";
echo "{$row['id']} ";
echo "{$row['name']} ";
echo "{$row['author']} ";
echo "{$row['actor1']} ";
echo "{$row['actor2']} ";
echo "{$row['introduction']} ";
echo "{$row['language']} ";
echo "{$row['price']} ";
echo "{$row['pubdate']} ";
echo "{$row['class_name']} ";
echo "{$row['pressmark']} ";
if($row['state']==1) echo "在厅 "; else if($row['state']==0) echo "已被下载 ";else echo "无状态信息 ";
echo " ";
};
};
echo "
";
}
}
?>
我的资源中可以显示当前会员所有的下载记录:
该功能的实现是在lend_list
和movie_info
表上使用select语句
$sqla="select sernum,movie_info.id,movie_info.name,lend_date,back_date from lend_list,movie_info where reader_id={$userid} and lend_list.id=movie_info.id;";
$resa=mysqli_query($dbc,$sqla);
foreach ($resa as $row){
echo "";
echo "{$row['sernum']} ";
echo "{$row['id']} ";
echo "{$row['name']} ";
echo "{$row['lend_date']} ";
echo "{$row['back_date']} ";
echo " ";
};
?>
可以显示该会员的所有信息,并且支持修改功能:
该功能的实现是在reader_info
上执行一条简单的select语句:
$sqla="select * from reader_info where reader_id={$userid} ;";
$resa=mysqli_query($dbc,$sqla);
$resulta=mysqli_fetch_array($resa);
?>
点击修改:
对reader_card
和reader_info
进行update操作:
reader_info
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$nnam = $_POST["name"];
$nsex = $_POST["sex"];
$nbirth = $_POST["birth"];
$nadd = $_POST["address"];
$nint = $_POST["telcode"];
$sqla="update reader_info set name='{$nnam}',sex='{$nsex}',birth='{$nbirth}',
address='{$nadd}',telcode='{$nint}' where reader_id={$userid};";
$resa=mysqli_query($dbc,$sqla);
$sqlc="update reader_card set name='{$nnam}' where reader_id={$userid};";
$resc=mysqli_query($dbc,$sqlc);
if($resa==1&&$resc==1)
{
echo "";
echo "";
}
else
{
echo "";
}
}
?>
可以直接修改密码:
该功能的实现是在reader_card
上执行update:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$passa = $_POST["pass1"];
$passb = $_POST["pass2"];
if($passa==$passb){
$sql="update reader_card set passwd='{$passa}' where reader_id={$userid}";
$res=mysqli_query($dbc,$sql);
if($res==1)
{
echo "";
echo "";
}
}
else{
echo "";
}
}
?>
该功能提供一键挂失或一键取消挂失:
点击挂失后:
页面进入时究竟是显示挂失还是取消挂失,要根据reader_card
的状态字段判断:
$sqla="select card_state from reader_card where reader_id={$userid} ;";
$resa=mysqli_query($dbc,$sqla);
$resulta=mysqli_fetch_array($resa);
if($resulta['card_state']==0) echo "挂失
点此取消挂失";
else echo "正常
点此挂失";
?>
然后根据返回的状态位对reader_card
做不同的更新处理,0变1,1变0即可。
session_start();
$userid=$_SESSION['userid'];
include ('mysqli_connect.php');
$state=$_GET['id'];
if($state==1){
$sql="update reader_card set card_state=0 where reader_id={$userid}";
$res=mysqli_query($dbc,$sql);
if($res==1)
{
echo"";
echo "";
}
else
{
echo"";
echo "";
}
}
else{
$sqla="update reader_card set card_state=1 where reader_id={$userid}";
$resa=mysqli_query($dbc,$sqla);
if($resa==1)
{
echo"";
echo "";
}
else
{
echo"";
echo "";
}
}
?>