Система PHP Quiz с пользователями и ответами - PullRequest
0 голосов
/ 14 мая 2018

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

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

Итак, что же такое таблицы:

- 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 = Хорошо.

Что это, что я получаю все отправленные ответы с UsersName и Find, если sAnswers хорош, да или нет.

Я пытался:

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

1 Ответ

0 голосов
/ 14 мая 2018

Я не уверен, что вы разрабатываете схему, но просто предполагаю, что ваше объединение для ответов должно быть Answerers.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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...