PHP答题类应用接口demo

该脚本通过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();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值