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 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
Jul 02 PHP
调整PHP的性能
Oct 30 PHP
php-app开发接口加密详解
Apr 18 PHP
php 后端实现JWT认证方法示例
Sep 04 PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 PHP
php框架知识点的整理和补充
Mar 01 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用数组返回无限分类的列表数据的代码
2010/08/08 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
Django框架中的对象列表视图使用示例
2015/07/21 Python
Python中方法链的使用方法
2016/02/23 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
Python中is和==的区别详解
2018/11/15 Python
django+mysql的使用示例
2018/11/23 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
应聘自荐信
2013/12/14 职场文书
项目经理任命书
2014/06/04 职场文书
业务员辞职信范文
2015/03/02 职场文书
《梅花魂》教学反思
2016/02/18 职场文书