三者之间的联系:前台获取数据库里面的数据,提交数据到数据库,都要通过php(就是我们说的后台),php充当桥梁。下面就以简单的“订餐”来介绍三者之间具体要做什么事。
一、前台
1、前台,通俗来说就是展示给用户看的页面,那么我们在写页面的时候就要考虑到,我们要展示什么,在页面的展示位置以及数据从哪来。今天要说的这个小例子就是:我们先利用Ajax向后台发送请求,后台执行连接数据库操作,将获取的数据传送给前台,前台就获取了菜单,展示在页面上,然后用户开始点餐,点好之后将提交数据到后台,后台再将数据写入数据库。在这里,我们以form表单提交数据。
2、获取与提交数据前台要写的代码:
①获取数据库数据:具体的过程都有注释,注意,form的action属性值是提交数据的接口,而Ajax的open方法里面是获取数据的接口,一定要注意区分。

二、后台
1、从数据库获取数据,后台要写的代码:
①连接数据库:$link=mysqli_connect("localhost","root","","mydb");
备注:参数1,本地;参数2,root(这里根据具体的项目可更改);参数3,数据库密码(我们没有密码,就设置为空);参数4,数据库名称(就是包含着很多数据表的)。
②连接错误处理(这步在平时练习时可以忽略,为了严谨,我们还是加上吧):

③写操作数据库的语句:
例如:查询,因为我们这里是要从后台获取数据,所以用查询。代码如下:
$sql="select * from menu1";//select * from 表名;表示查询数据表menu1里面的所有数据。
④将上述操作语句写入连接:$result=mysqli_query($link,$sql);
⑤查询成功,我们获取所有的数据$data=mysqli_fetch_all($result,MYSQLI_ASSOC);
备注:如果查询成功 ,就会返回一个结果集对象;可以使用结果集对象方法来获得记录;第一个方法fetch_all,返回所有的结果;MYSQLI_ASSOC 以关联数组的形式输出结果;MYSQLI_NUM,以数字下标的形式输出结果,此为默认。
⑥写好之后关闭连接:
mysqli_close($link);
特别提醒:上述的②⑥在不要求严谨的情况下可以省略,但是①③④⑤一定不能省。下图很醒目,主要操作的几步:

2、将数据通过后台提交到数据库,后台要写的代码:(注意加粗的代码)
首先判断用户提交的数据是否为空:
if(!empty($_POST["btn"])){
//循环遍历用户选择的checkbox的“id”;
foreach($_POST['id'] as$key =>$val){
//$val 用户选择的id值,需要转化,确保数据安全。
$menu_id=intval($val);
//订餐份数num_id;
$amount=intval($_POST['num_'.$menu_id]);
//前天数据转化好了以后就要提交数据了,还是老一套,首先建立连接
$link = mysqli_connect("localhost","root","","mydb");
//解决乱码问题
mysqli_set_charset($link,"utf8");
根据前台动态生成数组时,拼接的data[i].id取值从数据库取值。
$sql="select name,price from menu1 where id=".$menu_id;
$result=mysqli_query($link,$sql);
$row=mysqli_fetch_ASSOC($result);
//生成sql语句
$date = date("Y-m-d H:i:s");
$sql = "insert into orderlist(menu_name,menu_price,amount,createDate)";
$sql .=" values ('{$row['name']}','{$row['price']}','$amount','$date')";
//将操作语句写入连接
$result = mysqli_query($link,$sql);
//关闭连接
mysqli_close($link);
}
总结:上述就是完整的前后台与数据库之间的操作,当然这里只是最最基础的内容,后期都是在此基础之上拓展。