Показать сообщение отдельно
  #1 (permalink)  
Старый 17.05.2012, 03:02
Профессор
Отправить личное сообщение для KamalovRadik Посмотреть профиль Найти все сообщения от KamalovRadik
 
Регистрация: 03.08.2011
Сообщений: 150

Тест в php. Некорректный подсчет правильных ответов.
Очень нужна ваша помощь. Через 4 часа сдавать.

Имею тест. Вопросы достаю из БД.

<?php

$db = mysql_connect('localhost', 'ItEconom','22304qqq');
mysql_select_db('IT', $db);

$myrow = mysql_query("SELECT question, var1, var2, var3, var4,var5,var6,var7 FROM     testProc3 ");
$count = 0;
$arr[0]=0;
While($count<20)
{   
    $a = false;
    while(!$a)
    {
    $count2 = 0;
     $num = rand(1,mysql_num_rows($myrow)-1);
     for($i=0; $i<count($arr); $i++)
     {
        if($num!=$arr[$i])  $count2++;

     }
     if($count2==count($arr)) { $arr[$count]=$num; $a=true;}
}
   $count++;
   echo "<form action = 'handler.php' method = 'Post' name = 'Post'>";
    printf("%s<br><label><input type = 'radio' name = 'id[%s][1]' value = '1'></label> а) %s<br><input type = 'radio' name = 'id[%s][2]' value = '2'></label> б) %s<br><input type = 'radio' name = 'id[%s][3]' value = '3'></label> в) %s<br>", mysql_result($myrow,$num,'question'), $num,  mysql_result($myrow,$num,'var1'), $num, mysql_result($myrow,$num,'var2'),$num, mysql_result($myrow,$num,'var3'));

if (mysql_result($myrow,$num,'var4')!=null) {echo "<input type = 'radio' name = id[".$num."][4] value = '4'></label> г) ".mysql_result($myrow,$num,'var4').'<br>';}
if (mysql_result($myrow,$num,'var5')!=null) {echo "<input type = 'radio' name = id[".$num."][5] value = '5'></label> д) ".mysql_result($myrow,$num,'var5').'<br>';}
if (mysql_result($myrow,$num,'var6')!=null) {echo "<input type = 'radio' name = id[".$num."][6] value = '6'></label> е) ".mysql_result($myrow,$num,'var6').'<br>';}
if (mysql_result($myrow,$num,'var7')!=null) {echo "<input type = 'radio' name = id[".$num."][7] value = '7'></label> ж) ".mysql_result($myrow,$num,'var7').'<br>';}
echo '<br>';

}
   echo ' <input type="submit"  value = "Показать результаты"/>';
     echo "</form>";

?>


Вот обработчик:

<?php

$db = mysql_connect('localhost', 'ItEconom','22304qqq');
mysql_select_db('IT', $db);
$pravOtv = 0;
foreach( $_POST['id'] as $i )
{
    //echo $i;
   foreach($i as $j ){
    $otv = 0;
    $svet = 0;
   for($count =1; $count<8; $count++)
   {
    $tmp = mysql_query("select * FROM testProc3");
    echo mysql_result($tmp,$i,'otv'.$count);
 
    if (intval(mysql_result($tmp,$i,'otv'.$count)))  ++$svet; // Проверяю сколько всего правильных вариантов ответа в БД
    //echo $svet;
// echo mysql_result($tmp,$i,'otv'.$count);
//    echo "\n";
    if($j==mysql_result($tmp,$i,'otv'.$count))// Проверяю совпадают ли мои ответы с правильными
    {
        $otv++;
    }
   }}
   if($svet==$otv) $pravOtv++; // Если кол-во вариантов ответа совпало с решенными, то имеем один правильный ответ.
// echo "j".count($j)."\n";
   
}
printf('
<style type="text/css">
   .print { 
    font-size: 40px; 
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    color: #333366;
    margin:  200px  200px;
   }
   </style> ');
  echo'  <div class = "print" >Правильных ответов: '.$pravOtv.'</div>';



?>


В итоге постоянно получаю: правильных ответов:0
Ответить с цитированием