有一个问答表单,用户选择好选项之后提交,我先用一个sql语句加上限制,使得回答正确的人就不用再回答了:
select * from q_record where username='$username' and isright=1 limit 1如果找不到,则执行插入语句:
insert into q_record...但是发现,数据库里面仍然会有个用户的isright=1的数量大于1,而且时间是同一秒的,不知道是什么原因?是不是数据库反应不过来了,还没有做好select判断,就执行了insert语句?
select * from q_record where username='$username' and isright=1 limit 1如果找不到,则执行插入语句:
insert into q_record...但是发现,数据库里面仍然会有个用户的isright=1的数量大于1,而且时间是同一秒的,不知道是什么原因?是不是数据库反应不过来了,还没有做好select判断,就执行了insert语句?
$query = "select * from q_record where username='$username' and isright=1 limit 1";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if ($row) {
echo "你已经答对该题了,不需要再回答哦!";
exit;
}
$query = "insert into q_record (pid,question,isright,time) values ('$pid','$question','$isright','$time')";
$result = mysql_query($query);
?>username:用户名
isright:0或者1
pid:题目编号,数字类型
question:答案:a或b或c或d
time:时间
重新看了一下 有很多 pid(题目)?
那你怎么放在一个表里呢?重新设计一下表吧 用户和 你的考试题目结果分开 再做一个用户id 的关联...然后根据运行情况再来处理发现的问题。
$query = "select * from q_record where username='$username' and isright=1 limit 1";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if ($row) {
echo "你已经答对该题了,不需要再回答哦!";
}else{
$query = "insert into q_record (pid,question,isright,time) values ('$pid','$question','$isright','$time')";
$result = mysql_query($query);
}
?>
这样试一下