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使用者状态管理功能的应用
Oct 09 PHP
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
解决GD中文乱码问题
Feb 14 PHP
PHP详细彻底学习Smarty
Mar 27 PHP
php下通过伪造http头破解防盗链的代码
Jul 03 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
Jan 09 PHP
php rsa加密解密使用详解
Jan 14 PHP
PHP实现批量上传单个文件
Dec 29 PHP
PHP会员找回密码功能的简单实现
Sep 05 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
PHP PDOStatement::execute讲解
Jan 31 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/10/09 PHP
PHP安全编程之加密功能
2006/10/09 PHP
php操作xml
2013/10/27 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
layui实现下拉框三级联动
2019/07/26 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Django中create和save方法的不同
2019/08/13 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
新闻专业应届生求职信
2013/10/31 职场文书
关于旷工的检讨书
2014/02/02 职场文书
淘宝活动策划方案
2014/02/06 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
市场部岗位职责
2015/02/12 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
pycharm代码删除恢复的方法
2021/06/26 Python
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
使用HttpSessionListener监听器实战
2022/03/17 Java/Android
vue ref如何获取子组件属性值
2022/03/31 Vue.js