我正在使用PHP和MySQL构建测验程序。
我构建了测验程序,以便:一遍又一遍地调用相同的文件( Quiz.php ),但每次都从数据库中选择一个新问题。
MySQL数据库包含一个字段" my_score"。每当玩家正确回答问题时,得分为" 1"加到他目前的分数。玩家点击" 下一步",然后重新处理SAME文件(Quiz.php)
每当他错误地回答,没有任何反应。测验只是退出。
我知道这个问题很简单,但我似乎无法正确理解逻辑。我尝试过使用$ _SESSION,但当然,这并不起作用,因为变量仅在用户登录时存储。如果他退出,然后又回来玩,那么" 得分"重置为1.
我想要的是使用每个正确的答案在数据库中更新分数。
if ($selected_radio == $correct) { // if player selects correct answer..
$_SESSION['quiz_score'] += 1;
$my_score = $_SESSION['quiz_score'];
$update_score = "Update my_table
set my_score = $my_score where login = '".$_SESSION['login']."'";
$result_update_score = mysqli_query($conn,$update_score);
然后,我删除了$ _SESSION变量,只使用了$ my_score:
if ($selected_radio == $correct) {
$my_score += 1;
$update_score = "Update my_table
set my_score = $my_score where login = '".$_SESSION['login']."'";
它给出了相同的结果。
答案 0 :(得分:1)
您是否尝试过使用$ update_score ="更新my_table
设置my_score + = $ my_score,其中login ='"。$ _ SESSION [' login']。"'";
所以积分会再次累加到数据库中存储的分数上吗?