如果你们大家可以帮我解决这个问题。我试图用php建立一个问题。
表:
id_quiz question answer
82 q1 1
83 q2 4
84 q3 1
85 q4 4
我有两个阵列;
1. $ all_ids = [82,83,84,85]
2. $ all_answers = [1,4,1,4] - >如果答案是正确的,那就算一算。
我的问题是 如何将这两个数组与数据库进行比较 ?
$ all_ids [82] ==($ all_answer [1] - >将ID与82的数据库进行比较)
$ all_ids [83] ==($ all_answer [4] - >比较ID为数据库的答案83)
$ all_ids [84] ==($ all_answer [1] - >比较ID为数据库的答案84)
我当前的代码似乎无效:
$total_correct = 0;
foreach ($all_ids as $ids){
$check = $db->query("SELECT * FROM quiz WHERE id_quiz='$ids' ");
$row = $check->fetch_assoc();
foreach($all_answers as $answers) {
if($row['answer'] == $answers) {
$total_correct++;
}
}
}
我希望我的问题有道理:)
答案 0 :(得分:1)
使用php的 implode 功能将ID粘合在一起:implode(",", $all_ids);
然后你可以使用它来创建一个数据库查询(如cularis所说)并迭代这些结果进行检查(如亚马逊所说)
更多信息:
答案 1 :(得分:1)
将您的两个答案数组更改为如下所示:
$answers[82] = 1
$answers[83] = 4
foreach($answers as $id => $ans)
{
$sql = "select * from quiz where id_quiz = $id"
db->query($sql)
$row = $check->fetch_assoc();
if($row['answer'] == $ans)
{
totalcorrect++
}
}
这是一个快速回答,不确定您是否需要更多细节?