Система PHP Quiz с пользователями и ответами

Попробую объяснить свою проблему, извините за плохой английский :)

Я занят системой викторин.

Итак, какие столы нравятся:

- Users
- Question
- Answers
- Sended Answers

Таблица пользователей на самом деле не нужна для моего вопроса.

Таблица вопросов выглядит так:

- Questions.ID
- Question.Text (the question)

Таблица ответов похожа на:

- Answers.ID
- Answers.QuestionID
- Answers.Text
- Answers.Good

Таблица отправленных ответов выглядит так:

- sAnswers.ID
- sAnswers.QuestionID
- sAnswers.FilledAnswers
- sAnswers.UserID

Ответы. Хорошо - это как 0 = Не хорошо / 1 = Хорошо.

Что это значит, я получаю все отправленные ответы с именем пользователя и нахожу, хорошие ответы - да или нет.

Я пытался:

public function countScores($bind = ""){
  $sql = "SELECT sAnswers.*, users.name, Answers.*
  FROM sAnswers
  INNER JOIN users ON sAnswers.userID = users.id
  INNER JOIN Answers ON sAnswers.FilledAnswers = Answers.QuestionID";
  $result = $this->run($sql,$bind);
  return $result;
}

Но результатов больше, чем у sAwnsers. Что я делаю не так: -o

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
103
1

Ответы 1

Я не уверен, какой у вас дизайн схемы, но просто предполагаю, ваше присоединение к ответам должно быть Answers.ID, как это

INNER JOIN users ON sAnswers.userID = users.id
INNER JOIN Answers ON sAnswers.FilledAnswers = Answers.ID";

Вы уверены, что внутреннее соединение будет работать в вашем случае, т.е. если все таблицы заполнены, попробуйте выполнить левое соединение, чтобы быть в безопасности

LEFT JOIN users ON sAnswers.userID = users.id
LEFT JOIN Answers ON sAnswers.FilledAnswers = Answers.ID

Я согласен, исходя из того, что было показано в вопросе, похоже, что это должен быть Answers.ID.

Don't Panic 14.05.2018 20:53

Я пробовал. Но чем это показывает слишком много результатов. Если кто-то отвечает на 3 вопроса, и я смотрю результаты, я получаю 9 строк. Это означает, что там 3 вопроса и два ответа, а это 9. Но я хочу показать только 3 отправленных ответа.

Gurdt 15.05.2018 21:48

Другие вопросы по теме