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

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

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

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

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

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

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

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

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

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
Спасибо, полезная инфа! ) а как сохранить результаты теста при условии, что его проходит ненесколько пользователей?

Добавлено через 24 минуты
То есть несколько пользователей.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
09.02.2015, 18:10
Serega@93-93, если у вас есть база данных mysql, то можно хранить там, если нет - в файле. Промежуточные результаты (например, если ответ дан на 3 вопроса из 5) держать в куки/сессиях.
1
1 / 1 / 0
Регистрация: 13.02.2012
Сообщений: 120
09.02.2015, 19:07
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
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
10.02.2015, 09:28
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2015, 09:28
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru