《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php

《O N E 影视厅》管理系统

作者:shmily

WAMP系统架构

开发平台: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

概念模型设计

《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php_第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;

对于adminreader_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_infoclass_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_inforeader_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_inforeader_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_cardreader_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_inforeader_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>

还有若干超链接,例如点开厅内咨询与每日推荐:

《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php_第2张图片

在任务条中,用户可以实现若干功能。

资源查询

可根据指定的资源名称或者编号查询相关信息:

《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php_第3张图片

查询的实现是在movie_infoclass_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 "";foreach($resaas$row){echo"";echo"";echo"";echo"";echo"";echo"";echo"";echo"";echo"";echo"";echo"";echo"";if($row['state']==1)echo"";elseif($row['state']==0)echo"";elseecho"";echo"";};};echo"
资源号 资源名 导演 主演1 主演2 简介 语言 所需积分 上映日期 分类 资源仓库号 状态
{$row['id']} {$row['name']} {$row['author']} {$row['actor1']} {$row['actor2']} {$row['introduction']} {$row['language']} {$row['price']} {$row['pubdate']} {$row['class_name']} {$row['pressmark']} 在厅 已被下载 无状态信息
"
; } } ?>

我的资源

我的资源中可以显示当前会员所有的下载记录:

《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php_第4张图片

该功能的实现是在lend_listmovie_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 "";
    };
    ?>

个人信息

可以显示该会员的所有信息,并且支持修改功能:

《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php_第5张图片

该功能的实现是在reader_info上执行一条简单的select语句:

    
    $sqla="select * from reader_info where reader_id={$userid} ;";
    $resa=mysqli_query($dbc,$sqla);
    $resulta=mysqli_fetch_array($resa);
    ?>

点击修改:

《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php_第6张图片

reader_cardreader_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 "";
    }
}
?>

密码修改

可以直接修改密码:

《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php_第7张图片

该功能的实现是在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 "";
}
}
?>

证件挂失

该功能提供一键挂失或一键取消挂失:

《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php_第8张图片

点击挂失后:

《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php_第9张图片

页面进入时究竟是显示挂失还是取消挂失,要根据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 "";
    }
}
?>

你可能感兴趣的:(《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php)