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缓存技术介绍
Nov 25 PHP
用PHP实现Ftp用户的在线管理的代码
Mar 06 PHP
PHP网站基础优化方法小结
Sep 29 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
php调用mysql数据 dbclass类
May 07 PHP
php之XML转数组函数的详解
Jun 07 PHP
PHP实现根据浏览器跳转不同语言页面代码
Aug 02 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
thinkphp分页集成实例
Jul 24 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的中问验证码
2006/11/25 PHP
PHP在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
python动态网页批量爬取
2016/02/14 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
Python同时迭代多个序列的方法
2020/07/28 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
煤矿开采专业求职信
2014/07/08 职场文书
接待员岗位职责
2015/02/13 职场文书
化验室岗位职责
2015/02/14 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA