PHP答题类应用接口实例


Posted in PHP onFebruary 09, 2015

本文实例讲述了PHP答题类应用接口的实现方法。分享给大家供大家参考。具体实现方法如下:

question_get.php文件如下:

<?php  

session_cache_expire(60);  

session_start();  

if(!isset($_SESSION['zaszh_user_id'])){  

    echo json_encode(array('status'=>'error','msg'=>'连接超时,请重新打开页面。'));  

    exit;  

}  

$user_id = $_SESSION['zaszh_user_id'];  

  

// $user_id = 1; // 测试用  

  

// 随机获取5道问题  

$question_id = array();  

while(sizeof($question_id)<5){  

    $num_rand = mt_rand(1,114);  

    if(!in_array($num_rand, $question_id))  

        $question_id[] = $num_rand;  

}  

  

require('connect_database.php');  

// 答题次数  

$mysqli->query("update zaszh_user set answer_surplus=answer_surplus-1 where id={$user_id} and answer_surplus>0");  

if($mysqli->affected_rows){  

    // 有剩余次数  

}else{  

    // 无剩余次数  

    echo json_encode(array('status'=>'error','msg'=>'今日答题剩余次数已用完,明天再来哦~'));  

    $mysqli->close();  

    exit;  

}  

// 题目  

if($stmt = $mysqli->prepare("select question,A,B,C,D,answer from zaszh_question where id in(?,?,?,?,?)")){  

    $stmt->bind_param('iiiii',$question_id[0],$question_id[1],$question_id[2],$question_id[3],$question_id[4]);  

    $stmt->execute();  

    $stmt->bind_result($question,$A,$B,$C,$D,$answer);  

    $rows = array();  

    while($stmt->fetch()){  

        $rows[] = array(  

            'question'=>$question,  

            'A'=>$A,  

            'B'=>$B,  

            'C'=>$C,  

            'D'=>$D,  

            'answer'=>$answer  

        );  

    }  

    // 答题记录  

    if($stmt = $mysqli->prepare("insert into zaszh_answer(user_id,question1,question2,question3,question4,question5,create_date) values(?,?,?,?,?,?,unix_timestamp(now()))")){  

        $stmt->bind_param('iiiiii',$user_id,$question_id[0],$question_id[1],$question_id[2],$question_id[3],$question_id[4]);  

        $stmt->execute();  

        if($answer_id = $stmt->insert_id){  

            $param = array(  

                'answer_id'=>$answer_id  

            );  

            echo json_encode(array_merge($rows,$param));  

        }else{  

            echo json_encode(array('status'=>'error','msg'=>'系统出错。'));  

        }  

    }  

    $stmt->close();  

}  

$mysqli->close();

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP中对各种加密算法、Hash算法的速度测试对比代码
Jul 08 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
php正则表达式学习笔记
Nov 13 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
PHP实现查询两个数组中不同元素的方法
Feb 23 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
php实现微信支付之退款功能
May 30 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 PHP
浅谈PHP中的那些魔术常量
Dec 02 PHP
PHP设计模式(观察者模式)
Jul 07 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 #PHP
php构造函数的继承方法
Feb 09 #PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 #PHP
php抽象类使用要点与注意事项分析
Feb 09 #PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 #PHP
支持png透明图片的php生成缩略图类分享
Feb 08 #PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 #PHP
You might like
php下连接mssql2005的代码
2011/01/17 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
jquery插件bxslider用法实例分析
2015/04/16 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
Python字符串替换实例分析
2015/05/11 Python
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
预备党员党课思想汇报
2014/01/13 职场文书
《长城》教学反思
2014/02/14 职场文书
英文推荐信格式范文
2014/05/09 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python
深入理解 Golang 的字符串
2022/05/04 Golang
设置IIS Express并发数
2022/07/07 Servers
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers