Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 1
Регистрация: 25.10.2011
Сообщений: 50
1

Тестовая оболочка написанная на PHP

22.01.2015, 13:59. Просмотров 2010. Ответов 5
Метки нет (Все метки)

Добрый день! Я не так давно начал изучать WEB-программирование и пытаюсь сделать подобие тесовой программы (тестовая оболочка) написана на PHP, вопросы в базе MySQL. Нужно чтоб по кнопке "Далее" выводился следующий вопрос.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2015, 13:59
Ответы с готовыми решениями:

тестовая оболочка
Всем привет!!! При создании тестовой оболочки (система тестирования) столкнулся с проблемой. Как...

Тестовая оболочка
помогите написать тестовую оболочку , вопросы и варианты приветствуются! или скиньте ссылку...

Тестовая оболочка
Здравствуйте, выручайте плиз, необходимо сделать тестирование на тему устройство автомобиля, 20...

Тестовая оболочка в delphi
Взял чужую программу для дипломного проекта, но разобраться так и не смог, нужно исправить ссылку...

5
Эксперт PHP
3531 / 2965 / 1245
Регистрация: 01.08.2012
Сообщений: 10,199
23.01.2015, 00:07 2
Вариантов много, вот один из них.

Если это тест, наверняка у него есть форма:

PHP/HTML
1
2
3
4
5
<h1>Любите ли вы Шварцнеггера?</h1>
<form action="index.php" method="post">
    <input type="text" name="answer" />
    <input type="submit" value="Далее" />
</form>
При клике "Далее" ваш браузер отправляет серверу POST запрос (method="post"). Вам необходимо добавить в этот запрос какую-нибудь информацию, чтобы сервер понял, какой вопрос вывести следующим. Например, можно посылать в форме скрытый параметр - идентификатор вопроса:

PHP/HTML
1
2
3
4
5
6
    <?php echo $name; ?>
    <form action="index.php" method="post">
    <input type="text" name="answer" />
    <input type="submit" value="Далее" />
    <input type="hidden" name="question" value="<?php echo $number; ?>" />
</form>
Далее в PHP нужно сделать проверку, пришёл ли этот параметр на сервер. Если пришёл - получаем из базы вопрос по идентификатору, увеличенному на 1 (поскольку нам нужно вывести следующий вопрос, а не текущий):

PHP/HTML
1
2
3
4
5
6
7
8
<?php 
if(isset($_POST['question'])){ // Проверка, пришёл ли POST-запрос
    ... // Получаем запись из БД по идентификатору + 1
}else{
    ... // Получаем первый вопрос из БД
}
?>
... // Выводим HTML форму.
2
1 / 1 / 0
Регистрация: 13.02.2012
Сообщений: 120
09.02.2015, 16:30 3
Спасибо, полезная инфа! ) а как сохранить результаты теста при условии, что его проходит ненесколько пользователей?

Добавлено через 24 минуты
То есть несколько пользователей.
0
Эксперт PHP
3531 / 2965 / 1245
Регистрация: 01.08.2012
Сообщений: 10,199
09.02.2015, 18:10 4
Serega@93-93, если у вас есть база данных mysql, то можно хранить там, если нет - в файле. Промежуточные результаты (например, если ответ дан на 3 вопроса из 5) держать в куки/сессиях.
1
1 / 1 / 0
Регистрация: 13.02.2012
Сообщений: 120
09.02.2015, 19:07 5
Jonah, я хочу хранить в таблице моей базы данных результат, но боюсь конфликта при одновременно завершении тестирования, думаю как будет правильнее сделать структуру таблицы и логику работы программы, чтобы избежать путаницы.Вообще я пишу теститующую систему. Вопросы берутся из таблицы1 БД, а результаты должны быть сохранены в таблицу2 БД.Структура таблицы 2 - поля: Id, вопрос_idпользователя, ответ_idпользователя, вопрос_idпользователя, ответ_idпользователя....... Здесь idпользователя-уникальный идентификатор конкретного пользователя. Конфликт-это когда пользователь_1 начал проходить тестирование, для него в таблицу добавились поля вопрос_1, ответ_1. После этого пользователи 2 и 3 начали тест одновременно, программа, считая последнее поле, соответственно, его идентификатор, будут создаваться 2 пары одинаковых полей (вопрос_2 и ответ_2 для пользователя 2, а также вопрос_2 и ответ_2 для пользователя 3.). Как вы считаете, такая структура допустима, или мне лучше поступить иначе. И если это так, то помогите, пожалуйста советом. А если совет сопроводите кодом - будет вообще прекрасно. (просто в php я новичек, а реализовать нужно)... А язык полезный, начинает нравится потихоньку) Я больше на C# люблю работать)
0
Эксперт PHP
3531 / 2965 / 1245
Регистрация: 01.08.2012
Сообщений: 10,199
10.02.2015, 09:28 6
Serega@93-93,
Не совсем понял структуру 2-ой таблицы. Кроме этого, непонятно, откуда берутся данные вроде названия вопроса и т.д.

Если абсолютно всё хранить в БД, я бы сделал примерно так:

answers
id, user_id, question_id, answer_id

users
id, name

polls (polls - опросы, их ведь может быть несколько)
id, name

questions
id, poll_id, name, is_right (poll_id - привязывает вопрос к опросу, is_right - является ли ответ правильным, такая структура сделает возможной указание нескольких правильных ответов).

Можно сделать так, а можно добавить в answers поле poll_id и убрать его из questions, тогда вопросы не будут привязаны к опросам. Можно ещё добавить sort_id, чтобы указывать, в каком порядке должны идти вопросы.

Касательно взаимодействия с пользователем, я вижу 2 варианта:
1. Добавлять в форму скрытое поле с уникальным id пользователя, соответствующим id в БД.
2. Как я писал выше, промежуточные результаты хранить не в БД, а в куки/сессиях, и только при ответе на все вопросы сохранять данные в БД.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2015, 09:28

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

как работает тестовая оболочка?
Я знаю основы делфи. Вопрос состоит в том чтобы написать тестовую оболочку, подскажите с чего...

Опять тестовая оболочка - рандом
Написала тест, спасибо Культину, но преподавателя не устраивает. Нужно считывать вопросы с файла с...

Тестовая оболочка (программа для тестирования)
Задача такая: нужен исходник программы для прохождения тестов с несколькими вариантами ответа один...

Тестовая программа на PHP.
Здраствуите, нужна теставая програма написана с PHP. учител музыки


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.