【发布时间】:2020-04-24 00:02:47
【问题描述】:
我在数据库中有两个表,questions 和 user_answers 都有 questionId 字段。我想比较用户是否回答了问题中的所有问题。每次用户回答问题时,都会在 user_answers 表中添加一个新行,其中包含其帐户的 userId 和其帐户的 questionId他们刚刚回答的问题。我考虑过比较 questions 表的所有 questionId 是否已由 user_answers 中的用户 userId 回答> 表。我希望我已经很好地解释了这个概念。
我考虑过查询 questions 表并返回一个包含所有 questionId 的数组,然后再查询 user_answers 表,其中包含与用户 userId 关联的所有 questionId,即当时登录的用户。
我试图做某事,但我不知道如何继续:
<?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);
?>
我不知道如何获取包含所有 questionId 的数组,抱歉我对 php 很陌生。如果有人能想到比比较两个数组更好的方法,我将不胜感激。
我打算在另一篇文章中问这个问题,但因为这是一个简短的问题......一旦我有了两个数组,我如何比较用户没有的 questionId回答了?例如,如果question的questionId是[1, 2, 3, 4, 5],userId1已经回答了[2, 4, 5],如何它可以保存在另一个数组[1, 3] 中吗?也许是array_diff()?
很抱歉问了这么长的问题,但我有点绝望。提前致谢。
示例
问题表
question_id: [1, 2, 3, 4, 5, 6, 7](每个数字是一个不同的问题)
users_answers 表
user_id:[247](用户登录)
question_id: [1, 3, 5, 6](用户回答的问题)
数组中的每个数字都是不同的行
所以,我想得到类似$unanswered_questions = [2, 4, 7]
数据库图片
问题表
(抱歉,问题是西班牙语,但重要的是 questionId)
例如,userId 1 回答了问题 1、2 和 3,他需要回答问题 5 和 6。如何获取他需要回答的 questionId?
【问题讨论】:
-
你能提供一个你想要的数组中的值的例子吗?
-
@MelvynMarigny 完成 :)