1.2项目的用例图
1.3用户登录
用户登录成功后跳转到商品显示页面
1.3.1设计界面
新建一个login.php页面,用来做用户的登录
1.3.2登录业务原理
通过输入的用户名和密码查询到对应的记录,表示登录成功,否则登录失败。SQL语句如下:
select * from `user` where username='aa' and `password`='aa'
1.3.3业务逻辑的实现重点
$mysqli -> connect_error返回连接错误的原因
$res->num_rows:用来显示结果集的记录数
在PHP中用header()头跳转,语法:header('location:URL地址');
代码如下:
1.5管理员管理之添加商品
1.5.1界面设计
在admin文件夹下添加add.php页面,用来实现添加商品的功能,界面设计如下:
1.5.2回顾js的对象
1、HTML对象,就是HTML标签
2、脚本对象
a)String:字符串
b)Math:数学
c)Date:日期
3、浏览器对象
a)Window对象
b)History:历史
i.History.back() = history.go(-1)
ii.History.forward() = history.go(1)
iii.History.go(数字)
c)location
i.属性:location.href=’地址’
ii.方法:
1.Location.assign(‘地址’)
2.Location.reload(‘地址’)
3.Location.replace(‘地址’);
1.5.3回顾页面跳转的方法
1、HTML跳转
a)标记
2、PHP跳转
a)Header(‘location:url地址’);
3、Js跳转
a)Location对象属性描述例题
href通过属性跳转,可以返回Location.href=’admin.php’
方法
assign通过方法跳转,可以方法Location.assign(‘admin.php’)
reload可以实现跳转,可以返回。一般用他做刷新Location.relaod(‘admin.php’)
Location.realod()刷新
Replace跳转,不能返回Location.replace(‘admin.php’);
1.5.4Add.php页面的返回功能
1.5.5Add.php页面验证表单
回顾用到的知识点:
1、onsubmit:当表单提交的时候
2、οnsubmit=’return false’:终止向服务器提交
function sub(){
var name=document.getElementById('name');
//验证姓名
if(name.value==''){
alert("请输入姓名");
name.focus();
return false;
}
var sex=document.getElementById('sex');
//验证性别
if(sex.value==''){
alert("请输入性别");
sex.focus();
return false;
}
var add=document.getElementById('add');
//验证地址
if(add.value==''){
alert("请输入地址");
add.focus();
return false;
}
var score=document.getElementById('score');
//验证分数
if(score.value==''||isNaN(score.value)){
alert("分数只能为数字");
score.focus();
return false;
}
}
当表单提交的时候,调用验证表单的方法
1.5.6添加商品的业务逻辑
if (isset($_POST['submit'])) {
//获取提交的数据
$name=$_POST['name'];
$sex=$_POST['sex'];
$add=$_POST['add'];
$score=$_POST['score'];
//连接数据库
$mysql=new mysqli("localhost",'root',123456,'aa',3306);
if ($mysql->connect_errno){
die('connect fail!'.$mysql->connect_error);
}
$mysql->set_charset('utf8');
//拼接一个sql语句
$sql="insert into stu (name,sex,`add`,score)values ('$name','$sex','$add','$score')";
//执行sql语句
if($mysql->query($sql)){
echo "添加成功";
header('location:admin.php');
}else{
echo "添加失败";
}
}
?>
SQL语句分为两类
1、数据查询语句:select show
2、数据操作语句:insert 、update、delete、drop
只有数据查询语句才有记录集返回
数据查询语句执行
成功返回记录集
失败返回FALSE
数据操作语句
成功返回TRUE
失败返回false
1.6管理员管理之修改商品
1.6.1Get传递和post传递的区别GETPOST
外观上在地址上看到传递的参数和值地址栏上看不到数据
提交数据大小提交少量数据,不同的浏览器最大值不一样,ie是2K提交大量数据,可以通过更改php.ini配置文件来设置post提交数据的最大值
安全性低高
提交原理提交的数据和数据之间在独立的把所有提交的数据变成一个整体一起提交。(将提交的数据变成XML格式提交)
灵活性很灵活,只要有页面的跳转就可以get传递数据。不灵活,必须要表单的参与
1.6.2数据的GET传递
在url后面通过?来传递参数,
获得get提交的数据
可以传递多个参数,每个参数之间用&连接
Php页面获得值
Js也可以传递GET提交的数据
1.6.3新建修改页面
在admin文件夹中,新建一个modify.php页面,设计页面如下(与添加商品页面一样):
1.6.4点击admin.php页面的“修改”按钮
点击admin.php页面的“修改”按钮,跳转到modify.php页面,同时要传递一个修改商品的编号。
1.6.5在modify.php页面取出需要修改的数据
从数据库取得数据后,依次付给文本框。
完整代码如下:
$id=$_GET['id'];
$mysqli=new mysqli('localhost','root',123456,'aa',3306);
if ($mysqli->connect_errno){
die('connect fail!'.$mysqli->connect_error);
}
$mysqli->set_charset('utf8');
if(isset($_POST['submit'])) {
$name=$_POST['name'];
$sex=$_POST['sex'];
$add=$_POST['add'];
$score=$_POST['score'];
$sql="update stu set name='$name',sex='$sex',`add`='$add',score='$score' where id=$id";
if ($mysqli->query($sql)) {
header('location:admin.php');
}else{
echo '修改失败';
exit();
}
}
//去除id对应的商品
$sql="select * from stu where id=$id";
$res=$mysqli->query($sql);
$row=$res->fetch_array();
?>
修改学生 | |
---|---|
姓名 | > |
性别 | > |
地址 | > |
分数 | > |
1.6.6点击修改,实现修改逻辑
1.7管理员管理之删除商品
1.7.1点击删除的时候,提示是否要删除
1.7.2点击删除的时候调用jump()函数
调用jump()函数,传递一个删除的id编号。
1.7.3删除业务逻辑
在admin文件夹下新建del.php,用于执行删除业务逻辑。
在del.php页面中,获取需要删除的id号,删除后返回admin.php页面
1.8分页功能
思路:
通过limit语句取出当前页面的数据页码SQL语句
1select * from products limit 0,10
2select * from products limit 10,10
3select * from products limit 20,10
一页放10条记录($pagesize),请写出起始位置($startno)和页码($pageno)关系?
$startno=($pageno-1)*$pagesize;
1.8.1分页的流程
1.8.2求总记录数
1.8.3总页数
总记录数/页面大小,向上取整。
1.8.4循环输出页码
1.8.5获取传递的页面
1.8.6求当前页的起始位置
1.8.7获取当前页的记录
1.8.8循环取出内容
1.8.9作业
点击下面的按钮,进行分页
核心代码:
获取到当前页后判断一下,页码是否超过范围