Тесты(подсчитать процент правильных ответов)

alex4715

Новичок
Тесты(подсчитать процент правильных ответов)

Доброе время суток.
Вот написал скриптик тестов.
В общем есть 7 полей в бд в таблице вопросы id,vopros,otvet,otvet1,otvet2,otvet3,otvet4 в первых двух понятно что находится, в поле otvet хранится правильная цифра ответа т.е. если верный первый вариант то 1 если третий то 3 и тд... в полях otvet1...otvet4 хранятся варианты ответов.
Хочу попросить помощи в написании подсчёта так сказать баллов т.е. если правильно, то +1 если неправильно, то не прибавляется. ну с приведением баллов в процент я думаю сам справлюсь.
PHP:
<?php include "bd.php" ?>


<?php
if (isset($_POST[button]))
{
    if(isset($_POST['vop']))
    {
        $vop = $_POST['vop'] + 1;
    }
    else
    {
        $vop=1;
    }
    echo "<form action=" .basename($_SERVER['SCRIPT_NAME'])." method=POST>
    <input type=hidden name=vop value=$vop>";
    $result = mysql_query("SELECT id,vopros,otvet,otvet1,otvet2,otvet3,otvet4 FROM voprosi where id=$vop", $db);
    $myrow = mysql_fetch_array($result);
    $num=array("А","Б","В","Г");
    $j=1;


    $o=array($myrow['otvet1'],$myrow['otvet2'],$myrow['otvet3'],$myrow['otvet4']);
    echo "<br>" . $myrow['vopros']."<br><br>\n";

    for($i=0;$i<=3;)
    {
        echo "<input name=otv type=radio value=".$j.">". $num[$i].") ".$o[$i] ."<br>\n";
        $j++;
        $i++;

    }

    if($vop==4)
    {
        echo "</form>
        <form action=result.php method=POST>
        <input type=submit name=button value=Готово>
        </form>";
    }
    else
    {
        echo "<br><input type=submit name=button value=Следующий>
        </form>";
    }
}
else
{
    echo "<form action=" .basename($_SERVER['SCRIPT_NAME'])." method=POST>
    <br><input type=submit name=button value=Начать> </form>";
}
Заранее благодарен
 

Армян

Новичок
а в чем именно проблема? определить правильный ответ или в увеличении значения переменной на 1 ?
 

alex4715

Новичок
я пишу такую строку для теста
PHP:
if($myrow[otvet]==$_POST[otv])
{
    echo "Правильный ответ";
} 
else
{
    echo "Не правильный ответ";
}
и получаеться что вот первый вариант ответа нажмию на верный вариант жму кнопку следущий и мой верный вариант показываеться что не верный, жму назад выбераю правильный ответ второго вопроса и ставлю этот ответ на первый вопрос нажимаю пишит верный
 

dimagolov

Новичок
жму назад выбераю правильный ответ второго вопроса и ставлю этот ответ на первый вопрос нажимаю пишит верный
чтобы такого не происходило, надо ВСЕГДА получая POST запрос делать переадресацию на страницу с результатом запроса, чтобы браузер запросил ее GET-ом.
кроме того, раз тебе надо обеспечить уникальность ответов, то надо отправляя форму с вопросом включать в скрытое поле уникальный идентификатор, который сохранять в сессии и после получения ответа сверять - есть такой в сессии или нет, если есть, то принимать ответ и удалять идентификатор из сессии, а если нету посылать за елки читера.
 

SiMM

Новичок
Не по теме, но тем не менее:
1) пишите код под error_reportings(E_ALL);
2) [m]language.types.array#language.types.array.foo-bar[/m]
 
Сверху