Nice Kloe Ответов: 1

Проверка правильности ответа среди других ответов перед сохранением в БД


Всем привет,

Я кодирую экзаменационное приложение, для которого вопросы и соответствующие им ответы (модель MCQ) должны быть зарегистрированы сразу через форму.

То, что я хочу сделать, это собрать из той же формы вопрос, соответствующие варианты ответа и отметить/проверить, какой из вариантов ответа является правильным ответом на вопрос, прежде чем вставлять все эти данные в базу данных, таким образом, чтобы я мог легко установить правильный вариант ответа на 1, а остальные-на 0 при сохранении в базу данных.

Я как-то запутался в том, как это сделать в google.
Любая ссылка, ссылка, образец, учебник очень помогут мне, пожалуйста!
Приложение работает на PHP, используя MySQL в качестве СУБД.

Что я уже пробовал:

Мне уже удается сохранить варианты ответов с соответствующим вопросом в БД. Теперь я ищу способ проверить правильный ответ перед сохранением.

1 Ответов

Рейтинг:
6

MadMyche

Там должно быть по крайней мере два стола для основ; один стол для вопросов, а другой для ответов.
Это чрезмерно упрощенная версия; не в каком-то конкретном вкусе SQL, и там нет никаких ключей или индексов, установленных (но рекомендуемых)

CREATE TABLE mcqQuestions (
  QuestionID INT,       -- should be Primary Key, auto populate, etc
  QuestiontEXT NVARCHAR(100)
)

CREATE TABLE mcqAnswers (
  AnswerID INT,      -- should be Primary Key, auto populate, etc
  QuestionID INT,    -- should be verified that Question exists
  AnswerCorrect BIT, -- only one per question
  AnswerText NVARCHAR(100)
)
Теперь на стороне HTML; форма, которую я буду использовать, будет иметь вопрос an answers, а также a переключатель для обозначения того, какой ответ является правильным. Если вы убедитесь, что они находятся на одной форме и все имеют одно и то же имя, только один из них может быть проверен в любое время. Дифференциация производится по присвоенному значению
<form action="http://www.Example.com" method="post">
	<input type="text" name="Question" />
		
	<br>
	<input type="radio" name="CorrectAnswer" value="1" />
	<input type="text" name="Answer1" />
	
	<br>
	<input type="radio" name="CorrectAnswer" value="2" />
	<input type="text" name="Answer2" />

	<br>
	<input type="radio" name="CorrectAnswer" value="3" />
	<input type="text" name="Answer3" />

	<br>
	<input type="radio" name="CorrectAnswer" value="4" />
	<input type="text" name="Answer4" />

	<br>
	<input type="submit" />
</form>
При нажатии кнопки Отправить на этой странице будут размещены следующие данные:
Question: {text from input}
Answer1: {text from input}
Answer2: {text from input}
Answer3: {text from input}
Answer4: {text from input}
CorrectAnswer: {one of the four values assigned in the source code}
Извините, но я не пишу PHP... но логика относительно проста:

1. Читать вопрос
2. сохраните вопрос в БД и получите его идентификатор

3. прочитайте значение CorrectAnswer.
4. Читать все ответы 4

Сохраните каждый ответ индивидуально, используя соответствующий элемент ввода и questionID (из #2), и если это правильный ответ, сохраните и его