PHP答题类应用接口实例

yipeiwu_com5年前PHP代码库

本文实例讲述了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实现享元模式(flyweight)

学习php设计模式 php实现享元模式(flyweight)

一、意图 运用共享技术有效的支持大量细粒度的对象 享元模式变化的是对象的存储开销 二、享元模式结构图 三、享元模式中主要角色 抽象享元(Flyweight)角色:此角色是所有的具体享元...

php数组的一些常见操作汇总

数组求和 给定一个含有n个元素的整型数组a,求a中所有元素的和。可能您会觉得很简单,是的,的确简单,但是为什么还要说呢,原因有二,第一,这道题要求用递归法,只用一行代码。第二,这是我人生...

sae使用smarty模板的方法

Smarty是非常流行的模板系统,它分离了业务和逻辑、执行速度快,在php网站中有广泛的运用。 不过在部署到sina app engine(sae)上时出现了问题,因为sae作为云计算平...

PHP的Yii框架中创建视图和渲染视图的方法详解

视图是 MVC 模式中的一部分。 它是展示数据到终端用户的代码,在网页应用中,根据视图模板来创建视图,视图模板为PHP脚本文件, 主要包含HTML代码和展示类PHP代码,通过yii\we...

php实现图片上传、剪切功能

本文实例为大家详细介绍了php实现图片上传、剪切功能的具体代码,供大家参考,具体内容如下 <?php defined('BASEPATH') OR exit('No d...