1. onixred - 13 Ноября, 2009 - 14:50:54 - перейти к сообщению
Мне нужно сделать тест для своего сайта на пшп с sql базой чтобы вопросы генерировались случайно и при этом не повторялись
2. Ch_chov - 13 Ноября, 2009 - 14:58:09 - перейти к сообщению
Нужен генератор нагрузки?
http://www[dot]hpl[dot]hp[dot]com/research/linux/httperf/
http://www[dot]hpl[dot]hp[dot]com/research/linux/httperf/
3. onixred - 13 Ноября, 2009 - 16:09:35 - перейти к сообщению
просто чтобы была база с вопросами и ответами и выводилась она в случайном порядке
(Добавление)
в смысле вопрос и 4 варианта ответов!
(Добавление)
Ch_chov пишет:
Нужен генератор нагрузки?
http://www[dot]hpl[dot]hp[dot]com/research/linux/httperf/
http://www[dot]hpl[dot]hp[dot]com/research/linux/httperf/
в смысле вопрос и 4 варианта ответов!
4. Ch_chov - 13 Ноября, 2009 - 17:57:30 - перейти к сообщению
Ясно, я подумал ты свой сайт про тестировать собрался.
Попробуй сам сделать, задача вроде не сложная:
1. Занести все вопросы и ответы в БД
2. Выбрать в случайном порядке определенное количество вопросов и записать в сессию
3. Выдавать их по одному, результаты сохранять в сессию
4. Сделать выборку правильных ответов, сравнить их с ответами пользователя.
Возможны другие варианты.
Попробуй сам сделать, задача вроде не сложная:
1. Занести все вопросы и ответы в БД
2. Выбрать в случайном порядке определенное количество вопросов и записать в сессию
3. Выдавать их по одному, результаты сохранять в сессию
4. Сделать выборку правильных ответов, сравнить их с ответами пользователя.
Возможны другие варианты.
5. onixred - 13 Ноября, 2009 - 18:54:37 - перейти к сообщению
Ch_chov пишет:
вот это я даже не знаю как делать ! хоть намек сделай как делать ?2. Выбрать в случайном порядке определенное количество вопросов и записать в сессию
Ch_chov пишет:
и вот это тоже не понятно как
4. Сделать выборку правильных ответов, сравнить их с ответами пользователя.
6. Ch_chov - 13 Ноября, 2009 - 19:46:10 - перейти к сообщению
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
4. Выборку можно и не делать, проще ответ проверять сразу после каждого вопроса
(Добавление)
Структура таблицы примерно такая:
id int primary
quest varchar
ans_1 varchar -- Правильный ответ
ans_2 varchar
ans_3 varchar
ans_4 varchar
7. onixred - 14 Ноября, 2009 - 03:38:47 - перейти к сообщению
Ch_chov пишет:
получиться что первый ответ всегда верный?
ans_1 varchar -- Правильный ответ
8. DeepVarvar - 14 Ноября, 2009 - 04:20:33 - перейти к сообщению
Сделайте себе таблицу вида:
Q | A |
---------
1 4
2 1
3 2
4 4
5 3
.............и так далее.....
Q | A |
---------
1 4
2 1
3 2
4 4
5 3
.............и так далее.....
9. onixred - 14 Ноября, 2009 - 05:58:34 - перейти к сообщению
вы меня запутали окончательна
10. DeepVarvar - 14 Ноября, 2009 - 07:51:35 - перейти к сообщению
первый столбец - номер вопроса
второй столбец - номер верного варианта
третий - текст вопроса...
чтобы не повторялись пользуйте rand()...
сорри - в предыдущем не показал третий столбец
второй столбец - номер верного варианта
третий - текст вопроса...
чтобы не повторялись пользуйте rand()...
сорри - в предыдущем не показал третий столбец
11. onixred - 14 Ноября, 2009 - 08:17:54 - перейти к сообщению
DeepVarvar пишет:
первый столбец - номер вопроса
второй столбец - номер верного варианта
третий - текст вопроса...
чтобы не повторялись пользуйте rand()...
сорри - в предыдущем не показал третий столбец
второй столбец - номер верного варианта
третий - текст вопроса...
чтобы не повторялись пользуйте rand()...
сорри - в предыдущем не показал третий столбец
а где варианты ответов?
12. onixred - 14 Ноября, 2009 - 11:55:57 - перейти к сообщению
я так понимаю создаю я таблицу
id, vopros, otvet1, otvet2, otvet3, otvet4, nomer_pravilnog_ootveta
затем заполняю
затем вывожу рендомно вопрос и 4 ответа
затем проверяю ответ пользователя (я это себе смутно представляю) и вывожу результат
id, vopros, otvet1, otvet2, otvet3, otvet4, nomer_pravilnog_ootveta
затем заполняю
затем вывожу рендомно вопрос и 4 ответа
затем проверяю ответ пользователя (я это себе смутно представляю) и вывожу результат
13. onixred - 21 Ноября, 2009 - 10:36:19 - перейти к сообщению
Напишите тест пожалуйста!!!
вот мой тесть но он немного не так работает
вот мой тесть но он немного не так работает
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?
- // База вопросов
- $names[1]="Стоя на берегу, вы смотрите на камень, погруженный в воду. Как в действительности расположен камень?";
- $names[2]="Расположите цвета в том порядке, в каком они следуют в спектре (в порядке увеличения показателя преломления)";
- $names[3]="Когда белый цвет раскладывается на составляющие, луч какого цвета слабее всего отклоняется от исходного положения?";
- $names[4]="При каком условии мы можем видеть окружающие предметы?";
- $names[5]="Почему чистый снег тает медленнее, чем грязный?";
- $names[6]="Заполните пропуски в предложениях, используя приведенные ниже слова:
- Лучом света называется очень _____________ света";
- $names[7]="Отражением света называется…";
- $names[8]="Какое явление можно наблюдать при прохождении света через стекло?";
- $names[9]="Главный фокус линзы – это точка, в которой…";
- $names[10]="Оптическая сила линзы – это…";
- $names[11]="Фокусное расстояние f линзы составляет 25 см. Чему равна оптическая сила линзы?";
- $names[12]="После прохождения оптического центра линзы свет…";
- $names[13]="Какие из следующих значений относятся к оптической силе собирающей линзы?";
- $names[14]="Что такое собирающая линза?";
- $names[15]="Высота предмета H равна 1 см., а высота изображения h = 5 см. Чему равно увеличение линзы?";
- $names[17]="Собирающая линза образует мнимое изображение, если…";
- $names[18]="С помощью рассеивающей линзы можно получить изображения…";
- $names[19]="На каком расстоянии от линзы получено изображение, если оно в 2 раза больше предмета и расстояние от предмета до линзы равно 3 см.?";
- $names[20]="Какова высота изображения, если оно находится на расстоянии 6 см от линзы, высота предмета 4 см, и он расположен в 2 см от линзы?";
- $names[16]="Каким будет изображение, если предмет поместить на расстоянии d <F от рассеивающей линзы?";
- $names[21]="Плоские зеркала дают изображения…";
- $names[22]="Угол между падающим лучом и отраженным равен 110. Чему равен угол падения?";
- $names[23]="Оптическая сила линзы равна 5 дптр. Чему равно фокусное расстояние?";
- $names[24]="Какой из лучей имеет наименьший угол падения?";
- $names[25]="Дисперсия света – это результат…";
- $names[26]="Типичными корпускулярными явлениями являются:";
- $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[2]] = array('1'=>"красный синий желтый оранжевый фиолетовый зеленый", '2'=>"красный оранжевый желтый зеленый синий фиолетовый", '3'=>"желтый зеленый синий красный фиолетовый оранжевый", '4'=>"красный желтый оранжевый зеленый синий фиолетовый", '5'=>"2" );
- $bas[$names[3]] = 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[6]] = array('1'=>"узкий пучок", '2'=>"прямолинейно", '3'=>"риволинейно", '4'=>"широкий пучок света", '5'=>"1");
- $bas[$names[7]] = array('1'=>"изменение формы тела", '2'=>"изменение направления луча света при переходе из одной среды в друг", '3'=>"возвращение луча света в первую среду от границы раздела двух сред", '4'=>"изменение показателя преломления", '5'=>"3");
- $bas[$names[8]] = 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[11]] = array('1'=>"25 дптр", '2'=>"12,5 дптр", '3'=>"50 дптр", '4'=>"4 дптр", '5'=>"4");
- $bas[$names[12]] = array('1'=>"распространяется параллельно оптической оси", '2'=>"не изменит направления", '3'=>"пройдет через центр сферы, ограничивающей линзу", '4'=>"пройдет через фокус", '5'=>"2");
- $bas[$names[13]] = array('1'=>"-5 дптр", '2'=>"10 дптр", '3'=>"8 град", '4'=>"- 2 рад", '5'=>"2");
- $bas[$names[14]] = array('1'=>"прозрачное тело, ограниченное двумя выпуклыми сферическими поверхностями, либо одной плоской поверхностью и одной выпуклой поверхностью", '2'=>"сильно отшлифованное стекло", '3'=>"прозрачное тело, ограниченное двумя вогнутыми сферическими поверхностями", '4'=>"две призмы, основания которых освещены", '5'=>"1");
- $bas[$names[15]] = array('1'=>"1/5", '2'=>"2", '3'=>"5", '4'=>"6", '5'=>"3");
- $bas[$names[16]] = array('1'=>"увеличенным", '2'=>"равным предмету", '3'=>"уменьшенным", '4'=>"несформированным", '5'=>"3");
- $bas[$names[17]] = array('1'=>"F < d < 2F", '2'=>"d = 2F", '3'=>"d < F", '4'=>"d > F", '5'=>"3");
- $bas[$names[18]] = array('1'=>"действительные и прямые", '2'=>"мнимые и перевернутые", '3'=>"действительные и увеличенные", '4'=>"мнимые и уменьшенные", '5'=>"4");
- $bas[$names[19]] = array('1'=>"1,5 см", '2'=>"6 см", '3'=>"5 см", '4'=>"20 см", '5'=>"2");
- $bas[$names[20]] = array('1'=>"12 см", '2'=>"13 см", '3'=>"4/3 см", '4'=>"6 см", '5'=>"1");
- $bas[$names[21]] = array('1'=>"всегда мнимые", '2'=>"всегда действительные", '3'=>"мнимые или действительные в зависимости от расстояния между предметом и зеркалом", '4'=>"перевернутые", '5'=>"1");
- $bas[$names[22]] = array('1'=>"70", '2'=>"55", '3'=>"45", '4'=>"35", '5'=>"2");
- $bas[$names[23]] = array('1'=>"20 см", '2'=>"0,2 см", '3'=>"2 см", '4'=>"7 см", '5'=>"1");
- $bas[$names[24]] = array('1'=>"голубой", '2'=>"зеленый", '3'=>"красный", '4'=>"угол будет одинаковым для всех трех лучей", '5'=>"4");
- $bas[$names[25]] = array('1'=>"различных форм предметов, через которые проходит свет", '2'=>"различных скоростей света в вакууме", '3'=>"различных скоростей составляющих белого света в средах, отличных от вакуума", '4'=>"неоднородности среды", '5'=>"3");
- $bas[$names[26]] = array('1'=>"интерференция", '2'=>"расщепление", '3'=>"фотоэффект", '4'=>"дифракция", '5'=>"3");
- $bas[$names[27]] = array('1'=>"несет элементарный отрицательный заряд", '2'=>"несет элементарный положительный заряд", '3'=>"не несет никакого заряда", '4'=>"нет правильного ответа ", '5'=>"3");
- $bas[$names[28]] = array('1'=>"602 нм", '2'=>"602 мкм", '3'=>"602*10 Дж", '4'=>"602*11 Дж", '5'=>"1");
- $bas[$names[29]] = array('1'=>"отражается", '2'=>"преломляется", '3'=>"не меняет направления", '4'=>"меняет направления", '5'=>"3");
- $bas[$names[30]] = array('1'=>"рассеяния белого света", '2'=>"разложения белого", '3'=>"отражения белого света от капелек воды", '4'=>"смешивания различных цветов", '5'=>"2");
- $bas[$names[31]] = array('1'=>"линзу", '2'=>"зеркало", '3'=>"призму", '4'=>"стекло", '5'=>"3");
- // Изминение базы )
- for ($y=1; $y<=31; $y++ ){
- $chis=rand(1,31);
- $chis1=rand(1,31);
- if ($chis!==$chis1){$baf[1]=$names[$chis]; $names[$chis]=$names[$chis1]; $names[$chis1]=$baf[1];}
- }
- ?>
- <?php
- $max=31;
- $min=1;
- function generate2()
- {
- global $names, $bas,$max,$min;
- // выводим вопросы
- echo "<FORM method=post name=fs1>";
- echo "<p><font id='relekt2'>";
- for ($x=$min; $x<=$max; $x++ )
- {
- echo "<b>$names[$x]</b><br>\n ";
- for ($y=1; $y<=4; $y++ )
- {
- $b=$bas[$names[$x]][$y];
- if ($y==1) {$s=" checked "; } else {$s="";}
- echo "<INPUT type=radio value=$y name=q$x$s >$b<br>\n";
- }
- }
- }
- generate2();
- $qt=0;
- echo "<input type=hidden name=stolb value='0' >
- <input type=submit value='Провериты' ONMOUSEOVER='on1()' >
- <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>";}
- ?>
(Добавление)
получаеться так что я ставлю ответы нажимаю на кнопку и выводиться ответ но программа проверает ответы уже сновой генерацией вопросов а не с прошлой и поэтому подчет ответов не верен как это исправить ??