目录
前言
这篇是单词的接口篇,web端、小程序端 、管理端每一个一个文章。
下面的接口不支持跨域访问,如果想跨域访问可以自己在定义一个php文件,分别引用就好了
<?php
// header("Content-type:application/json;charset=utf-8");
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:GET,POST,OPTIONS');//跨域访问
?>
接口都是用php,没有用php的框架,接口也比较简单,对数据库的增删改查。
web端、管理端 、小程序端、截图效果如下:
web端:(模仿猫眼电影做的)
管理端:
移动端(微信小程序):图片都是url地址,有些可能链接变了,所以没显示出来
其中的一个测试接口效果图:(这个是get请求,不需要发包,专业测试接口建议使用postman)
1.开发技术
1.1PHP概述
php是(超文本预处理器)的缩写,是一种服务器端、跨平台、HTML嵌入式的脚本语言,其独特的语法混合了C语言、Java语言和Perl语言的特点,是一种被广泛应有的开源式的多用途脚本语言,尤其适合Web开发。
1.2MySQL概述
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,增加了速度并提高了灵活性。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,网站使用其作为数据库管理系统。
1.3Apache概述
Apache是使用最广泛的Web服务器软件。它是一个免费提供的开源软件。Apache快速,可靠,安全。它可以通过使用扩展和模块进行高度定制,以满足许多不同环境的需求。大多数WordPress托管服务提供商使用Apache作为其Web服务器软件。
1.4HBuilder编辑器
HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。 HBuilder的编写用到了html、css、JavaScript和php。
1.5Navicat for MySQL数据库管理工具
Navicat for MySQL是一款强大的MySQL数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具。使用了极好的图形用户界面(GUI),可以用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。啊
2.项目需求
2.1管理端功能需求
艾米电影管理系统主要包括首页、电影管理、电影上架、订单信息、设置五个板块。首页板块主要是给为管理者展示电影数、用户数、订单数、影院数、今日收益的信息、添加删除影院;电影管理页面可以展示所有上架的电影信息,可以对电影进行修改信息操作;电影上架页面可以上架电影信息,填写相应的电影信息。订单信息页面展示所有用户的订单信息,管理者可以删除订单信息等等。
综上所述,为管理端提供的12个接口,包括:管理者登录接口、添加电影接口、修改电影信息接口、删除电影信息、显示电影信息接口等
2.2移动端功能需求
艾米电影购票微信小程序主要包括首页、影院、订单、个人中心四个板块。首页板块主要是给用户提供上映电影的信息,客户可以在里面进行了解与购买;影院板块是给游客提供搜选择不同的电影院,用户选择影院后可以了解该影院有什么电影,以及购买电影票;订单板块显示了用户的购票记录;个人中心板块可以登录、注册账号等。
综上所述,为移动端提供的7个接口,包括:用户登录、注册接口、显示电影信息接口、热播电影接口、用户订单接口、购买电影票接口、影院显示接口。
3.数据库设计
数据库的实现是使用Navicat for SQL Server 是一个全面的图形化方式管理数据库,它提供良好的图形界面,快速的创建数据库和数据表
3.1数据库结构设计
admin表
此表来存储管理者的账户信息,表结构如表1所示:
字段 |
类型 |
长度 |
是否为空 |
是否为主键 |
id |
int |
11 |
否 |
是 |
username |
varchar |
255 |
否 |
否 |
password |
varchar |
255 |
否 |
否 |
表1 admin表
yhxx表
此表来存储用户的账户信息,表结构如表2所示:
字段 |
类型 |
长度 |
是否为空 |
是否为主键 |
id |
int |
11 |
否 |
是 |
username |
varchar |
255 |
否 |
否 |
password |
varchar |
255 |
否 |
否 |
phonenum |
varchar |
11 |
否 |
否 |
表2 User表
cinema表
此表来存储影院的名称和地址信息,表结构如表3所示:
字段 |
类型 |
长度 |
是否为空 |
是否为主键 |
id |
int |
11 |
否 |
是 |
moviename |
varchar |
255 |
否 |
否 |
movpro |
varchar |
255 |
否 |
否 |
movcit |
varchar |
255 |
否 |
否 |
movarea |
varchar |
255 |
否 |
否 |
表3 cinema表
此表来存储电影信息,包括电影名称、时长、类型、评分等信息,表结构如表4所示:
字段 |
类型 |
长度 |
是否为空 |
是否为主键 |
id |
int |
11 |
否 |
是 |
name |
varchar |
255 |
否 |
否 |
lx |
varchar |
255 |
否 |
否 |
pf |
varchar |
255 |
否 |
否 |
time |
date |
0 |
否 |
否 |
imgname |
char |
255 |
否 |
否 |
intro |
varchar |
255 |
否 |
否 |
director |
varchar |
255 |
否 |
否 |
area |
varchar |
255 |
否 |
否 |
tostar |
varchar |
255 |
否 |
否 |
longtime |
varchar |
255 |
否 |
否 |
表4 dy2表
此表来存储所有用户订单信息,包括购票时间、座位、电影院等信息,表结构如表5所示:
字段 |
类型 |
长度 |
是否为空 |
是否为主键 |
id |
int |
11 |
否 |
是 |
username |
varchar |
255 |
否 |
否 |
movname |
varchar |
255 |
否 |
否 |
buytime |
date |
0 |
否 |
否 |
seat |
varchar |
255 |
否 |
否 |
money |
float |
0 |
否 |
否 |
ticketsum |
int |
2 |
否 |
否 |
cinema |
varchar |
255 |
否 |
否 |
表5 booking表
此表来记录当天播放的电影信息,表结构如表6所示:
字段 |
类型 |
长度 |
是否为空 |
是否为主键 |
id |
int |
11 |
否 |
是 |
movname |
varchar |
255 |
否 |
否 |
movplaytime |
datetime |
0 |
否 |
否 |
表6 neartime表
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for admin -- ---------------------------- DROP TABLE IF EXISTS `admin`; CREATE TABLE `admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of admin -- ---------------------------- INSERT INTO `admin` VALUES ('1', 'admin', '123456'); |
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for yhxx -- ---------------------------- DROP TABLE IF EXISTS `yhxx`; CREATE TABLE `yhxx` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(11) NOT NULL, `password` varchar(11) NOT NULL DEFAULT '', `phonenum` varchar(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of yhxx -- ---------------------------- INSERT INTO `yhxx` VALUES ('1', 'admin', '123456', '88888888'); |
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for cinema -- ---------------------------- DROP TABLE IF EXISTS `cinema`; CREATE TABLE `cinema` ( `id` int(11) NOT NULL AUTO_INCREMENT, `moviename` varchar(255) DEFAULT NULL, `movpro` varchar(255) DEFAULT NULL, `movcit` varchar(255) DEFAULT NULL, `movarea` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of cinema -- ---------------------------- INSERT INTO `cinema` VALUES ('1', '横店电影城', '浙江省', '杭州市', '钱塘区'); INSERT INTO `cinema` VALUES ('2', '歌纳国际影城', '浙江省', '杭州市', '萧山区'); INSERT INTO `cinema` VALUES ('3', '银河欢乐影城', '浙江省', '杭州市', '拱墅区'); INSERT INTO `cinema` VALUES ('4', 'first·私影', '浙江省', '绍兴市', '越城区'); INSERT INTO `cinema` VALUES ('5', '金象国际影城', '浙江省', '绍兴市', '柯桥区'); INSERT INTO `cinema` VALUES ('6', '凤凰电影城', '江苏省', '南京市', '玄武区'); INSERT INTO `cinema` VALUES ('7', '塞纳欢乐影城', '福建省', '福州市', '台江区'); INSERT INTO `cinema` VALUES ('8', '德赛电影院', '福建省', '莆田市', '城厢区'); |
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for booking -- ---------------------------- DROP TABLE IF EXISTS `booking`; CREATE TABLE `booking` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `movname` varchar(255) DEFAULT NULL, `buytime` date DEFAULT NULL, `seat` varchar(255) DEFAULT NULL, `money` float DEFAULT NULL, `ticketsum` int(11) DEFAULT NULL, `cinema` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of booking -- ---------------------------- INSERT INTO `booking` VALUES ('1', 'admin', '海上钢琴师', '2022-06-04', '4排3座 4排5座 4排6座', '90', '3', '横店电影城'); INSERT INTO `booking` VALUES ('2', 'adfad', '悲伤逆流成河', '2022-02-24', '7排45座', '40', '1', '横店电影城'); INSERT INTO `booking` VALUES ('3', 'vidshfa', '叶问3', '2022-05-18', '5排3座', '50', '2', '横店电影城'); INSERT INTO `booking` VALUES ('5', 'admin', '黎乡遇见你', '2022-06-07', '6排7座 6排8座 7排7座 7排8座 ', '120', '4', '横店电影城'); INSERT INTO `booking` VALUES ('6', 'admin', '黎乡遇见你', '2022-06-07', '6排7座 6排8座 7排7座 7排8座 ', '120', '4', '横店电影城'); INSERT INTO `booking` VALUES ('7', 'admin', '黎乡遇见你', '2022-06-07', '7排9座 7排10座 8排9座 8排10座 ', '120', '4', '横店电影城'); INSERT INTO `booking` VALUES ('8', 'admin', '黎乡遇见你', '2022-06-07', '7排9座 7排8座 8排8座 8排9座 ', '160', '4', '德赛电影院'); INSERT INTO `booking` VALUES ('9', 'admin', '黎乡遇见你', '2022-06-07', '7排10座 7排9座 ', '80', '2', '银河欢乐影城'); INSERT INTO `booking` VALUES ('10', 'admin', '黎乡遇见你', '2022-06-07', '6排9座 6排8座 7排8座 7排9座 ', '120', '4', '歌纳国际影城'); INSERT INTO `booking` VALUES ('11', 'tom', '爱情神话', '2022-06-07', '5排6座 5排7座 5排8座 ', '120', '3', '银河欢乐影城'); INSERT INTO `booking` VALUES ('12', 'tom', '中国机长', '2022-06-25', '5排5座 6排5座 7排5座 ', '60', '3', '横店电影城'); |
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for neartime -- ---------------------------- DROP TABLE IF EXISTS `neartime`; CREATE TABLE `neartime` ( `id` int(11) NOT NULL AUTO_INCREMENT, `movname` varchar(255) DEFAULT NULL, `movplaytime` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of neartime -- ---------------------------- INSERT INTO `neartime` VALUES ('1', '你的婚礼', '2022-06-05 11:00:27'); INSERT INTO `neartime` VALUES ('2', '肖申克的救赎', '2022-06-05 13:00:56'); INSERT INTO `neartime` VALUES ('3', '那些年,我们追过的女孩', '2022-05-05 11:01:39'); INSERT INTO `neartime` VALUES ('4', '少年的你', '2022-06-05 17:01:57'); INSERT INTO `neartime` VALUES ('5', '悲伤逆流成河', '2022-06-05 19:02:26'); INSERT INTO `neartime` VALUES ('6', '送你一朵小红花', '2022-07-05 11:02:53'); |
4.系统的实现
4.1数据库与后台的连接实现
Apache作为Web服务器软件,MySQL作为数据库,PHP作为服务器端脚本解释器。Apache可以运行在所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,MySQL对PHP有很好的支持,PHP是比较流行的Web开发语言,操作实现如下:
使用XAMPP建站集成软件包,启动方法,先找到项目的根目录下的xampp.exe可执行文件,启动Apache和MySQL服务如图4.1-1所示
图4.1-1 xampp启动界面
使用Navicat for MySQL,搭建数据库环境
新建连接设置端口,新建数据库,选择字符集 UTF-8,创建数据表,为数据表数据。如图4.1-2所示:
图4.1-2 创建连接、数据库、数据表
使用php连接MySQL数据库执行SQL语句。
创建conn.php文件,存放连接数据库的相关配置信息,如图4.1-3所示:
图4.1-3 conn.php文件
连接数据库,并执行SQL语句,代码如图4.1-4所示:
图4.1-4 连接数据等代码
4.2前后端数据交互的实现方式
电影管理系统使用bootstrap框架搭建前端页面,使用原生js+Ajax+PHP的方式实现前端与后端的数据交互,前端使用post或get的方式发送请求,PHP使用$_GET、$_POST等方式接受数据,将处理后的数据以json字符串的方式返回。前端Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。创建XMLHttpRequest实例,使用open()方法,包含请求(post、get)、url地址和是否异步执行操作,使用send()方法发送,最后使用在onreadystatechange回调函数访问成功后获取数据,通过JSON.parse()方式解析数据,最后在前端页面渲染后上显示,代码如下所示。
odl.onclick = function() { var postData = {"username":yhm.value,"password": mm.value}; var xhr = new XMLHttpRequest(); xhr.open("POST", "php/login.php", true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function() { var XMLHttpReq = xhr; if (XMLHttpReq.readyState == 4 && XMLHttpReq.status == 200) { var oDt = JSON.parse(xhr.response); if(oDt.code==1){ localStorage.adminuser=yhm.value; window.location.href="index.html"; }else{alert("登录失败"); } } }; xhr.send(postDate1(postData)); } function postDate1(obj) { var str = ""; for (var prop in obj) { str += prop + "=" + obj[prop] + "&" } return str; } |
php接受数据的方式根据前端请求方式,使用$_GET、$_POST等方法接收数据,然后将数据进行处理后以json字符串的方式返回。代码如下所示:
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 $nameuser = $_POST["username"]; $pwd= $_POST["password"];//获取数据 $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="select * from admin where username ='{$nameuser}' and password='{$pwd}'"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
4.3管理端后台接口的实现
Web管理端通过使用Ajax请求服务器端的接口,使用post和get两种方式请求,PHP使用通过$_GET[]和$_POST[]接受数据,并返回json字符串。
生成Json字符串包含在je.php文件,代码如下所示:
<?php function my_json_encode($array) { if(version_compare(PHP_VERSION,'5.4.0','<')){ $str = json_encode($array); $str preg_replace_callback("#\\\u([0-9a-f]{4})#i" ,function($matchs){ Returniconv('UCS-2BE','UTF-8',pack('H4', $matchs[1])); },$str); return $str; }else{ return json_encode($array, JSON_UNESCAPED_UNICODE); } } ?> |
4.4登录接口的实现
管理者登录接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 $nameuser = $_POST["username"]; $pwd= $_POST["password"];//获取数据 $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="select * from admin where username ='{$nameuser}' and password='{$pwd}'"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
添加电影接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 $nameuser = $_POST["username"]; $pwd= $_POST["password"];//获取数据 $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="select * from admin where username ='{$nameuser}' and password='{$pwd}'"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
修改电影接口,PHP代码如下所示
<?php header('content-type:text/html;charset="utf-8"'); error_reporting(0); require_once 'conn.php'; require_once 'je.php'; $conn=new mysqli($hn,$un,$pw,$db,$port); if($conn->connect_error) die($conn->connect-error); $id=$_POST['id']; $oname=$_POST['name']; $olx=$_POST['lx']; $opf=$_POST['pf']; $otime=$_POST['time']; $oimgurl=$_POST['imgname']; $otxt=$_POST['intro']; if($oname && $olx&& $opf&& $otime&& $oimgurl&& $otxt&& $id){ $query="UPDATE dy2 SET name= '{$oname}',lx='{$olx}',pf='{$opf}',time='{$otime}',imgname='{$oimgurl}',intro='{$otxt}' WHERE id='{$id}'"; $conn->query('set names utf8'); // echo $query; $result=$conn->query($query); if(!$result) die($conn->error); if($conn->affected_rows<1){ $json_arr = array("code"=>0,"info"=>"添加失败"); } else{ $json_arr = array("code"=>1,"info"=>"添加成功"); } $json_obj = my_json_encode($json_arr); echo $json_obj; } $result->close(); $conn->close(); ?> |
删除电影接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $id = $_REQUEST["id"]; $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="DELETE FROM dy2 WHERE id = '{$id}'"; $conn->query('set names utf8'); // echo $query; $result=$conn->query($query); if(!$result) die($conn->error); if($conn->affected_rows<1){ $json_arr = array("code"=>0,"info"=>"删除失败"); } else{ $json_arr = array("code"=>1,"info"=>"删除成功"); } $json_obj = my_json_encode($json_arr); echo $json_obj; ?> |
显示电影接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="SELECT * FROM dy2"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
查询影院接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $omovname = $_REQUEST["movname"]; $opro = $_REQUEST["pro"]; $ocit = $_REQUEST["cit"]; $oarea = $_REQUEST["area"];//获取数据 $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="insert into cinema(`moviename`,`movpro`,`movcit`,`movarea`) value('{$omovname}','{$opro}','{$ocit}','{$oarea}')"; $conn->query('set names utf8'); // echo $query; $result=$conn->query($query); if(!$result) die($conn->error); if($conn->affected_rows<1){ $json_arr = array("code"=>0,"info"=>"添加失败"); } else{ $json_arr = array("code"=>1,"info"=>"添加成功"); } $json_obj = my_json_encode($json_arr); echo $json_obj; ?> |
添加影院接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $omovname = $_REQUEST["movname"]; $opro = $_REQUEST["pro"]; $ocit = $_REQUEST["cit"]; $oarea = $_REQUEST["area"];//获取数据 $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="insert into cinema(`moviename`,`movpro`,`movcit`,`movarea`) value('{$omovname}','{$opro}','{$ocit}','{$oarea}')"; $conn->query('set names utf8'); // echo $query; $result=$conn->query($query); if(!$result) die($conn->error); if($conn->affected_rows<1){ $json_arr = array("code"=>0,"info"=>"添加失败"); } else{ $json_arr = array("code"=>1,"info"=>"添加成功"); } $json_obj = my_json_encode($json_arr); echo $json_obj; ?> |
查询所有订单接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="SELECT * FROM booking"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
查询不同地区影院接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="SELECT * FROM cinema GROUP BY movpro"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> <?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $area=$_REQUEST['area']; $query="SELECT * FROM cinema WHERE movpro='{$area}' GROUP BY movcit"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> <?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $area=$_REQUEST['pro']; $area1=$_REQUEST['cit']; $query="SELECT * FROM cinema WHERE movpro='{$area}' AND movcit='{$area1}'"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> <?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $area=$_REQUEST['area']; if($area!="全部"){ $query="SELECT * FROM cinema WHERE movpro='{$area}'"; }else{ $query="SELECT * FROM cinema"; } $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
放映电影时间接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="SELECT * FROM neartime ORDER BY movplaytime DESC LIMIT 5"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
删除影院接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $id = $_REQUEST["id"]; $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="DELETE FROM cinema WHERE id = '{$id}'"; $conn->query('set names utf8'); // echo $query; $result=$conn->query($query); if(!$result) die($conn->error); if($conn->affected_rows<1){ $json_arr = array("code"=>0,"info"=>"删除失败"); } else{ $json_arr = array("code"=>1,"info"=>"删除成功"); } $json_obj = my_json_encode($json_arr); echo $json_obj; ?> |
删除订单接口,PHP代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $id = $_REQUEST["id"]; $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="DELETE FROM booking WHERE id = '{$id}'"; $conn->query('set names utf8'); // echo $query; $result=$conn->query($query); if(!$result) die($conn->error); if($conn->affected_rows<1){ $json_arr = array("code"=>0,"info"=>"删除失败"); } else{ $json_arr = array("code"=>1,"info"=>"删除成功"); } $json_obj = my_json_encode($json_arr); echo $json_obj; ?> |
微信小程序通过调用wx.request请求服务器端的接口,微信小程序发送json包,PHP使用$json=file_get_contents("php://input");,$data = json_decode($json,true); 通过$data[]接受数据,并返回json字符串。
生成Json字符串包含在je.php文件,代码如下:
<?php function my_json_encode($array) { if(version_compare(PHP_VERSION,'5.4.0','<')){ $str = json_encode($array); $str preg_replace_callback("#\\\u([0-9a-f]{4})#i" ,function($matchs){ Returniconv('UCS-2BE','UTF-8',pack('H4', $matchs[1])); },$str); return $str; }else{ return json_encode($array, JSON_UNESCAPED_UNICODE); } } ?> |
用户登录接口,login.php代码如下所示
<?php header('Content-Type:application/json; charset=utf-8'); require_once "conn.php";//导入文件 require_once "je.php"; $json=file_get_contents("php://input"); $data = json_decode($json,true); $username=$data["username"]; $password=$data["passwrod"]; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="SELECT*FROM yhxx WHERE username ='{$username}' AND password='${password}'"; $conn->query('set names utf8');\ $result=$conn->query($query); if(!$result) die($conn->error); if($conn->affected_rows<1){ $json_arr = array("code"=>0,"info"=>"登录失败"); } else{ $json_arr = array("code"=>1,"info"=>"登录成功"); } $json_obj = my_json_encode($json_arr); echo $json_obj; ?> |
用户注册接口,reg.php代码如下所示
<?php header('Content-Type:application/json; charset=utf-8'); require_once "conn.php";//导入文件 require_once "je.php"; $json=file_get_contents("php://input"); $data = json_decode($json,true); $username=$data["username"]; $password=$data["passwrod"]; $phone = $data["phone"]; // echo $username; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="insert into yhxx(`username`,`password`,`phonenum`) value('{$username}','{$password}','{$phone}')"; $conn->query('set names utf8'); // echo $query; $result=$conn->query($query); if(!$result) die($conn->error); if($conn->affected_rows<1){ $json_arr = array("code"=>0,"info"=>"注册失败"); } else{ $json_arr = array("code"=>1,"info"=>"注册成功"); } $json_obj = my_json_encode($json_arr); echo $json_obj; ?> |
查询所有电影接口,allmov .php代码如下所示
<?php header('content-type:text/html;charset="utf-8"'); require_once "conn.php"; require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="select * from dy2"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
allmov.php文件代码
热播电影接口,indexgetdata.php代码如下所示
<?php header('content-type:text/html;charset="utf-8"'); require_once "conn.php"; require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="select * from dy2 ORDER BY pf DESC LIMIT 8;"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
用户个人订单接口,order.php代码如下所示
<?php header('content-type:text/html;charset="utf-8"'); require_once "conn.php"; require_once "je.php"; $json=file_get_contents("php://input"); $data = json_decode($json,true); $username=$data["username"]; $conn=new mysqli($hn,$un,$pw,$db,$port); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="SELECT * FROM booking WHERE username='{$username}'"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
影院显示接口,movshow.php代码如下所示
<?php header("Content-type:text/html;charset=utf-8"); require_once "conn.php";//导入文件 require_once "je.php"; $conn=new mysqli($hn,$un,$pw,$db,$port);//连接数据库 // var_dump($_POST); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error); } $query="SELECT * FROM cinema"; $conn->query('set names utf8'); $result=$conn->query($query); if(!$result) die($conn->error); $results=array(); $results["data"]=array(); if($conn->affected_rows<1){ $results["code"]=0; $results["mes"]="没有数据"; } else{ $results["code"]=1; while($row=$result->fetch_array(MYSQLI_ASSOC)){ $results["data"][]=$row; } } $s=my_json_encode($results); echo $s; $result->close(); $conn->close(); ?> |
电影票购买接口,buymov.php代码如下所示
<?php header('content-type:text/html;charset="utf-8"'); require_once "conn.php"; require_once "je.php"; $json=file_get_contents("php://input"); $data = json_decode($json,true); $ouser=$data["user"]; $omovname=$data["movname"]; $omovtime=$data["movtime"]; $oseat=$data["seat"]; $omoney=$data["money"]; $oticketsum=$data["ticketsum"]; $ocinema=$data["cinema"]; $conn=new mysqli($hn,$un,$pw,$db,$port); $conn->set_charset("set names utf8"); if($conn->connect_error){ die("链接失败".$conn->connect_error);} $query="insertinto booking(`username`,`movname`,`buytime`,`seat`,`money`,`ticketsum`,`cinema`) value('{$ouser}','{$omovname}','{$omovtime}','{$oseat}','{$omoney}','{$oticketsum}','{$ocinema}')"; $conn->query('set names utf8'); // echo $query; $result=$conn->query($query); if(!$result) die($conn->error); if($conn->affected_rows<1){ $json_arr = array("code"=>0,"info"=>"添加失败"); } else{ $json_arr = array("code"=>1,"info"=>"添加成功"); $json_obj = my_json_encode($json_arr); echo $json_obj; } ?> |