Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: создание on line теста
 
 автор: pautina   (16.06.2008 в 13:00)   письмо автору
 
 

Здравствуйте Уважаемое сообщество. У меня есть следующий участок кода.

<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> -->

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<style type="text/css">
 BODY { overflow-x: hidden } /* Отмена горизонтальной полосы скролера (действует если нет doctype )*/
 #content {left:0px; top:0px; right:0px; width:100%; height:100px; position:absolute; background-color:#2afcb4;}
 #content-text { left:50px; right:5px; top:105px; width:95%; position:absolute; font-family:"Times New Roman"; font-size:17px; }
 
</style>
</head>

<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<div id="content">
 <img src="image/content.gif" width="1000" height="100" border="0">
</div>
<div id="content-text">
<br>
<form method="post" action="">

<b>Вопрос 1</b><br>
Какие из этих видов транспорта передвигаются по земле?<br>
<table cellpadding="3" cellspacing="0" border="0">
<tr>
 <td><input name="v1vo1" type="checkbox" value=""></td>
 <td>Подводная лодка</td>
</tr>
<tr>
 <td><input name="v1vo2" type="checkbox" value=""></td>
 <td>Поезд</td>
</tr>
<tr>
 <td><input name="v1vo3" type="checkbox" value=""></td>
 <td>Самолёт</td>
</tr>
<tr>
 <td><input name="v1vo4" type="checkbox" value=""></td>
 <td>Дерижабль</td>
</tr>
</table>
<input type="submit" value="Следующий вопрос">
</form>

</div>

</body>
</html>


Вы ни скажете как мне описать проверку выбранного варианта ответа на php (Из 4 вариантов ответа только 1 правильный, в первом вопросе правильный ответ поезд,
<td><input name="v1vo2" type="checkbox" value=""></td>
, какое условие на языке php мне написать чтобы при выборе этого варианта ответа значение счётчика увеличилось на 1, иначе значение счетчика 0)

   
 
 автор: elenaki   (16.06.2008 в 13:01)   письмо автору
 
   для: pautina   (16.06.2008 в 13:00)
 

Дерижабль :):):)

   
 
 автор: pautina   (16.06.2008 в 13:05)   письмо автору
 
   для: elenaki   (16.06.2008 в 13:01)
 

Как условие написать?

   
 
 автор: BinLaden   (16.06.2008 в 13:07)   письмо автору
 
   для: pautina   (16.06.2008 в 13:05)
 

А может лучше всё-таки применять radio, а не checkbox?

   
 
 автор: pautina   (16.06.2008 в 13:16)   письмо автору
 
   для: BinLaden   (16.06.2008 в 13:07)
 

А Вы ни скажете почему в создании теста лучше применять radio в отличие от checkbox? Извините уже ответили.

   
 
 автор: sim5   (16.06.2008 в 13:14)   письмо автору
 
   для: pautina   (16.06.2008 в 13:00)
 

<form action="" method="post">
<input type="radio" name="v1vo" value="1">
Подводная лодка<br>
<input type="radio" name="v1vo" value="2"> 
Поезд<br>
<input type="radio" name="v1vo" value="3">
Самолёт<br>
<input type="radio" name="v1vo" value="4">
Дерижабль<br>
<input type="submit" value="Следующий вопрос">
</form>
<?
echo $ans $_POST["v1vo"] == "Ответ правильный" "Овет неверный";
?>

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

   
 
 автор: pautina   (17.06.2008 в 12:54)   письмо автору
 
   для: sim5   (16.06.2008 в 13:14)
 

Ни могли Вы посмотреть следующие участки кода. Я хочу создать самый простой вариант теста, пусть он состоит всего из 3 вопросов (index.php, index2.php, index3.php и последняя страница last.php)
index.php

...
<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<div id="content">
 <img src="image/content.gif" width="1000" height="100" border="0">
</div>
<div id="content-text">
<br>
<form method="post" action="index2.php">

<b>Вопрос 1</b><br>
Какие из этих видов транспорта передвигаются по земле?<br>
<table cellpadding="3" cellspacing="0" border="0">
<tr>
 <td><input type="radio" name="v1vo" value="1"></td>
 <td>Подводная лодка</td>
</tr>
<tr>
 <td><input type="radio" name="v1vo" value="2"></td>
 <td>Поезд</td>
</tr>
<tr>
 <td><input type="radio" name="v1vo" value="3"></td>
 <td>Самолёт</td>
</tr>
<tr>
 <td><input type="radio" name="v1vo" value="4"></td>
 <td>Дерижабль</td>
</tr>
</table>
<input type="submit" value="Следующий вопрос">
</form>

<?php 
echo $ans1 $_POST["v1vo"] == "Ответ правильный" "Овет неверный"// Выводим сообщение правильный ли ответ

$count =0;  // Счётчик правильных ответов, по умолчанию равен 0
if ($ans1 $_POST["v1vo"] == 2// Если ответ правильный счётчик увеличивается на 1 иначе равен 0
 
$count count+1;
  }
echo 
$count;
?> 

</div>

</body>
...

index2.php

...
<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<div id="content">
 <img src="image/content.gif" width="1000" height="100" border="0">
</div>
<div id="content-text">
<br>
<form method="post" action="index3.php">

<b>Вопрос 2</b><br>
Какой из этих предметов по геометрической форме представляет сферу?<br>
<table cellpadding="3" cellspacing="0" border="0">
<tr>
 <td><input type="radio" name="v2vo" value="1"></td>
 <td>Куб</td>
</tr>
<tr>
 <td><input type="radio" name="v2vo" value="2"></td>
 <td>Пирамида</td>
</tr>
<tr>
 <td><input type="radio" name="v2vo" value="3"></td>
 <td>Мяч</td>
</tr>
<tr>
 <td><input type="radio" name="v2vo" value="4"></td>
 <td>Конус</td>
</tr>
</table>
<input type="submit" value="Следующий вопрос">
</form>

<?php 
echo $ans2 $_POST["v2vo"] == "Ответ правильный" "Овет неверный"// Выводим сообщение правильный ли ответ

if ($ans2 $_POST["v2vo"] == 3// Если ответ правильный счётчик увеличивается на 1 иначе равен 0
 
$count count+1;
  }
echo 
$count;
?> 

</div>

</body>
...

index3.php

...
<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<div id="content">
 <img src="image/content.gif" width="1000" height="100" border="0">
</div>
<div id="content-text">
<br>
<form method="post" action="last.php">

<b>Вопрос 3</b><br>
Кто из нижеперечисленного умеет летать?<br>
<table cellpadding="3" cellspacing="0" border="0">
<tr>
 <td><input type="radio" name="v3vo" value="1"></td>
 <td>Птица</td>
</tr>
<tr>
 <td><input type="radio" name="v3vo" value="2"></td>
 <td>Корова</td>
</tr>
<tr>
 <td><input type="radio" name="v3vo" value="3"></td>
 <td>Крокодил</td>
</tr>
<tr>
 <td><input type="radio" name="v3vo" value="4"></td>
 <td>Жираф</td>
</tr>
</table>
<input type="submit" value="Следующий вопрос">
</form>

<?php 
echo $ans3 $_POST["v3vo"] == "Ответ правильный" "Овет неверный"// Выводим сообщение правильный ли ответ

if ($ans3 $_POST["v3vo"] == 1// Если ответ правильный счётчик увеличивается на 1 иначе равен 0
 
$count count+1;
  }
echo 
$count;
?> 

</div>

</body>
...

Последняя страница last.php

<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<div id="content">
 <img src="image/content.gif" width="1000" height="100" border="0">
</div>
<div id="content-text">
<br>
Вы набрали n балов из возможных m<br>
Ваша оценка l<br>
Посмотрите на статистику ответов теста.
<table border="0" cellpadding="3" cellspacing="0" width="80%">
 <tr>
  <td>Номер вопроса</td>
  <td>Название вопроса</td>
  <td>Ваш вариант ответа</td>
  <td>Правильность ответа</td>
  <td>Бал за ответ</td>
  <td>Сумма балов</td>
 <tr>
 <tr>
  <td>1</td>
  <td>Какие из этих видов транспорта передвигаются по земле?</td>
  <td>Ваш вариант ответа</td>
  <td>Правильность ответа</td>
  <td>Бал за ответ</td>
  <td rowspan="5">Сумма балов</td>
 <tr>
 <tr>
  <td>2</td>
  <td>Какой из этих предметов по геометрической форме представляет сферу?</td>
  <td>Ваш вариант ответа</td>
  <td>Правильность ответа</td>
  <td>Бал за ответ</td>
  
 <tr>
 <tr>
  <td>3</td>
  <td>Кто из нижеперечисленного умеет летать?</td>
  <td>Ваш вариант ответа</td>
  <td>Правильность ответа</td>
  <td>Бал за ответ</td>
  
 <tr>
</table>

</div>

</body>

У меня возник вопрос по созданию счётчика, не могу вывести количество правильных баллов,
в index.php есть условие если вопрос правильный,

$count =0;  // Счётчик правильных ответов, по умолчанию равен 0
if ($ans1 = $_POST["v1vo"] == 2) // Если ответ правильный счётчик увеличивается на 1 иначе равен 0
 { $count = count+1;
  }
echo $count;

во второй и т ретьей странице тоже такое условие (только без строки $count =0). В случае если 3 ответа правильны в сумме не выходит 3 а 1, Что сделать здесь.
Есть ещё вопросы по статистике теста (last.php)
- как вывести "Ваш вариант ответа" хотелось бы чтобы здесь выводилось то значение, которое пользователь выбирал,
- правильность ответа (здесь должно выводиться - либо правильно либо неправильно)
- Бал за ответ (Если ответ был правильным получаем 1 бал, как вывести сдесь)
- Сумма баллов тоже вопрос.

   
 
 автор: sim5   (17.06.2008 в 13:43)   письмо автору
 
   для: pautina   (17.06.2008 в 12:54)
 

Даже, если это очередное "задание студенту", делать на каждый вопрос свою отдельную страницу, это не разумно, а массивы для чего? Если это как часть проекта, то тем более - храните свои вопросы в базе, и выдавайте вопросы с формой последовательно, один за другим, формируя одну и туже форму.

   
 
 автор: pautina   (17.06.2008 в 15:12)   письмо автору
 
   для: sim5   (17.06.2008 в 13:43)
 

Я решил сделать как Вы советовали (использовать один вариант формы, и данные по вопросам хранить в БД)
Для хранения данных по вопросам использовал следующий код

<?php
 $a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
 
mysql_query"CREATE DATABASE vopros" ); 
 
mysql_select_db"vopros");
 
mysql_query("CREATE TABLE vopros (  
                    id_voprosa INT NOT NULL,  
                    name_vopros TINYTEXT NOT NULL,  
                    var_otveta TINYTEXT NOT NULL,  
                    PRIMARY KEY (id_voprosa)  
                    )"
); 
 
// Вопрос 1                     
 
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(1, 'Какие из этих видов транспорта передвигаются по земле?', 'Подводная лодка')") or die (mysql_error());
  
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(1, 'Какие из этих видов транспорта передвигаются по земле?', 'Поезд')") or die (mysql_error());
  
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(1, 'Какие из этих видов транспорта передвигаются по земле?', 'Самолёт')") or die (mysql_error());
  
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(1, 'Какие из этих видов транспорта передвигаются по земле?', 'Дерижабль')") or die (mysql_error());
  
// Вопрос 2
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(2, 'Какой из этих предметов по геометрической форме представляет сферу?', 'Куб')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(2, 'Какой из этих предметов по геометрической форме представляет сферу?', 'Пирамида')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(2, 'Какой из этих предметов по геометрической форме представляет сферу?', 'Мяч')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(2, 'Какой из этих предметов по геометрической форме представляет сферу?', 'Конус')") or die (mysql_error()); 
 
// Вопрос 3 
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(3, 'Кто из нижеперечисленного умеет летать?', 'Птица')") or die (mysql_error());   
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(3, 'Кто из нижеперечисленного умеет летать?', 'Корова')") or die (mysql_error());   
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(3, 'Кто из нижеперечисленного умеет летать?', 'Крокодил')") or die (mysql_error());   
mysql_query("insert into vopros(id_voprosa, name_vopros, var_otveta) values(3, 'Кто из нижеперечисленного умеет летать?', 'Жираф')") or die (mysql_error());   
?>

Здесь вышла ошибка, Duplicate entry '1' for key 1 Это из-за дублирования id_voprosa?
Есть другой способ записи этих данных?

   
 
 автор: sim5   (17.06.2008 в 15:34)   письмо автору
 
   для: pautina   (17.06.2008 в 15:12)
 

Естественно, вам надо связать вопросы с вариантами ответа - родителя с потомками. Тогда все проблемы отпадут. Как вы это сделаете - одной таблицей или двумя, решать вам, я бы сделал двумя - id вопроса, это родитель для вариантов ответа другой таблицы, которые имеют свой id и id родителя, равный id вопроса. Но вам надо еще продумать, как у вас будет определяться правильный ответ из вариантов, от этого будет зависить решение уже остальной части задачи.
И встречный вопрос - у вас это, временное? Почему вы решили создавать таблицу/таблицы скриптом? Если это у вас постоянный ресурс вашего сайта, значит им надо будет как-то управлять - удаление вопросов, добавление новых и вариантов ответов на них, причем вариантов ответа не обязательно может быть 4 (база позволит гибко управлять этим), ну и т.д.. Если так, вы каждый раз заново будете создавать таблицу? Может быть в этом случае ее сразу приготовить, и иметь скрипт управления ею?

   
 
 автор: pautina   (18.06.2008 в 09:19)   письмо автору
 
   для: sim5   (17.06.2008 в 15:34)
 

Я создал 2 таблицы vopros и var_otveta, код такой

<?php
 $a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
 
mysql_query"CREATE DATABASE vopros" ); 
 
mysql_select_db"vopros");
 
mysql_query("CREATE TABLE vopros (  
                    id_voprosa INT NOT NULL,  
                    name_vopros TINYTEXT NOT NULL,  
                    PRIMARY KEY (id_voprosa)  
                    )"
); 
 
// Создаём таблицу вопросов                 
 
mysql_query("insert into vopros(id_voprosa, name_vopros) values(1, 'Какие из этих видов транспорта передвигаются по земле?')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros) values(2, 'Какой из этих предметов по геометрической форме представляет сферу?')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros) values(3, 'Кто из нижеперечисленного умеет летать?')") or die (mysql_error());   

// Создаём таблицу ответов
mysql_query("CREATE TABLE var_otveta (  
                    id_var_otveta INT NOT NULL,  
                    id_voprosa INT NOT NULL,  
                    var_otveta TINYTEXT NOT NULL,  
                    )"
); 
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(1, 1, 'Подводная лодка')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(2, 1, 'Поезд')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(3, 1, 'Самолёт')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(4, 1, 'Дерижабль')") or die (mysql_error());

mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(1, 2, 'Куб')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(2, 2, 'Пирамида')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(3, 2, 'Мяч')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(4, 2, 'Конус')") or die (mysql_error());

mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(1, 3, 'Птица')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(2, 3, 'Корова')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(3, 3, 'Крокодил')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_voprosa, var_otveta) values(4, 3, 'Жираф')") or die (mysql_error());

?>


Вы ни скажете как мне связать эти таблицы по полю id_voprosa 1 к 1

   
 
 автор: sim5   (18.06.2008 в 10:05)   письмо автору
 
   для: pautina   (18.06.2008 в 09:19)
 

Ну они у вас и связаны. При выводе вопроса выбираете из второй таблицы вопросы у которых... блин, смените у второй таблицы имя поля с `id_voprosa` на `id_parent`, или просто `parent`, ну легче все таки будет ориентироваться вам. И так, при выводе вопроса, получаете запросом из второй таблицы те вопросы, у которых `parent` равен `id_voprosa`. Это и будут варианты, их и выводите на страницу.
Всетаки так и не понятно мне, зачем вы создаете базу под вопросы и ответы? От куда вы сами вопросы берете? Как вы планируете определять верный вариант ответа?

   
 
 автор: pautina   (18.06.2008 в 10:46)   письмо автору
 
   для: sim5   (18.06.2008 в 10:05)
 

Я изменил в таблице ответов id_voprosa на id_parent. Вы знаете вышло сообщение Duplicate entry '1' for key 1, почему?
Условие для проверки правильности такое
$ans1 = $_POST["v1vo"] == 2 ? "Ответ правильный" : "Овет неверный";
переменную потом планирую заносить в таблицу БД, но до этого я пока ещё ни дощёл пока вот проблему с ошибкой хочу решить.
Код такой

<?php
 $a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
 
mysql_query"CREATE DATABASE vopros" ); 
 
mysql_select_db"vopros");
 
mysql_query("CREATE TABLE vopros (  
                    id_voprosa INT NOT NULL,  
                    name_vopros TINYTEXT NOT NULL,  
                    PRIMARY KEY (id_voprosa)  
                    )"
); 
 
// Создаём таблицу вопросов                 
 
mysql_query("insert into vopros(id_voprosa, name_vopros) values(1, 'Какие из этих видов транспорта передвигаются по земле?')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros) values(2, 'Какой из этих предметов по геометрической форме представляет сферу?')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros) values(3, 'Кто из нижеперечисленного умеет летать?')") or die (mysql_error());   


// Создаём таблицу ответов
mysql_query("CREATE TABLE var_otveta (  
                    id_var_otveta INT NOT NULL,  
                    id_parent INT NOT NULL,  
                    var_otveta TINYTEXT NOT NULL,  
                    )"
); 
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(1, 1, 'Подводная лодка')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(2, 1, 'Поезд')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(3, 1, 'Самолёт')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(4, 1, 'Дерижабль')") or die (mysql_error());

mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(1, 2, 'Куб')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(2, 2, 'Пирамида')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(3, 2, 'Мяч')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(4, 2, 'Конус')") or die (mysql_error());

mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(1, 3, 'Птица')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(2, 3, 'Корова')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(3, 3, 'Крокодил')") or die (mysql_error());
mysql_query("insert into var_otveta(id_var_otveta, id_parent, var_otveta) values(4, 3, 'Жираф')") or die (mysql_error());
 
?>

двойной вход '1'для клавиши ключа '1'. Как исправить?

   
 
 автор: pautina   (18.06.2008 в 12:54)   письмо автору
 
   для: pautina   (18.06.2008 в 10:46)
 

Очень жду Вашего совета? Вы знаете ну просто ума ни приложу почему выходит такая ошибка. Код вроде правильный, запись в таблицы должна осуществлятся, но не осуществляется, Почему?
Я использую top server может с ним как то связано.

   
 
 автор: mihdan   (18.06.2008 в 13:40)   письмо автору
 
   для: pautina   (18.06.2008 в 10:46)
 

У вас обычные дубликаты записей в таблице

   
 
 автор: pautina   (18.06.2008 в 13:57)   письмо автору
 
   для: mihdan   (18.06.2008 в 13:40)
 

Я немного изменил код

<?php
 $a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
 
mysql_query"CREATE DATABASE vopros" ); 
 
mysql_select_db"vopros");
 
mysql_query("CREATE TABLE vopros (  
                    id_voprosa INT NOT NULL, 
                    name_vopros TINYTEXT NOT NULL,  
                    PRIMARY KEY (id_voprosa)  
                    )"
); 
 
// Создаём таблицу вопросов                 
 
mysql_query("insert into vopros(id_voprosa, name_vopros) values(1, 'Какие из этих видов транспорта передвигаются по земле?')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros) values(2, 'Какой из этих предметов по геометрической форме представляет сферу?')") or die (mysql_error());
mysql_query("insert into vopros(id_voprosa, name_vopros) values(3, 'Кто из нижеперечисленного умеет летать?')") or die (mysql_error());   

// Создаём таблицу ответов
mysql_query("CREATE TABLE var_otveta (  
                    id_var_otveta INT NOT NULL AUTO_INCREMENT, 
                    id_parent INT NOT NULL,                     
                    var_otveta TINYTEXT NOT NULL,
                    PRIMARY KEY (id_var_otveta)                    
                    )"
); 
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Подводная лодка')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Поезд')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Самолёт')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(1, 'Дерижабль')") or die (mysql_error());

mysql_query("insert into var_otveta(id_parent, var_otveta) values(2, 'Куб')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(2, 'Пирамида')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(2, 'Мяч')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(2, 'Конус')") or die (mysql_error());

mysql_query("insert into var_otveta(id_parent, var_otveta) values(3, 'Птица')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(3, 'Корова')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(3, 'Крокодил')") or die (mysql_error());
mysql_query("insert into var_otveta(id_parent, var_otveta) values(3, 'Жираф')") or die (mysql_error());
 
?>

Выводится Duplicate entry '1' for key 1 (Двойной вход '1' для клавиши{ключа} 1)
Как исправить её

   
 
 автор: sim5   (18.06.2008 в 15:33)   письмо автору
 
   для: pautina   (18.06.2008 в 13:57)
 

Сколько можно дублировать свой код - его уже можно наизусть выучить.) Не знаю, что у вас за странный тест такой, которому потребовалось скриптом создание базы, но уж если хочется... У вас, что не хватает фантазии на имена? Ну как вы ориентируетесь в них, когда и имя базы, и ее таблица, а в добавок еще и поля таблицы, одинаковы? В общем писать можно покороче, если использовать многострочный оператор INSERT. Поля id записей будут с автоинкрементом, и их можно опустить в запросе:

<?
mysql_query
("CREATE DATABASE useropros") or die (mysql_error());
mysql_select_db("useropros"); 
mysql_query("CREATE TABLE vopros (   
                    id_voprosa INT NULL PRIMARY KEY AUTO_INCREMENT,   
                    name_vopros TINYTEXT NOT NULL
                    )"
) or die (mysql_error());
 
// Создаём таблицу вопросов                  
mysql_query("INSERT INTO vopros (name_vopros) VALUES 
('Какие из этих видов транспорта передвигаются по земле?'),
('Какой из этих предметов по геометрической форме представляет сферу?'), 
('Кто из нижеперечисленного умеет летать?')"
) or die (mysql_error());
// Создаём таблицу ответов 
mysql_query("CREATE TABLE answer (   
                    id_otveta INT NULL PRIMARY KEY AUTO_INCREMENT,   
                    id_parent INT NOT NULL,   
                    var_otveta TINYTEXT NOT NULL
                    )"
) or die (mysql_error());
mysql_query("INSERT INTO answer (id_parent, var_otveta) VALUES 
(1, 'Подводная лодка'), (1, 'Поезд'), (1, 'Самолёт'), (1, 'Дерижабль'),
(2, 'Куб'), (2, 'Пирамида'), (2, 'Мяч'), (2, 'Конус'),
(3, 'Птица'), (3, 'Корова'), (3, 'Крокодил'), (3, 'Жираф')"
) or die (mysql_error());
?>

Создать то создадите, но вот то как вы собираетесь проверять на правильность ответа, типа:
если $_POST['name'] == 2 то все ОК, это уже предполагает у вас наличие трудностей. Подумайте - каких?

   
 
 автор: pautina   (19.06.2008 в 09:18)   письмо автору
 
   для: sim5   (18.06.2008 в 15:33)
 

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

<?php 
//$ans1 = $_POST["v1vo"] == 2 ? "Ответ правильный" : "Овет неверный"; // правильный ли ответ
if ($ans1 $_POST["v1vo"] == 2
 { 
$ans1_variant='Ответ правильный'
    else { 
$ans1_variant='Ответ неправильный' };
$a=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_select_db("useropros");
mysql_query("CREATE TABLE prav_answer (    
                    id_prav_answer INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    variant_prav_answer TINYTEXT NOT NULL 
                    )"
); 
mysql_query("INSERT INTO prav_answer (variant_prav_answer) VALUES  
('
$ans1_variant')");

                     
$count =0;  // Счётчик правильных ответов, по умолчанию равен 0
if ($ans1 $_POST["v1vo"] == 2// Если ответ правильный счётчик увеличивается на 1 иначе равен 0
 
$count count+1;
  }
// echo $count; 
$a=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_select_db("useropros");
mysql_query("CREATE TABLE bal_za_otvet (    
                    id_bal_za_otvet INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    velichina_bala TINYTEXT NOT NULL 
                    )"
); 
mysql_query("INSERT INTO bal_za_otvet (velichina_bala) VALUES  
('
$count')");
?> 

Но на строку
$ans1 = $_POST["v1vo"] == 2
Выходит сообщение об ошибке.
Ни подскажете в чём тут дело.

   
 
 автор: sim5   (19.06.2008 в 12:08)   письмо автору
 
   для: pautina   (19.06.2008 в 09:18)
 

Даже и не знаю, что сказать вам. Если вы обдумаете как следует концепцию автомобиля, затем следуя этой концепции, будете создавать его, у вас получиться приличный лимузин. Если же вы сначала "склепаете" колесо, потом сотворите раму, почесав макушку "склеете" всетаки их вместе, и т.д., то у вас получится телега, да и то навряд-ли она у вас поедет. Если все отнести к вашему тесту, то незнание вами как сделать выборку из базы, это пол беды. Беда в другом.
1. База создана. И что? А если вам потребуются другие вопросы с ответами, вы будете редатировать свой скрипт, и создавать ее заново? Базу с таблицами нужно было создать с помощью РМА. Но прежде чем ее создавать, нужно до конца обдумать содержание их таблиц, которое как раз и зависит от "концепции автомобиля".
2. У вас должен быть скрипт не создания баз, а скрипт добавления в уже созданные таблицы созданной базы вопросов, ответов на них, а также признака верного ответа на вопрос. Этот же скрипт может служить и удалением вопросов из базы, а также связанных с ним вариантов ответов.
3. Выводить постоянно в одном и том же порядке варианты ответов, есть не совсем хорошо. Лучше перед выводом пермешивать их. В этом случае ранее приведенный способ (фиксированный в вашем понимании) опознавания верного ответа не годится. К тому же, это требует наличия разных переменных для каждого вопроса (имя элемента SELECT). Но если бы вы обдумали сразу этот вопрос, то можно было бы добавить в таблицу поле, которое бы содержало признак верного ответа для каждого вопроса.
4. У вас в таблице, ID вариантов ответа, это поле с автоинкрементом, значит это уникальный индекс и его можно использовать как источник для идентификации верного ответа.
5. Если у вас будет скрипт, с помощью которого можно будет добавлять/удалять в базу вопросы и ответы, то после записи в таблицу вопроса и ответов на них, можно будет запомнить ID записи верного ответа и вставить его в таблицу вопросов. В форме добавления/редактирования вопросов верный ответ может быть всегда первым полем, либо выбираться радиокнопками.
6. Если все будет сделано по такому примерно принципу, то можно будет выводить форму с вопросом и элементом SELECT, у которого будет постоянно одно и тоже имя, а изменяться будут только значения опшенов (ID записей) и их текст в зависимости от вопроса. Тогда при приеме нужно будет проверять значение одной и той же переменной.
7. Вот когда вы будете представлять себе как у вас все устроено и должно работать, тогда вам будет понятно, что и откуда брать для вывода. А как написать синтаксис его, так это можно и в мануал заглянуть или спросить на форуме. Так как у вас это будет работать?

   
 
 автор: pautina   (19.06.2008 в 12:36)   письмо автору
 
   для: sim5   (19.06.2008 в 12:08)
 

Полностью с Вами согласен. Именно к такому варианту теста нужно стремится. Пока я не могу реализовать всё то что указано выше. И мне нужен простой и рабочий вариант теста.
Вот что делать с условием проверки на правильность ответа непонятно

($ans1 = $_POST["v1vo"] == 2) 

   
 
 автор: sim5   (19.06.2008 в 12:55)   письмо автору
 
   для: pautina   (19.06.2008 в 12:36)
 

Опять 25, я вам про Фому, а вы про Ерему. Вы думаете, это ваша единственная проблема в вашем коде?
Последний преведенный вами код, будет при каждом запуске создавать таблицу - как вы думаете, разрешит MySQL сделать вам это?
У вас есть таблица с вопросами, стоит ли для идентификации верных ответов на них создавать новую таблицу?
В теле кода вы инициализируете значение счетчика: $count =0;, как вы думаете будет ли он считать? Есть механизм сессий, может быть стоит о нем подумать?
Все это выбросить, сесть и обдумать сам механизм вашего теста. Просто, это еще не значит "абы как". Если вы не научитесь ставить задачу, а потом искать пути ее решения, то вы никогда не сможете написать код даже для простой задачи.

   
 
 автор: pautina   (19.06.2008 в 13:12)   письмо автору
 
   для: sim5   (19.06.2008 в 12:55)
 

Да mysql не разрешает создавать новую БД, и таблицу
mysql_query("CREATE DATABASE useropros") or die (mysql_error()); 

Но если в этой строке убрать
or die (mysql_error());
то всё разрешается, хотя это и не совсем правильно.
У себя я сделал так
- создал отдельный файл base.php в нем такой код

<?php 
$a
=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_query("CREATE DATABASE useropros") or die (mysql_error()); 
mysql_select_db("useropros");  
mysql_query("CREATE TABLE vopros (    
                    id_voprosa INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    name_vopros TINYTEXT NOT NULL 
                    )"
) or die (mysql_error()); 
 
// Создаём таблицу вопросов                   
mysql_query("INSERT INTO vopros (name_vopros) VALUES  
('Какие из этих видов транспорта передвигаются по земле?'), 
('Какой из этих предметов по геометрической форме представляет сферу?'),  
('Кто из нижеперечисленного умеет летать?')"
) or die (mysql_error()); 
// Создаём таблицу ответов  
mysql_query("CREATE TABLE answer (    
                    id_otveta INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    id_parent INT NOT NULL,    
                    var_otveta TINYTEXT NOT NULL 
                    )"
) or die (mysql_error()); 
mysql_query("INSERT INTO answer (id_parent, var_otveta) VALUES  
(1, 'Подводная лодка'), (1, 'Поезд'), (1, 'Самолёт'), (1, 'Дерижабль'), 
(2, 'Куб'), (2, 'Пирамида'), (2, 'Мяч'), (2, 'Конус'), 
(3, 'Птица'), (3, 'Корова'), (3, 'Крокодил'), (3, 'Жираф')"
) or die (mysql_error()); 
?> 

Просто запустил его 1 раз и всё.

   
 
 автор: sim5   (19.06.2008 в 13:21)   письмо автору
 
   для: pautina   (19.06.2008 в 13:12)
 

>Да mysql не разрешает создавать новую БД,
>и таблицу если записать так mysql_query(...) or die (mysql_error());
>Но если в этой строке убрать or die (mysql_error());

Знаете, я даже отвечать на это не буду, потому, что у меня после этого шоковое состояние!!!
Но если вам ваша MySQL, с таким "новым подходом" к ней, разрешает это делать - то ваш код по бесконечному созданию одной и той же таблицы, а значит и работы вашего теста, должен работать. Просто напичкайте его собачками ( @ ), заблокируйте вывод всех предупреждений и ошибок, и можете считать, что вы все сделали, а тему закрыть.

   
 
 автор: pautina   (19.06.2008 в 13:28)   письмо автору
 
   для: sim5   (19.06.2008 в 13:21)
 

Прошу прошения.

   
 
 автор: sim5   (19.06.2008 в 13:38)   письмо автору
 
   для: pautina   (19.06.2008 в 13:28)
 

Прошение (челобитная), это к самодержцам, а я не из числа.;-)
Последнее, что я вам могу сказать:
Если вы автор вопросов и ответов, забудьте все то, что вы "наваяли" ранее. Обдумайте хорошо свой тест, а затем создайте два скрипта - один, это интерфейс по добавлению/редактированию вопросов и ответов, второй - вывод вопросов пользователю, получение ответов, их анализа и вывод результатов. Таблицы создайте через РМА, если через скрипт, то, только таблицы с полями, это может входить как операция в интерфейс управления вашими вопросами (первый скрипт). Но сначала все хорошо представить, как это...

   
 
 автор: pautina   (19.06.2008 в 14:09)   письмо автору
 
   для: sim5   (19.06.2008 в 13:38)
 

Вы знаете очень хотелось бы довести до до ума то что уже есть, (пусть даже в общем это выглядит и нивезде правильно) если разобратся с вопросом проверки правильности ответа, счётчиком, тем как вывести выбранный вариант ответа, ну и вывести всю эту информацию на последней странице было бы вообще очень хорошо.
Вот просто ниясно почему эта строка
($ans1 = $_POST["v1vo"] == 2) 
Вызывает ошибку, пишется мол неопределённый индекс.

   
 
 автор: sim5   (19.06.2008 в 14:24)   письмо автору
 
   для: pautina   (19.06.2008 в 14:09)
 

Значит переменной $_POST["v1vo"] вы не получаете. И пишите так:

if ($_POST["v1vo"] == 2) //действие...
//либо
$ans1 = $_POST["v1vo"];
//и далее
if ($ans1 == 2) //действие...

Если конечно считаете, что то, что вы делаете будет "до ума"...

   
 
 автор: pautina   (19.06.2008 в 14:37)   письмо автору
 
   для: sim5   (19.06.2008 в 14:24)
 

Спасибо изменил, там нужно было использовать не == а =, тогда ошибки нет,
Теперь у меня возник вопрос как записать вариант правильности ответа в таблицу вопросов.

if ($_POST["v1vo"] = 2) 
 { $ans1_variant="Ответ правильный"; } 
    else { $ans1_variant="Ответ неправильный"; };
$a=mysql_connect("localhost","root","");    
          if(!$a)    
        { echo "Не могу соединится с базой!<br>";    
          echo mysql_error();    
          exit;    
        }  
mysql_select_db("useropros");
mysql_query("INSERT INTO answer (variant_prav_answer) VALUES  
('$ans1_variant')"); 

в той таблице нет такого поля, мне сдесь нужно создать новый столбец, или если я создам этот столбец в другом файле base.php а значения там не буду в ставлять, а вставлю в этом участке кода, так можно.

   
 
 автор: sim5   (19.06.2008 в 14:55)   письмо автору
 
   для: pautina   (19.06.2008 в 14:37)
 

Во-первых:
$_POST["v1vo"] = 2 - будет означать, что полученной переменной "v1vo" вы присвоили значение 2 (если она только получена, в противном случае, вы создали такую с указанным значением). А чтобы узнать, равна ли эта переменная 2 или нет, то надо писать:
if ($_POST["v1vo"] == 2).
Не выдумывайте своих правил. Насчет остального, я вам уже высказал свое мнение, оно у меня не изменилось - пока вы сами не будете представлять всю картину себе, мне ее вы тем более объянить не сможете. Значит и я не могу вам сказать - что, куда и зачем.

   
 
 автор: pautina   (19.06.2008 в 16:26)   письмо автору
 
   для: sim5   (19.06.2008 в 14:55)
 

Сейчас мой тест представляет следующее.
В модуле 5 страниц (index.php, index2.php, index3.php, last.php, base.php)
Перед началам работы теста мы запускаем файл base.php (Запускаем его только 1 раз для создания нужных таблиц в БД)
В нём посредством php кода создается БД useropros, в ней создаются таблицы vopros - вопросов, answer - ответов, prav_answer - правильность ответа, bal_za_otvet - бал за ответ,
Таблицы вопросов и ответов создаются и заполняются записями только 1 раз, Таблицы же правильность ответа и бал за ответ заполняются значениями на каждой странице вопроса.
- правильность ответа либо ответ правильный, либо ответ неправильный (для проверки используется опр. участок кода укажу ниже)
- бал за ответ $count1, $count2, $count3 для каждого вопроса свой, при условии что вопрос правильный величина переменной =1, если вопрос не правильный величина переменной =0:
Сейчас я бы хотел пока сделать правильный вывод правильности ответов, Сейчас у меня все 3 ответа на последней стр. статистики неправильные даже если ответы были правильны.
Приведу Вам все участки кода.
base.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
<?php 
$a
=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_query("CREATE DATABASE useropros") or die (mysql_error()); 
mysql_select_db("useropros");  
mysql_query("CREATE TABLE vopros (    
                    id_voprosa INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    name_vopros TINYTEXT NOT NULL 
                    )"
) or die (mysql_error()); 
 
// Создаём таблицу вопросов                   
mysql_query("INSERT INTO vopros (name_vopros) VALUES  
('Какие из этих видов транспорта передвигаются по земле?'), 
('Какой из этих предметов по геометрической форме представляет сферу?'),  
('Кто из нижеперечисленного умеет летать?')"
) or die (mysql_error()); 
// Создаём таблицу ответов  
mysql_query("CREATE TABLE answer (    
                    id_otveta INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    id_parent INT NOT NULL,    
                    var_otveta TINYTEXT NOT NULL 
                    )"
) or die (mysql_error()); 
mysql_query("INSERT INTO answer (id_parent, var_otveta) VALUES  
(1, 'Подводная лодка'), (1, 'Поезд'), (1, 'Самолёт'), (1, 'Дерижабль'), 
(2, 'Куб'), (2, 'Пирамида'), (2, 'Мяч'), (2, 'Конус'), 
(3, 'Птица'), (3, 'Корова'), (3, 'Крокодил'), (3, 'Жираф')"
) or die (mysql_error()); 
// 
mysql_query("CREATE TABLE prav_answer (    
                    id_prav_answer INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    variant_prav_answer TINYTEXT NOT NULL 
                    )"
) or die (mysql_error()); 
//                    
mysql_query("CREATE TABLE bal_za_otvet (    
                    id_bal_za_otvet INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    velichina_bala TINYTEXT NOT NULL 
                    )"
) or die (mysql_error());                     
?> 

</body>
</html>

index.php

<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> -->

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<style type="text/css">
 BODY { overflow-x: hidden } /* Отмена горизонтальной полосы скролера (действует если нет doctype )*/
 #content {left:0px; top:0px; right:0px; width:100%; height:100px; position:absolute; background-color:#2afcb4;}
 #content-text { left:50px; right:5px; top:105px; width:95%; position:absolute; font-family:"Times New Roman"; font-size:17px; }
 
</style>
</head>

<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<div id="content">
 <img src="image/content.gif" width="1000" height="100" border="0">
</div>
<div id="content-text">
<br>

<!--
 БД useropros и таблицы вопросов vopros и ответов answer создаются в файле base.php и запускаются только 1 раз
-->

<form method="post" action="index2.php">

<b>Вопрос 
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$num_vopr1=mysql_query("select id_voprosa from vopros where id_voprosa=1");

//print_r(mysql_fetch_row($w));
//print_r(mysql_fetch_assoc($w)); 
//print_r(mysql_fetch_array($w));  
//print_r(mysql_result($w));
//print_r(mysql_fetch_object($w))

print_r(mysql_result($num_vopr1,0));
         
?></b><br>

<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr1=mysql_query("select name_vopros from vopros where id_voprosa=1");
print_r(mysql_result($vopr1,0));         
?>
<!--Какие из этих видов транспорта передвигаются по земле? --><br>
 
<table cellpadding="3" cellspacing="0" border="0">
<tr>
 <td><input type="radio" name="v1vo" value="1"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr1_varotv1=mysql_query("select var_otveta from answer where id_otveta=1");
print_r(mysql_result($vopr1_varotv1,0));         
?>
</td>
</tr>
<tr>
 <td><input type="radio" name="v1vo" value="2"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr1_varotv2=mysql_query("select var_otveta from answer where id_otveta=2");
print_r(mysql_result($vopr1_varotv2,0));         
?>
 </td>
</tr>
<tr>
 <td><input type="radio" name="v1vo" value="3"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr1_varotv3=mysql_query("select var_otveta from answer where id_otveta=3");
print_r(mysql_result($vopr1_varotv3,0));         
?>
 </td>
</tr>
<tr>
 <td><input type="radio" name="v1vo" value="4"></td>
 <td>
 <?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr1_varotv4=mysql_query("select var_otveta from answer where id_otveta=4");
print_r(mysql_result($vopr1_varotv4,0));         
?>
 </td>
</tr>
</table>
<input type="submit" value="Следующий вопрос">
</form>

<?php 

// $ans1 = $_POST["v1vo"] == 2 ? "Ответ правильный" : "Овет неверный"; // правильный ли ответ
if ($_POST["v1vo"] == 2
 { 
$ans1_variant="Ответ правильный"; } 
    else { 
$ans1_variant="Ответ неправильный"; };
$a=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_select_db("useropros");
/* mysql_query("CREATE TABLE prav_answer (    
                    id_prav_answer INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    variant_prav_answer TINYTEXT NOT NULL 
                    )");  */
mysql_query("INSERT INTO prav_answer (variant_prav_answer) VALUES  
('
$ans1_variant')"); 

$count1 0;  // Счётчик правильных ответов, по умолчанию равен 0
if ($_POST["v1vo"] == 2// Если ответ правильный счётчик увеличивается на 1 иначе равен 0
 
$count1 $count1 1;
  }
// echo $count; 
$a=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_select_db("useropros");
/* mysql_query("CREATE TABLE bal_za_otvet (    
                    id_bal_za_otvet INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    velichina_bala TINYTEXT NOT NULL 
                    )");  */
mysql_query("INSERT INTO bal_za_otvet (velichina_bala) VALUES  
('
$count1')"); 
?> 
 
</div>

</body>
</html>

index2.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<style type="text/css">
 BODY { overflow-x: hidden } /* Отмена горизонтальной полосы скролера (действует если нет doctype )*/
 #content {left:0px; top:0px; right:0px; width:100%; height:100px; position:absolute; background-color:#2afcb4;}
 #content-text { left:50px; right:5px; top:105px; width:95%; position:absolute; font-family:"Times New Roman"; font-size:17px; }
 
</style>
</head>

<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<div id="content">
 <img src="image/content.gif" width="1000" height="100" border="0">
</div>
<div id="content-text">
<br>
<form method="post" action="index3.php">

<b>Вопрос
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$num_vopr2=mysql_query("select id_voprosa from vopros where id_voprosa=2");
print_r(mysql_result($num_vopr2,0));
?>
</b><br>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr2=mysql_query("select name_vopros from vopros where id_voprosa=2");
print_r(mysql_result($vopr2,0));         
?>
<br>
<table cellpadding="3" cellspacing="0" border="0">
<tr>
 <td><input type="radio" name="v2vo" value="1"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr2_varotv1=mysql_query("select var_otveta from answer where id_otveta=5");
print_r(mysql_result($vopr2_varotv1,0));         
?>
 </td>
</tr>
<tr>
 <td><input type="radio" name="v2vo" value="2"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr2_varotv2=mysql_query("select var_otveta from answer where id_otveta=6");
print_r(mysql_result($vopr2_varotv2,0));         
?>
 </td>
</tr>
<tr>
 <td><input type="radio" name="v2vo" value="3"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr2_varotv3=mysql_query("select var_otveta from answer where id_otveta=7");
print_r(mysql_result($vopr2_varotv3,0));         
?>
 </td>
</tr>
<tr>
 <td><input type="radio" name="v2vo" value="4"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr2_varotv4=mysql_query("select var_otveta from answer where id_otveta=8");
print_r(mysql_result($vopr2_varotv4,0));         
?>
 </td>
</tr>
</table>
<input type="submit" value="Следующий вопрос">
</form>

<?php 
if ($_POST["v2vo"] == 3
 { 
$ans2_variant="Ответ правильный"; } 
    else { 
$ans2_variant="Ответ неправильный"; };
$a=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_select_db("useropros");
/* mysql_query("CREATE TABLE prav_answer (    
                    id_prav_answer INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    variant_prav_answer TINYTEXT NOT NULL 
                    )");  */
mysql_query("INSERT INTO prav_answer (variant_prav_answer) VALUES  
('
$ans2_variant')"); 

$count2 0;  // Счётчик правильных ответов, по умолчанию равен 0
if ($_POST["v2vo"] == 3// Если ответ правильный счётчик увеличивается на 1 иначе равен 0
 
$count2 $count2 1;
  }
// echo $count; 
$a=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_select_db("useropros");
/* mysql_query("CREATE TABLE bal_za_otvet (    
                    id_bal_za_otvet INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    velichina_bala TINYTEXT NOT NULL 
                    )");  */
mysql_query("INSERT INTO bal_za_otvet (velichina_bala) VALUES  
('
$count2')");
?> 

</div>

</body>
</html>

index3.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<style type="text/css">
 BODY { overflow-x: hidden } /* Отмена горизонтальной полосы скролера (действует если нет doctype )*/
 #content {left:0px; top:0px; right:0px; width:100%; height:100px; position:absolute; background-color:#2afcb4;}
 #content-text { left:50px; right:5px; top:105px; width:95%; position:absolute; font-family:"Times New Roman"; font-size:17px; }
 
</style>
</head>

<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<div id="content">
 <img src="image/content.gif" width="1000" height="100" border="0">
</div>
<div id="content-text">
<br>
<form method="post" action="last.php">

<b>Вопрос 
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$num_vopr3=mysql_query("select id_voprosa from vopros where id_voprosa=3");
print_r(mysql_result($num_vopr3,0));
?>
</b><br>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr3=mysql_query("select name_vopros from vopros where id_voprosa=3");
print_r(mysql_result($vopr3,0));         
?>
<br>
<table cellpadding="3" cellspacing="0" border="0">
<tr>
 <td><input type="radio" name="v3vo" value="1"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr3_varotv1=mysql_query("select var_otveta from answer where id_otveta=9");
print_r(mysql_result($vopr3_varotv1,0));         
?>
 </td>
</tr>
<tr>
 <td><input type="radio" name="v3vo" value="2"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr3_varotv2=mysql_query("select var_otveta from answer where id_otveta=10");
print_r(mysql_result($vopr3_varotv2,0));         
?>
 </td>
</tr>
<tr>
 <td><input type="radio" name="v3vo" value="3"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr3_varotv3=mysql_query("select var_otveta from answer where id_otveta=11");
print_r(mysql_result($vopr3_varotv3,0));         
?>
 </td>
</tr>
<tr>
 <td><input type="radio" name="v3vo" value="4"></td>
 <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr3_varotv4=mysql_query("select var_otveta from answer where id_otveta=12");
print_r(mysql_result($vopr3_varotv4,0));         
?>
 </td>
</tr>
</table>
<input type="submit" value="Следующий вопрос">
</form>

<?php 
if ($_POST["v3vo"] == 1
 { 
$ans3_variant="Ответ правильный"; } 
    else { 
$ans3_variant="Ответ неправильный"; };
$a=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_select_db("useropros");
/* mysql_query("CREATE TABLE prav_answer (    
                    id_prav_answer INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    variant_prav_answer TINYTEXT NOT NULL 
                    )");  */
mysql_query("INSERT INTO prav_answer (variant_prav_answer) VALUES  
('
$ans3_variant')"); 

$count3 0;  // Счётчик правильных ответов, по умолчанию равен 0
if ($_POST["v3vo"] == 1// Если ответ правильный счётчик увеличивается на 1 иначе равен 0
 
$count3 $count3 1;
  }
// echo $count; 
$a=mysql_connect("localhost","root","");    
          if(!
$a)    
        { echo 
"Не могу соединится с базой!<br>";    
          echo 
mysql_error();    
          exit;    
        }  
mysql_select_db("useropros");
/* mysql_query("CREATE TABLE bal_za_otvet (    
                    id_bal_za_otvet INT NULL PRIMARY KEY AUTO_INCREMENT,    
                    velichina_bala TINYTEXT NOT NULL 
                    )");  */
mysql_query("INSERT INTO bal_za_otvet (velichina_bala) VALUES  
('
$count3')");
?> 

</div>

</body>
</html>

last.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<style type="text/css">
 BODY { overflow-x: hidden } /* Отмена горизонтальной полосы скролера (действует если нет doctype )*/
 #content {left:0px; top:0px; right:0px; width:100%; height:100px; position:absolute; background-color:#2afcb4;}
 #content-text { left:50px; right:5px; top:105px; width:95%; position:absolute; font-family:"Times New Roman"; font-size:17px; }
 
</style>
</head>

<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<div id="content">
 <img src="image/content.gif" width="1000" height="100" border="0">
</div>
<div id="content-text">
<br>
Вы набрали n балов из возможных m<br>
Ваша оценка l<br>
Посмотрите на статистику ответов теста.
<table border="0" cellpadding="3" cellspacing="0" width="80%">
 <tr>
  <td>Номер вопроса</td>
  <td>Название вопроса</td>
  <td>Ваш вариант ответа</td>
  <td>Правильность ответа</td>
  <td>Бал за ответ</td>
  <td>Сумма балов</td>
 </tr>
 
 <tr>
  <td>1</td>
  <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr1=mysql_query("select name_vopros from vopros where id_voprosa=1");
print_r(mysql_result($vopr1,0));         
?>
  </td>
  <td>Ваш вариант ответа</td>
  <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$prav_otveta1=mysql_query("select variant_prav_answer from prav_answer where id_prav_answer=1");
print_r(mysql_result($prav_otveta1,0)); 
?> 
  </td>
  <td>Бал за ответ</td>
  <td rowspan="4">Сумма балов</td>
 </tr>
 
 <tr>
  <td>2</td>
  <td>
  <?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr2=mysql_query("select name_vopros from vopros where id_voprosa=2");
print_r(mysql_result($vopr2,0));         
?>
  </td>
  <td>Ваш вариант ответа</td>
  <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$prav_otveta2=mysql_query("select variant_prav_answer from prav_answer where id_prav_answer=2");
print_r(mysql_result($prav_otveta2,0)); 
?> 
  </td>
  <td>Бал за ответ</td>
  
 </tr>
 
 <tr>
  <td>3</td>
  <td>
  <?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$vopr3=mysql_query("select name_vopros from vopros where id_voprosa=3");
print_r(mysql_result($vopr3,0));         
?>
  </td>
  <td>Ваш вариант ответа</td>
  <td>
<?php
$a
=mysql_connect("localhost","root","");   
          if(!
$a)   
        { echo 
"Не могу соединится с базой!<br>";   
          echo 
mysql_error();   
          exit;   
        } 
mysql_select_db"useropros");
$prav_otveta3=mysql_query("select variant_prav_answer from prav_answer where id_prav_answer=3");
print_r(mysql_result($prav_otveta3,0)); 
?> 
  </td>
  <td>Бал за ответ</td>
  
 </tr>
</table>

</div>

</body>
</html>

Пока на странице last.php я хочу добится правильного вывода правильности ответов. Что посоветуете?

   
 
 автор: sim5   (20.06.2008 в 08:55)   письмо автору
 
   для: pautina   (19.06.2008 в 16:26)
 

Впредь - такие большие участки кода, лучше прикреплять, а не выставлять на страницу.
Хорошо, я сделаю изменения и выставлю, но чуть позже, пока я занят.

   
 
 автор: pautina   (20.06.2008 в 09:01)   письмо автору
 
   для: sim5   (20.06.2008 в 08:55)
 

Большое спасибо, буду ждать.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования