Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
Ясно, я подумал ты свой сайт про тестировать собрался.
Попробуй сам сделать, задача вроде не сложная:
1. Занести все вопросы и ответы в БД
2. Выбрать в случайном порядке определенное количество вопросов и записать в сессию
3. Выдавать их по одному, результаты сохранять в сессию
4. Сделать выборку правильных ответов, сравнить их с ответами пользователя.
Возможны другие варианты.
onixred
Отправлено: 13 Ноября, 2009 - 18:54:37
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Нояб. 2009 Откуда: Абакан
Помог: 0 раз(а)
Ch_chov пишет:
2. Выбрать в случайном порядке определенное количество вопросов и записать в сессию
вот это я даже не знаю как делать ! хоть намек сделай как делать ?
Ch_chov пишет:
4. Сделать выборку правильных ответов, сравнить их с ответами пользователя.
и вот это тоже не понятно как
Ch_chov
Отправлено: 13 Ноября, 2009 - 19:46:10
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
2. Намек: http://habrahabr[dot]ru/blogs/mysql/54176/
4. Выборку можно и не делать, проще ответ проверять сразу после каждого вопроса (Добавление)
Структура таблицы примерно такая:
id int primary
quest varchar
ans_1 varchar -- Правильный ответ
ans_2 varchar
ans_3 varchar
ans_4 varchar
onixred
Отправлено: 14 Ноября, 2009 - 03:38:47
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Нояб. 2009 Откуда: Абакан
Помог: 0 раз(а)
Ch_chov пишет:
ans_1 varchar -- Правильный ответ
получиться что первый ответ всегда верный?
DeepVarvar
Отправлено: 14 Ноября, 2009 - 04:20:33
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
$names[27]="Закончите предложение. Фотон – это частица, которая….";
$names[28]="Какова наибольшая длина волны света, при которой наблюдается фотоэффект, если работа выхода из металла равна 3,3 * 10-19 Дж?";
$names[29]="Луч света, падая под углом 180 к границе раздела двух сред, попадает в смежную среду и …";
$names[30]="Образование радуги является результатом…";
$names[31]="Чтобы разложить белый свет в спектр, нужно использовать?";
// Многомерный ассоциативный массив
$bas[$names[1]] = array('1'=>"несколько ближе к берегу и ниже того места, где вы его видите", '2'=>"точно в том месте, где вы его видите", '3'=>"несколько дальше от берега и выше того места, где вы его видите", '4'=>"несколько ближе к берегу и выше того места, где вы его видите", '5'=>"1");
$bas[$names[4]] = array('1'=>"если они окрашены", '2'=>"если свет, отраженный от поверхностей предметов, достигает наших глаз", '3'=>"если они прозрачные", '4'=>"если они не прозрачные", '5'=>"2");
$bas[$names[5]] = array('1'=>"темные тела поглощают больше энергии, чем светлые", '2'=>"грязный снег лучше отражает свет", '3'=>"чистый снег более холодный", '4'=>"чистый снег лучше отражает свет", '5'=>"1");
$bas[$names[7]] = array('1'=>"изменение формы тела", '2'=>"изменение направления луча света при переходе из одной среды в друг", '3'=>"возвращение луча света в первую среду от границы раздела двух сред", '4'=>"изменение показателя преломления", '5'=>"3");
$bas[$names[9]] = array('1'=>"собираются лучи света", '2'=>"после преломления в линзу пересекаются лучи, которые в начале были", '3'=>"направлены параллельно оптической оси линзы", '4'=>"расположен центр линзы", '5'=>"2");
$bas[$names[10]] = array('1'=>"значение фокусного расстояния в метрах", '2'=>"число собирающихся в фокусе лучей", '3'=>"характеристика только двояковыпуклой линзы", '4'=>"величина, обратная фокусному расстоянию, выраженному в метрах", '5'=>"4");
$bas[$names[12]] = array('1'=>"распространяется параллельно оптической оси", '2'=>"не изменит направления", '3'=>"пройдет через центр сферы, ограничивающей линзу", '4'=>"пройдет через фокус", '5'=>"2");
$bas[$names[14]] = array('1'=>"прозрачное тело, ограниченное двумя выпуклыми сферическими поверхностями, либо одной плоской поверхностью и одной выпуклой поверхностью", '2'=>"сильно отшлифованное стекло", '3'=>"прозрачное тело, ограниченное двумя вогнутыми сферическими поверхностями", '4'=>"две призмы, основания которых освещены", '5'=>"1");
$bas[$names[18]] = array('1'=>"действительные и прямые", '2'=>"мнимые и перевернутые", '3'=>"действительные и увеличенные", '4'=>"мнимые и уменьшенные", '5'=>"4");
$bas[$names[21]] = array('1'=>"всегда мнимые", '2'=>"всегда действительные", '3'=>"мнимые или действительные в зависимости от расстояния между предметом и зеркалом", '4'=>"перевернутые", '5'=>"1");
$bas[$names[24]] = array('1'=>"голубой", '2'=>"зеленый", '3'=>"красный", '4'=>"угол будет одинаковым для всех трех лучей", '5'=>"4");
$bas[$names[25]] = array('1'=>"различных форм предметов, через которые проходит свет", '2'=>"различных скоростей света в вакууме", '3'=>"различных скоростей составляющих белого света в средах, отличных от вакуума", '4'=>"неоднородности среды", '5'=>"3");
$bas[$names[30]] = array('1'=>"рассеяния белого света", '2'=>"разложения белого", '3'=>"отражения белого света от капелек воды", '4'=>"смешивания различных цветов", '5'=>"2");
<script> function on1(){document.fs1.stolb.value=2; }</script>
</form>" ;
echo "</font></p>";
// получаем ответы юзера
$stolb=$_POST['stolb'];
for ($i=$min; $i<=$max; $i++ ){$q[$i]=$_POST['q'.$i];}
$counter=0;
// сверяем ответы
for ($h=$min; $h<=$max; $h++){if (($q[$h])==($bas[$names[$h]][5])) {$counter++;}}
// выводим результ
if ($stolb==2) {echo "<p><font id='relekt3' > Правильный ответов: $counter </font></p>";}
?>
(Добавление)
получаеться так что я ставлю ответы нажимаю на кнопку и выводиться ответ но программа проверает ответы уже сновой генерацией вопросов а не с прошлой и поэтому подчет ответов не верен как это исправить ??
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.