基于PHP、MySQL的网上书店系统

1.用户需求分析

a.用户可以进行登录注册操作

b.用户可以查看书店中的所有书籍

c.用户可以根据自身需求(指定作者、指定书名、指定价格范围)查找特定的书籍

d.用户可以将自己喜欢的书籍添加到购物车并进行下单

e.用户可以查看自己以往的订单记录

2.管理员需求分析

a.管理员可以管理所有书籍信息,可以进行修改书籍信息以及进行上架、下架、修改书籍信息及库存数量操作

b.管理员可以进行添加书籍的操作

c.管理员可以查看所有会员信息,进行对会员的管理,包括修改密码以及注销该会员

d.管理员可以查看所有的订单信息

总体设计:

一、登录

当用户输入邮箱、姓名和密码后,利用form将用户输入的数据传到注册处理页面,由于数据库中不能存入空值,因此要进行不能为空的判断操作。首先给input设置required属性,在注册页面不允许为空,然后将值传入到注册处理页面进行下一步操作。部分重要代码如下:

<form class="form-horizontal"action="../process/zhuce_pro.php" method="post">

<input type="email"class="form-control" name="email" placeholder="邮箱" required="">

<input type="text"class="form-control" name="name" placeholder="姓名" required="">

<button id="btn-signup"type="submit" class="btn btn-info">

<i class="icon-hand-right"></i>&nbsp; 注册</button></form>

注册处理页面利用POST进行接收注册界面传过来的值,首先要进行判断用户是否是从注册页面跳转过来的,如果是通过某种方式直接进入后台处理界面没有进行传值跳转操作则提示用户非法访问并跳转回注册界面,即如果三个值有一个不存在则说明是通过某种方式直接访问的后台,如果两个值存在则说明是通过登录界面进行的跳转。

登录后界面效果图:

二、书店

查询所有书籍的方法selectAll($link,$sql)

该方法用在了用户根据作者姓名查询所有书籍、用户根据书籍名进行模糊查询、用户根据价格范围查询所有书籍。该方法与查询单一书籍的方法不同,由于该方法查询的是所有书籍因此需要返回一个数组,首先定义一个$rows数组变量,然后执行sql语句,通过while循环不断的将查询出来的数据添加到$rows中,执行成功后返回$rows,执行不成功提示用户“没有数据哦”并结束代码执行。代码如下:

function selectAll($link,$sql){$rows=[];

$result=mysqli_query($link,$sql); if(!$result){exit("没有数据哦"); }

while($row=mysqli_fetch_assoc($result)){ $rows[]=$row; } return$rows; }

三、我的订单

开始首先根据session来判断用户是否登录,若未登录则提示用户“未登录,请先登录”然后跳转到登录页面。判断用户如果是登录状态后,利用table和selectAll()方法实现购物车界面。首先制定表头。

<tr><th>订单号</th><th>姓名</th><th>地址</th><th>价格</th><th>状态</th></tr>

然后通过session和selectAll()方法查询出属于该用户的所有订单。并通过foreach遍历,将所有书籍信息显示出来。

$email=$_SESSION['user'];$selectSql="select * from orders where email='{$email}'";

$rows=selectALl($link,$selectSql); $i=0; foreach ($rows as $row) { ?>

<tr class="rem3"><td class="invert-image"> <?php

echo $row['id'];?> </td>

<td><?php echo $row['namea'];?> </td><td><?php echo $row['adress'];?></td>

<td><?php echo $row['price'];?></td><td><?php echo $row['state'];?></td></tr>

<?php } ?>

然后指定根据订单号进行查询指定的订单功能。通过form进行页面之间的传值,然后在处理页面中通过接收到了订单号进行精准查询。代码如下:

<form action="../process/shopcard_pro.php"method="post">

<input type="text" placeholder="请输入..." name="ordid" required>

<input type="submit" value="查询"></form>

四、购物车

开始首先根据session来判断用户是否登录,若未登录则提示用户“未登录,请先登录”然后跳转到登录页面。判断用户如果是登录状态后,利用table和selectAll()方法实现购物车界面。首先制定表头。

<tr><th>序号</th><th>书名</th><th>作者</th><th>数量</th><th>书籍单价</th>

<th>总价</th><th>删除</th></tr>

然后通过session和selectAll()方法查询出属于该用户的所有订单。并通过foreach遍历将所有书籍信息显示出来。定义一个$i变量作为购物车中书籍的顺序,然后每循环一次就使得$i+=1(代码与(七)类似,后面类似代码就不展示了)。因为涉及到删除操作,考虑到用户可能会因为误点而直接删除,因此定义一个方法。重要代码如下:

<script> function del(){varisDel= confirm("是否确认删除?"); return isDel; }</script>

<a href="../process/del_pro.php?name=<?phpecho $row["name"]; ?>" οnclick="return del();">删除</a>

当用户点击a标签删除时询问用户“是否确认删除?”,当用户点击“是”才会跳转页面并进行传值,否则不会进行跳转传值的操作。点击“是”后,通过a标签将书籍的名称传到处理页面,然后在处理页面中定义删除的sql语句进行删除操作,删除完成后跳转回购物车界面即可。

购物车页面还有一个是下单的功能,该功能利用form进行传值到支付页面,然后支付页面中接收到传过来的值,然后将这些值通过sql插入语句添加到订单表中。当用户选择支付完方式,点击支付按钮时,处理页面中定义sql修改语句,将本订单的状态由“未支付”变成“相应的支付方式”。总体效果图如下图所示:

五、管理员管理书籍

当用户点击修改按钮时跳转到修改图书信息的页面,并将书籍名称传到修改图书信息页面,当修改完信息后点击保存按钮后将修改完的信息传入到处理页面,在处理页面中接收传过来的信息,定义sql修改语句,将书籍信息表中的信息修改为用户填入的信息。

当用户点击下架按钮时为了避免管理员误操作,同样询问管理员“是否确认下架?”,若管理员点击“否”则不执行操作,若用户点击“是”,则将书籍名称传到处理页面,在处理页面中需要执行两个操作。首先根据书籍名将该书的所有信息查出来,然后第一个操作是将该书籍添加到已下架表中,为了方便后续的上架操作;第二个操作是将该书籍从书籍信息表中删除。两个操作都执行成功后提示用户“下架成功”并跳转回书籍信息页面。

根据书籍名查询书籍功能也是根据价格查询类似。利用form进行传值,当用户点击查询时传值并跳转到处理页面,在处理页面中获取到传过来的值后定义sql语句进行精确查询,然后将查询出来的内容显示出来即可。总体效果图如下图所示:

上架图书:

需源码:

q: one three five one zero nine seven four three one

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值