Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подсчет правильных и не правильных ответов в тесте 
:(
    Опции темы
beginner1
  Дата 10.5.2014, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



Здравствуйте. Помогите пожалуйста. Я вывожу вопрос и ответы из БД. В данный момент я пытаюсь сделать подсчет правильных ответов, но к сожалению не получается помогите пожалуйста что не так? Пожалуйста помогите очень нужна помощь(((.
Код

<html>
<head>
<title><? echo 'test' ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>

Код

<?php  
  
$host='localhost';  
$user='admin';  
$password='12345';  
$db='baza';  
$db_table_to_show = 'user'; 
$db_table_to_show1 = 't_vorosy'; 
$mysql_bd = mysql_connect($host, $user, $password) or die("Ошибка соединения! ".mysql_error());  
  
mysql_query("SET NAMES utf8") or die(mysql_error()); 
mysql_select_db($db) or die("Нет соединения с БД: ".mysql_error());  
  
  
    //$copletetest_question=mysql_query("select * from copletetest ") or die(mysql_error()); 
    $nomer_question=mysql_query("select * from question_numbers, copletetest where question_numbers.userID=copletetest.userID and question_numbers.date=copletetest.TestDate and question_numbers.time=copletetest.TestTime") or die(mysql_error()); 
    //$nomer_question2=mysql_query("select max(id) from question_numbers") or die(mysql_error()); 
    //$nomer_question3=mysql_query("select max(id) from copletetest") or die(mysql_error()); 
    $n_q = mysql_fetch_assoc($nomer_question); 
    //$n_q2 = mysql_fetch_assoc($nomer_question2); 
    //$n_q3 = mysql_fetch_assoc($nomer_question3); 
    $caa = $n_q['countallanswer']; 
    //echo 'caa'.$caa; 
    $id=$n_q['id']; 
    //echo 'id'.$id; 
    if($caa==0) 
    { 
    $ch=$n_q['q1']; 
     
    } 
    elseif($caa==1) 
    { 
    $ch=$n_q['q2']; 
    } 
    elseif($caa==2) 
    { 
    $ch=$n_q['q3']; 
    } 
    elseif($caa==3) 
    { 
    $ch=$n_q['q4']; 
    } 
    elseif($caa==4) 
    { 
    $ch=$n_q['q5']; 
    } 
    elseif($caa==5) 
    { 
    $ch=$n_q['q6']; 
    } 
    elseif($caa==6) 
    { 
    $ch=$n_q['q7']; 
    } 
    elseif($caa==7) 
    { 
    $ch=$n_q['q8']; 
    } 
    elseif($caa==8) 
    { 
    $ch=$n_q['q9']; 
    } 
    elseif($caa==9) 
    { 
    $ch=$n_q['q10']; 
    } 
    elseif($caa==10) 
    { 
    $ch=0; echo 'тест завершен';  
    } 
    $question_result = mysql_query("select question, vvodotveta from t_vorosy where t_vorosy.id='$ch'") or die(mysql_error());//запрос для вывода вопроса 
    $answer_result = mysql_query("select answer, correct, question_id from t_otvet where t_otvet.question_id='$ch'") or die(mysql_error());//запрос для вывода ответа 
    $row = mysql_fetch_assoc($question_result); 
    echo '<FORM METHOD=POST>'; 
    //$c_q = mysql_fetch_assoc($copletetest_question); 
    echo $row["question"].'</br>';//вывожу вопрос 
     
    if ($row["vvodotveta"]==1) //если поле ввод ответа в БД равно 1 то выводим текстовое поле для ответа 
    {    
        echo ' <input name="text" type="text" value="'.$data['answer'].'">' ; 
    } else while($data = mysql_fetch_assoc($answer_result)){ //иначе выводим варианты ответов с помощью радио кнопок 
           echo '<label><input name="radio" type="radio" value="'.$data['correct'].'">'.$data['answer'].'</label></br>'; 
     
         
        }   
//подсчет правильных и не правильных ответов 
   if(isset($_POST['submit'])){
            if ($_POST[$data['correct']] == 1 ) //поле correct в таблице t_otvet имеет тип бит,т.е. если ответ правильный то это поле равно 1, иначе ответ неверный  
    { 
        echo "verno" ; 
         
        //Увеличиваем количество правильных ответов на 1 
        $ball++; 
        $sql_TestAnswered =mysql_query("UPDATE copletetest SET TestAnswered='$ball' WHERE id='$id'") or die("error: ".mysql_error());//заполняю поле TestAnswered(кол-во правильных ответов) в бд  
    } 
      
    else  
    { 
        echo "ne verno"; 
    } 
          $caa=$caa+1; 
           echo   $sql2 =mysql_query("UPDATE copletetest SET countallanswer='$caa' WHERE id='$id'") or die("error: ".mysql_error()); $caa; //заношу в бд число, например что первый вопрос отвечен или пройден 
}
echo'<input name="submit" type="submit" value="следующий вопрос"></form>'; 
    /*echo '   
<FORM> 
<input TYPE="button" VALUE=" далее " ONCLICK="HomeButton()"> <script> 
function HomeButton() 

location.href="index1(2).php"; 

</script> 
</FORM>'; */ 
  
mysql_close($mysql_bd); 
  
  
?>

Код

</body>
</html>


Это сообщение отредактировал(а) beginner1 - 12.5.2014, 09:45
PM MAIL   Вверх
igorold
Дата 12.5.2014, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: нет
Всего: 17



что не получается? какой результат работы скрипта?

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
beginner1
Дата 12.5.2014, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



не получается подсчет правильных и не правильных ответов  результат скрипта, выводит вопрос и ответы из БД, а правильные ответы не считает и не заносит в БД по нажатию кнопки "следующий вопрос".
Код

//подсчет правильных и не правильных ответов 
            if ($_POST[$data['correct']] == 1 ) //поле correct в таблице t_otvet имеет тип бит,т.е. если ответ правильный то это поле равно 1, иначе ответ неверный  
    { 
        echo "verno" ; 
         
        //Увеличиваем количество правильных ответов на 1 
        $ball++; 
        $sql_TestAnswered =mysql_query("UPDATE copletetest SET TestAnswered='$ball' WHERE id='$id'") or die("error: ".mysql_error());//заполняю поле TestAnswered(кол-во правильных ответов) в бд  
    } 
      
    else  
    { 
        echo "ne verno"; 
    } 

PM MAIL   Вверх
beginner1
Дата 12.5.2014, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



всегда ответ не верный и считает не по нажатию кнопки

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
beginner1
Дата 12.5.2014, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



Помогите пожалуйста.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Aliance
Дата 12.5.2014, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



Цитата(beginner1 @  10.5.2014,  15:25 Найти цитируемый пост)
    if($caa==0) 
    { 
    $ch=$n_q['q1']; 
     
    } 
    elseif($caa==1) 
    { 
    $ch=$n_q['q2']; 
    } 
    elseif($caa==2) 
    { 
    $ch=$n_q['q3']; 
    } 
    elseif($caa==3) 
    { 
    $ch=$n_q['q4']; 
    } 
    elseif($caa==4) 
    { 
    $ch=$n_q['q5']; 
    } 
    elseif($caa==5) 
    { 
    $ch=$n_q['q6']; 
    } 
    elseif($caa==6) 
    { 
    $ch=$n_q['q7']; 
    } 
    elseif($caa==7) 
    { 
    $ch=$n_q['q8']; 
    } 
    elseif($caa==8) 
    { 
    $ch=$n_q['q9']; 
    } 
    elseif($caa==9) 
    { 
    $ch=$n_q['q10']; 
    } 
    elseif($caa==10) 
    { 
    $ch=0; echo 'тест завершен';  
    } 

Вы слышали, что такое switch/case?

Про конструкцию else while я промолчу smile Скобочки не мешало бы расставить для адекватной читаемости.

Что касается вопроса, тут логика скрипта, как мне кажется, страдает.

У вас в 88 строчке используется переменная data, а откуда она возьмется, если до этого выполниться условие if?
PM MAIL WWW ICQ Skype   Вверх
beginner1
Дата 13.5.2014, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



да я знаю что логика скрипта хромает((( Aliance помогите пожалуйста исправить, чтобы правильно работало правильно ли ответил пользователь на вопрос или нет и подсчитывалось количество правильных ответов.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Aliance
Дата 14.5.2014, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



А итак помогаю, пока не вижу вариантов исправленного вами кода с учетом замечаний, озвученных в данной теме. Писать-то за вас это никто не будет ;-)
PM MAIL WWW ICQ Skype   Вверх
beginner1
Дата 14.5.2014, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



Aliance, заменила на switch/case.
Код

<html>
<head>
<title><? echo 'test' ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>

<?php 

$host='localhost'; 
$user='admin'; 
$password='12345'; 
$db='baza'; 
$db_table_to_show = 'user';
$db_table_to_show1 = 't_vorosy';
$mysql_bd = mysql_connect($host, $user, $password) or die("Ошибка соединения! ".mysql_error()); 

mysql_query("SET NAMES utf8") or die(mysql_error());
mysql_select_db($db) or die("Нет соединения с БД: ".mysql_error()); 


    //$copletetest_question=mysql_query("select * from copletetest ") or die(mysql_error());
    $nomer_question=mysql_query("select * from question_numbers, copletetest where question_numbers.userID=copletetest.userID and question_numbers.date=copletetest.TestDate and question_numbers.time=copletetest.TestTime") or die(mysql_error());
    //$nomer_question2=mysql_query("select max(id) from question_numbers") or die(mysql_error());
    //$nomer_question3=mysql_query("select max(id) from copletetest") or die(mysql_error());
    $n_q = mysql_fetch_assoc($nomer_question);
    //$n_q2 = mysql_fetch_assoc($nomer_question2);
    //$n_q3 = mysql_fetch_assoc($nomer_question3);
    $caa = $n_q['countallanswer'];
    //echo 'caa'.$caa;
    $id=$n_q['id'];
    //echo 'id'.$id;
    switch($caa){
    case 0: $ch=$n_q['q1']; break;
    case 1:    $ch=$n_q['q2']; break;
    case 2:    $ch=$n_q['q3']; break;    
    case 3:    $ch=$n_q['q4']; break;
    case 4:    $ch=$n_q['q5']; break;
    case 5:    $ch=$n_q['q6']; break;
    case 6:    $ch=$n_q['q7']; break;
    case 7:    $ch=$n_q['q8']; break;
    case 8: $ch=$n_q['q9']; break;
    case 9: $ch=$n_q['q10']; break;
    case 10: $ch=0; echo 'тест завершен'; break;
    }
    $question_result = mysql_query("select question, vvodotveta from t_vorosy where t_vorosy.id='$ch'") or die(mysql_error());//запрос для вывода вопроса
    $answer_result = mysql_query("select answer, correct, question_id from t_otvet where t_otvet.question_id='$ch'") or die(mysql_error());//запрос для вывода ответа
    $answer_result2 = mysql_query("select answer, correct, question_id from t_otvet where t_otvet.correct='1'") or die(mysql_error());//запрос для вывода ответа
    $count_ball = mysql_query("select TestAnswered from copletetest") or die(mysql_error());
    $c_b=mysql_fetch_assoc($count_ball);
    $row = mysql_fetch_assoc($question_result);
    
    echo '';
    //$c_q = mysql_fetch_assoc($copletetest_question);
    echo $row["question"].'</br>';//вывожу вопрос
    
    if ($row["vvodotveta"]==1) //если поле ввод ответа в БД равно 1 то выводим текстовое поле для ответа
    {   
        echo ' <input name="text" type="text" value="'.$data['answer'].'">' ;
    } else while($data = mysql_fetch_assoc($answer_result))
             { //иначе выводим варианты ответов с помощью радио кнопок
          echo '<div class="joltiy12"> 
          <FORM METHOD=POST ><label><input name="'.$data['correct'].'" type="radio" value="'.$data['correct'].'">'.$data['answer'].'</label></br>'; 
             } echo '</div>';

          $prav_ball = 0;
        if(isset($_POST['submit'])){
        //while($data2=mysql_fetch_assoc($answer_result2)){
            if ( $_POST[$data['correct']] == 1)
    {
        echo "verno" ;
        
        // Увеличиваем количество правильных ответов на 1
        $prav_ball++;
        $c=$c_b['TestAnswered'];
        echo $sql_Ans =mysql_query("UPDATE copletetest SET TestAnswered='$c+$prav_ball' WHERE id='$id'") or die("error: ".mysql_error());//заполняю поле TestAnswered(кол-во правильных ответов) в бд 
    }
     
    else 
    {
        echo "ne verno";
        $neprav_ball++;
        $sql_Ans=mysql_query("UPDATE copletetest SET TestUnanswered='$neprav_ball' WHERE id='$id'") or die("error: ".mysql_error());
    }                                                 //   }
    
          $caa=$caa+1;} 
           echo      $sql2 =mysql_query("UPDATE copletetest SET countallanswer='$caa' WHERE id='$id'") or die("error: ".mysql_error()); $caa;//заношу в бд число, например что первый вопрос отвечен или пройден

    /*echo '  
<FORM>
<input TYPE="button" VALUE=" далее " ONCLICK="HomeButton()"> <script>
function HomeButton()
{
location.href="index1(2).php";
}
</script>
</FORM>'; */
echo'<input name="submit" type="submit" value="следующий вопрос"></form>';
mysql_close($mysql_bd);


?>

    
</body>
</html>


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
beginner1
Дата 14.5.2014, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



Aliance, заменила на switch/case.
Код

<html>
<head>
<title><? echo 'test' ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>

Код

<?php

$host='localhost'; 
$user='admin'; 
$password='12345'; 
$db='baza'; 
$db_table_to_show = 'user';
$db_table_to_show1 = 't_vorosy';
$mysql_bd = mysql_connect($host, $user, $password) or die("Ошибка соединения! ".mysql_error()); 

mysql_query("SET NAMES utf8") or die(mysql_error());
mysql_select_db($db) or die("Нет соединения с БД: ".mysql_error()); 


    //$copletetest_question=mysql_query("select * from copletetest ") or die(mysql_error());
    $nomer_question=mysql_query("select * from question_numbers, copletetest where question_numbers.userID=copletetest.userID and question_numbers.date=copletetest.TestDate and question_numbers.time=copletetest.TestTime") or die(mysql_error());
    //$nomer_question2=mysql_query("select max(id) from question_numbers") or die(mysql_error());
    //$nomer_question3=mysql_query("select max(id) from copletetest") or die(mysql_error());
    $n_q = mysql_fetch_assoc($nomer_question);
    //$n_q2 = mysql_fetch_assoc($nomer_question2);
    //$n_q3 = mysql_fetch_assoc($nomer_question3);
    $caa = $n_q['countallanswer'];
    //echo 'caa'.$caa;
    $id=$n_q['id'];
    //echo 'id'.$id;
    switch($caa){
    case 0: $ch=$n_q['q1']; break;
    case 1:    $ch=$n_q['q2']; break;
    case 2:    $ch=$n_q['q3']; break;    
    case 3:    $ch=$n_q['q4']; break;
    case 4:    $ch=$n_q['q5']; break;
    case 5:    $ch=$n_q['q6']; break;
    case 6:    $ch=$n_q['q7']; break;
    case 7:    $ch=$n_q['q8']; break;
    case 8: $ch=$n_q['q9']; break;
    case 9: $ch=$n_q['q10']; break;
    case 10: $ch=0; echo 'тест завершен'; break;
    }
    $question_result = mysql_query("select question, vvodotveta from t_vorosy where t_vorosy.id='$ch'") or die(mysql_error());//запрос для вывода вопроса
    $answer_result = mysql_query("select answer, correct, question_id from t_otvet where t_otvet.question_id='$ch'") or die(mysql_error());//запрос для вывода ответа
    $answer_result2 = mysql_query("select answer, correct, question_id from t_otvet where t_otvet.correct='1'") or die(mysql_error());//запрос для вывода ответа
    $count_ball = mysql_query("select TestAnswered from copletetest") or die(mysql_error());
    $c_b=mysql_fetch_assoc($count_ball);
    $row = mysql_fetch_assoc($question_result);
    
    echo '';
    //$c_q = mysql_fetch_assoc($copletetest_question);
    echo $row["question"].'</br>';//вывожу вопрос
    
    if ($row["vvodotveta"]==1) //если поле ввод ответа в БД равно 1 то выводим текстовое поле для ответа
    {   
        echo ' <input name="text" type="text" value="'.$data['answer'].'">' ;
    } else while($data = mysql_fetch_assoc($answer_result))
             { //иначе выводим варианты ответов с помощью радио кнопок
          echo '<div class="joltiy12"> 
          <FORM METHOD=POST ><label><input name="'.$data['correct'].'" type="radio" value="'.$data['correct'].'">'.$data['answer'].'</label></br>'; 
             } echo '</div>';

          $prav_ball = 0;
        if(isset($_POST['submit'])){
        //while($data2=mysql_fetch_assoc($answer_result2)){
            if ( $_POST[$data['correct']] == 1)
    {
        echo "verno" ;
        
        // Увеличиваем количество правильных ответов на 1
        $prav_ball++;
        $c=$c_b['TestAnswered'];
        echo $sql_Ans =mysql_query("UPDATE copletetest SET TestAnswered='$c+$prav_ball' WHERE id='$id'") or die("error: ".mysql_error());//заполняю поле TestAnswered(кол-во правильных ответов) в бд
    }
     
    else
    {
        echo "ne verno";
        $neprav_ball++;
        $sql_Ans=mysql_query("UPDATE copletetest SET TestUnanswered='$neprav_ball' WHERE id='$id'") or die("error: ".mysql_error());
    }                                                 //   }
    
          $caa=$caa+1;}
           echo      $sql2 =mysql_query("UPDATE copletetest SET countallanswer='$caa' WHERE id='$id'") or die("error: ".mysql_error()); $caa;//заношу в бд число, например что первый вопрос отвечен или пройден

    /*echo '  
<FORM>
<input TYPE="button" VALUE=" далее " ONCLICK="HomeButton()"> <script>
function HomeButton()
{
location.href="index1(2).php";
}
</script>
</FORM>'; */
echo'<input name="submit" type="submit" value="следующий вопрос"></form>';
mysql_close($mysql_bd);


?>

Код

</body>
</html>


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
beginner1
Дата 14.5.2014, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



"У вас в 88 строчке используется переменная data, а откуда она возьмется, если до этого выполниться условие if?" 
вот так надо было исправить?
Код

if(isset($_POST['submit'])){
        //while($data2=mysql_fetch_assoc($answer_result2)){
            $cor=$_POST[$data['correct']];
            if ( $cor == 1)
    {
        echo "verno" ;
         
        // Увеличиваем количество правильных ответов на 1
        $prav_ball++;
        $c=$c_b['TestAnswered'];
        echo $sql_Ans =mysql_query("UPDATE copletetest SET TestAnswered='$c+$prav_ball' WHERE id='$id'") or die("error: ".mysql_error());//заполняю поле TestAnswered(кол-во правильных ответов) в бд
    }
      
    else
    {
        echo "ne verno";
        $neprav_ball++;
        $sql_Ans=mysql_query("UPDATE copletetest SET TestUnanswered='$neprav_ball' WHERE id='$id'") or die("error: ".mysql_error());
    }                                                 //   }
     
          $caa=$caa+1;}


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Aliance
Дата 14.5.2014, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



Нет, не так. У вас используется переменная $data, а задается они в блоке else условия. По логике не знаю, но по идеи этот блок может не выполнится - значит переменной не будет.

Далее, у вас логика представления и бизнес-логика смешана в одном месте, это не есть гуд. Почитайте, что такое MVC. Это, скорее на заметку, т.к. сейчас будет, полагаю, весьма сложным.

Основная проблема, что вижу я, в том, что вывод вопросов, запись ответов и подсчет результатов располагается в одном месте и выполняется без особых условий.

Нужно построить логику примерно так:
Код

if (strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') {
    // тут мы послали данные в форме, значит нужно либо записать ответ, либо подсчитать результат
    if (ответов < вопросов) {
        // запись ответов
    } else {
        // подсчет результатов
    }
} else {
   // тут выводим вопросы из бд
}

PM MAIL WWW ICQ Skype   Вверх
beginner1
Дата 14.5.2014, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



Вот так вот? только вопрос и ответы правильно перестали выводиться
Код

<?php

$host='localhost'; 
$user='admin'; 
$password='12345'; 
$db='baza'; 
$db_table_to_show = 'user';
$db_table_to_show1 = 't_vorosy';
$mysql_bd = mysql_connect($host, $user, $password) or die("Ошибка соединения! ".mysql_error()); 

mysql_query("SET NAMES utf8") or die(mysql_error());
mysql_select_db($db) or die("Нет соединения с БД: ".mysql_error()); 


    //$copletetest_question=mysql_query("select * from copletetest ") or die(mysql_error());
    $nomer_question=mysql_query("select * from question_numbers, copletetest where question_numbers.userID=copletetest.userID and question_numbers.date=copletetest.TestDate and question_numbers.time=copletetest.TestTime") or die(mysql_error());
    //$nomer_question2=mysql_query("select max(id) from question_numbers") or die(mysql_error());
    //$nomer_question3=mysql_query("select max(id) from copletetest") or die(mysql_error());
    $n_q = mysql_fetch_assoc($nomer_question);
    //$n_q2 = mysql_fetch_assoc($nomer_question2);
    //$n_q3 = mysql_fetch_assoc($nomer_question3);
    $caa = $n_q['countallanswer'];
    //echo 'caa'.$caa;
    $id=$n_q['id'];
    //echo 'id'.$id;
    switch($caa){
    case 0: $ch=$n_q['q1']; break;
    case 1:    $ch=$n_q['q2']; break;
    case 2:    $ch=$n_q['q3']; break;    
    case 3:    $ch=$n_q['q4']; break;
    case 4:    $ch=$n_q['q5']; break;
    case 5:    $ch=$n_q['q6']; break;
    case 6:    $ch=$n_q['q7']; break;
    case 7:    $ch=$n_q['q8']; break;
    case 8: $ch=$n_q['q9']; break;
    case 9: $ch=$n_q['q10']; break;
    case 10: $ch=0; echo 'тест завершен'; break;
    }
    $question_result = mysql_query("select question, vvodotveta from t_vorosy where t_vorosy.id='$ch'") or die(mysql_error());//запрос для вывода вопроса
    $answer_result = mysql_query("select  answer, correct, question_id from t_otvet where t_otvet.question_id='$ch'") or die(mysql_error());//запрос для вывода ответа
    $answer_result2 = mysql_query("select answer, correct, question_id from t_otvet where t_otvet.correct='1'") or die(mysql_error());//запрос для вывода ответа
    $count_ball = mysql_query("select TestAnswered from copletetest") or die(mysql_error());
    $count=mysql_query("select  count(*) from t_otvet where t_otvet.question_id='$ch'") or die(mysql_error());
    $c_b=mysql_fetch_assoc($count_ball);
    $row = mysql_fetch_assoc($question_result);
    $count_=mysql_fetch_assoc($count);
    
    echo '';
    //$c_q = mysql_fetch_assoc($copletetest_question);
    //вывожу вопрос
    echo '<div class="joltiy12">  <FORM METHOD=POST >';
    if (strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') {
    //if ($row["vvodotveta"]==1) //если поле ввод ответа в БД равно 1 то выводим текстовое поле для ответа
       if($count_['answer']<3)
        {   
        echo ' <input name="text" type="text" value="'.$data['answer'].'">' ;
        } else while($data = mysql_fetch_assoc($answer_result)){ //иначе выводим варианты ответов с помощью радио кнопок
          echo '<label><input name="'.$data['correct'].'" type="radio" value="'.$data['correct'].'">'.$data['answer'].'</label></br>'; 
              } echo '</div>';
              
    } else { echo $row["question"].'</br>';}
        
          $prav_ball = 0;
        if(isset($_POST['submit'])){
        //while($data2=mysql_fetch_assoc($answer_result2)){
        
            if ( $_POST[$data['correct']] == 1)// ($data['correct']==1 and
    {
        echo "verno" ;
        
        # Увеличиваем количнство правильных ответов на 1
        $prav_ball++;
        $c=$c_b['TestAnswered'];
        echo $sql_Ans =mysql_query("UPDATE copletetest SET TestAnswered='$c+$prav_ball' WHERE id='$id'") or die("error: ".mysql_error());//заполняю поле TestAnswered(кол-во правильных ответов) в бд
    }
     
    else
    {
        echo "ne verno";
        $neprav_ball++;
        $sql_Ans=mysql_query("UPDATE copletetest SET TestUnanswered='$neprav_ball' WHERE id='$id'") or die("error: ".mysql_error());
    }                                                 //   }
    
          $caa=$caa+1;}
           echo      $sql2 =mysql_query("UPDATE copletetest SET countallanswer='$caa' WHERE id='$id'") or die("error: ".mysql_error()); $caa;//заношу в бд число, например что первый вопрос отвечен или пройден

    /*echo '  
<FORM>
<input TYPE="button" VALUE=" далее " ONCLICK="HomeButton()"> <script>
function HomeButton()
{
location.href="index1(2).php";
}
</script>
</FORM>'; */
echo'<input name="submit" type="submit" value="следующий вопрос"></form>';
mysql_close($mysql_bd);


?>


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Aliance
Дата 14.5.2014, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



Нет, не так. Такое ощущение, что вы просто наугад заменяете строки. Тут на форуме могут помочь, если у вас есть способности самому что-то исправить. В исключительных случаях, если задача простая, могут написать за вас, потому что там проще. Но не стоит ожидать, что за вас полностью переделают более-менее большой скрипт, в котором нужно разбираться. Обычно такое делается в разделе работа, но уже не за бесплатно ;-)

Я выше дал вам примерный алгоритм, у вашем же "исправлении" до сих пор осталась строчка "if(isset($_POST['submit'])){".

И зачем вы выкладываете закомментированные строчки, если они не несут смысловой нагрузки? Так же пароли подключения к БД, это не нужно и занимает только лишнее место. Нужно не тупо копипастить код всего файла, а выкладывать только значимые куски, тогда возможно и желающих вам помочь будет больше, т.к. их не будет пугать большой размер исходников.

Что касается кодстайла, я рекомендую вам выносить сами запросы в отдельные переменные, чтобы визуально улучшить читаемость (но это чисто мое субъективное мнение), так же у вас там есть уязвимости (sql injection).
PM MAIL WWW ICQ Skype   Вверх
beginner1
Дата 14.5.2014, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.5.2014

Репутация: нет
Всего: нет



Просто я недавно начала изучать php. и у меня буквально 2 недели осталось, чтобы написать программу и отчет по ней. ну точнее диплом написать.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1269 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.