У меня есть две таблицы в базе данных, Вопросы и user_answers обе, имеют поле questionId . Я хочу сравнить, если пользователь ответил на все вопросы в questions . Каждый раз, когда пользователь отвечает на вопрос, в таблицу user_answers добавляется новая строка с userId его учетной записи и questionId вопроса, который он просто задает. ответил. Я думал о сравнении, если пользователь userId в таблице user_answers ответил на все questionId таблицы questions . Надеюсь, я хорошо объяснил эту концепцию.
Я думал о создании запроса к таблице questions и о том, что он возвращает массив со всеми questionId , и сделать еще один запрос к таблице user_answers со всеми questionId , связанными с пользователем userId , который был зарегистрирован в данный момент.
Я пытался что-то сделать, но я не знаю, как продолжить:
<?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 , на который пользователь не ответил? Например, если questionId из вопрос равен [1, 2, 3, 4, 5]
и userId 1
ответил на [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]
Изображения базы данных
таблица вопросов
(Извините, вопросы на испанском языке sh, но важная вещь questionId)
таблица вопросов
таблица user_answers
Например, userId 1 ответил на вопросы 1, 2 и 3, и он должен ответить на вопросы 5 и 6. Как я могу получить вопрос, на который он должен ответить?