我在数据库中有两个表,questions和user_answers都有questionId字段。我想比较用户是否回答了问题中的所有问题。每次用户回答问题时,都会在user_answers表中添加一个新行,其中包括其帐户的userId和他们刚刚回答的问题的questionId题表的所有问题Id是否已由user_answers表格中的用户 userId我曾考虑过对questions表进行查询,并返回一个包含所有questionId的数组,然后对user_answers表格进行另一次查询,其中包含与用户userIduestionId,即当时登录的用户。 我试着做点什么,但我不知道如何继续: 我不知道如何获得一个包含所有questionId的数组,对不起,我对php还很陌生。如果有人能想出比比较这两个阵列更好的方法,我将不胜感激 我本来打算在另一篇帖子中问这个问题,但由于这是一个简短的问题。。。一旦我有了这两个数组,我如何比较用户没有回答的问题Id?,例如,如果question的questionId是 很抱歉问了这么长的问题,但我有点绝望。提前谢谢。 问题表 users_answers表 数组中的每个数字都是不同的行 所以,我想要一些类似 问题表 (对不起,问题是西班牙语的,但重要的是问题ID( 问题表 user_answers表 例如,userId 1回答了问题1、2和3,他需要回答问题5和6。我怎样才能得到他需要回答的问题?<?php
session_start();
include 'connection.php';
include 'URLS.php';
$question_sql = "SELECT questionId FROM questions;";
$question_result = mysqli_query($connection, $question_sql);
$question_row = mysqli_fetch_array($pregunta_result);
$answer_sql = "SELECT questionId FROM user_answers WHERE userId = `$_SESSION['userId']`";
$answer_result = mysqli_query($connection, $answer_sql);
$answer_row = mysqli_fetch_array($answer_result);
?>
[1, 2, 3, 4, 5]
,而userId1
已经回答了[2, 4, 5]
,它如何保存在另一个数组[1, 3]
中?也许用array_diff()
?示例
question_id
:[1,2,3,4,5,6,7](每个数字是不同的问题(user_id
:[247](用户登录(question_id
:[1,3,5,6](用户回答的问题($unanswered_questions = [2, 4, 7]
的东西数据库映像
我发现了如何从userId 1中获得未回答的问题,这很简单:
SELECT questionId FROM questions EXCEPT SELECT questionId FROM user_answers;