|
|
|
| Здравствуйте Уважаемое сообщество. У меня есть следующий участок кода.
<!--<!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) | |
|
|
|
|
|
|
|
для: pautina
(16.06.2008 в 13:00)
| | Дерижабль :):):) | |
|
|
|
|
|
|
|
для: elenaki
(16.06.2008 в 13:01)
| | Как условие написать? | |
|
|
|
|
|
|
|
для: pautina
(16.06.2008 в 13:05)
| | А может лучше всё-таки применять radio, а не checkbox? | |
|
|
|
|
|
|
|
для: BinLaden
(16.06.2008 в 13:07)
| | А Вы ни скажете почему в создании теста лучше применять radio в отличие от checkbox? Извините уже ответили. | |
|
|
|
|
|
|
|
для: 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"] == 2 ? "Ответ правильный" : "Овет неверный";
?>
|
Чекбокс нельзя использовать, иначе возможен будет выбор нескольких вариантов. | |
|
|
|
|
|
|
|
для: 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"] == 2 ? "Ответ правильный" : "Овет неверный"; // Выводим сообщение правильный ли ответ
$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"] == 3 ? "Ответ правильный" : "Овет неверный"; // Выводим сообщение правильный ли ответ
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"] == 1 ? "Ответ правильный" : "Овет неверный"; // Выводим сообщение правильный ли ответ
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 бал, как вывести сдесь)
- Сумма баллов тоже вопрос. | |
|
|
|
|
|
|
|
для: pautina
(17.06.2008 в 12:54)
| | Даже, если это очередное "задание студенту", делать на каждый вопрос свою отдельную страницу, это не разумно, а массивы для чего? Если это как часть проекта, то тем более - храните свои вопросы в базе, и выдавайте вопросы с формой последовательно, один за другим, формируя одну и туже форму. | |
|
|
|
|
|
|
|
для: 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?
Есть другой способ записи этих данных? | |
|
|
|
|
|
|
|
для: pautina
(17.06.2008 в 15:12)
| | Естественно, вам надо связать вопросы с вариантами ответа - родителя с потомками. Тогда все проблемы отпадут. Как вы это сделаете - одной таблицей или двумя, решать вам, я бы сделал двумя - id вопроса, это родитель для вариантов ответа другой таблицы, которые имеют свой id и id родителя, равный id вопроса. Но вам надо еще продумать, как у вас будет определяться правильный ответ из вариантов, от этого будет зависить решение уже остальной части задачи.
И встречный вопрос - у вас это, временное? Почему вы решили создавать таблицу/таблицы скриптом? Если это у вас постоянный ресурс вашего сайта, значит им надо будет как-то управлять - удаление вопросов, добавление новых и вариантов ответов на них, причем вариантов ответа не обязательно может быть 4 (база позволит гибко управлять этим), ну и т.д.. Если так, вы каждый раз заново будете создавать таблицу? Может быть в этом случае ее сразу приготовить, и иметь скрипт управления ею? | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: pautina
(18.06.2008 в 09:19)
| | Ну они у вас и связаны. При выводе вопроса выбираете из второй таблицы вопросы у которых... блин, смените у второй таблицы имя поля с `id_voprosa` на `id_parent`, или просто `parent`, ну легче все таки будет ориентироваться вам. И так, при выводе вопроса, получаете запросом из второй таблицы те вопросы, у которых `parent` равен `id_voprosa`. Это и будут варианты, их и выводите на страницу.
Всетаки так и не понятно мне, зачем вы создаете базу под вопросы и ответы? От куда вы сами вопросы берете? Как вы планируете определять верный вариант ответа? | |
|
|
|
|
|
|
|
для: 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 в 10:46)
| | Очень жду Вашего совета? Вы знаете ну просто ума ни приложу почему выходит такая ошибка. Код вроде правильный, запись в таблицы должна осуществлятся, но не осуществляется, Почему?
Я использую top server может с ним как то связано. | |
|
|
|
|
|
|
|
для: pautina
(18.06.2008 в 10:46)
| | У вас обычные дубликаты записей в таблице | |
|
|
|
|
|
|
|
для: 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)
Как исправить её | |
|
|
|
|
|
|
|
для: 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 то все ОК, это уже предполагает у вас наличие трудностей. Подумайте - каких? | |
|
|
|
|
|
|
|
для: 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
| Выходит сообщение об ошибке.
Ни подскажете в чём тут дело. | |
|
|
|
|
|
|
|
для: pautina
(19.06.2008 в 09:18)
| | Даже и не знаю, что сказать вам. Если вы обдумаете как следует концепцию автомобиля, затем следуя этой концепции, будете создавать его, у вас получиться приличный лимузин. Если же вы сначала "склепаете" колесо, потом сотворите раму, почесав макушку "склеете" всетаки их вместе, и т.д., то у вас получится телега, да и то навряд-ли она у вас поедет. Если все отнести к вашему тесту, то незнание вами как сделать выборку из базы, это пол беды. Беда в другом.
1. База создана. И что? А если вам потребуются другие вопросы с ответами, вы будете редатировать свой скрипт, и создавать ее заново? Базу с таблицами нужно было создать с помощью РМА. Но прежде чем ее создавать, нужно до конца обдумать содержание их таблиц, которое как раз и зависит от "концепции автомобиля".
2. У вас должен быть скрипт не создания баз, а скрипт добавления в уже созданные таблицы созданной базы вопросов, ответов на них, а также признака верного ответа на вопрос. Этот же скрипт может служить и удалением вопросов из базы, а также связанных с ним вариантов ответов.
3. Выводить постоянно в одном и том же порядке варианты ответов, есть не совсем хорошо. Лучше перед выводом пермешивать их. В этом случае ранее приведенный способ (фиксированный в вашем понимании) опознавания верного ответа не годится. К тому же, это требует наличия разных переменных для каждого вопроса (имя элемента SELECT). Но если бы вы обдумали сразу этот вопрос, то можно было бы добавить в таблицу поле, которое бы содержало признак верного ответа для каждого вопроса.
4. У вас в таблице, ID вариантов ответа, это поле с автоинкрементом, значит это уникальный индекс и его можно использовать как источник для идентификации верного ответа.
5. Если у вас будет скрипт, с помощью которого можно будет добавлять/удалять в базу вопросы и ответы, то после записи в таблицу вопроса и ответов на них, можно будет запомнить ID записи верного ответа и вставить его в таблицу вопросов. В форме добавления/редактирования вопросов верный ответ может быть всегда первым полем, либо выбираться радиокнопками.
6. Если все будет сделано по такому примерно принципу, то можно будет выводить форму с вопросом и элементом SELECT, у которого будет постоянно одно и тоже имя, а изменяться будут только значения опшенов (ID записей) и их текст в зависимости от вопроса. Тогда при приеме нужно будет проверять значение одной и той же переменной.
7. Вот когда вы будете представлять себе как у вас все устроено и должно работать, тогда вам будет понятно, что и откуда брать для вывода. А как написать синтаксис его, так это можно и в мануал заглянуть или спросить на форуме. Так как у вас это будет работать? | |
|
|
|
|
|
|
|
для: sim5
(19.06.2008 в 12:08)
| | Полностью с Вами согласен. Именно к такому варианту теста нужно стремится. Пока я не могу реализовать всё то что указано выше. И мне нужен простой и рабочий вариант теста.
Вот что делать с условием проверки на правильность ответа непонятно
($ans1 = $_POST["v1vo"] == 2)
|
| |
|
|
|
|
|
|
|
для: pautina
(19.06.2008 в 12:36)
| | Опять 25, я вам про Фому, а вы про Ерему. Вы думаете, это ваша единственная проблема в вашем коде?
Последний преведенный вами код, будет при каждом запуске создавать таблицу - как вы думаете, разрешит MySQL сделать вам это?
У вас есть таблица с вопросами, стоит ли для идентификации верных ответов на них создавать новую таблицу?
В теле кода вы инициализируете значение счетчика: $count =0;, как вы думаете будет ли он считать? Есть механизм сессий, может быть стоит о нем подумать?
Все это выбросить, сесть и обдумать сам механизм вашего теста. Просто, это еще не значит "абы как". Если вы не научитесь ставить задачу, а потом искать пути ее решения, то вы никогда не сможете написать код даже для простой задачи. | |
|
|
|
|
|
|
|
для: sim5
(19.06.2008 в 12:55)
| | Да mysql не разрешает создавать новую БД, и таблицу
mysql_query("CREATE DATABASE useropros") 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 раз и всё. | |
|
|
|
|
|
|
|
для: pautina
(19.06.2008 в 13:12)
| | >Да mysql не разрешает создавать новую БД,
>и таблицу если записать так mysql_query(...) or die (mysql_error());
>Но если в этой строке убрать or die (mysql_error());
Знаете, я даже отвечать на это не буду, потому, что у меня после этого шоковое состояние!!!
Но если вам ваша MySQL, с таким "новым подходом" к ней, разрешает это делать - то ваш код по бесконечному созданию одной и той же таблицы, а значит и работы вашего теста, должен работать. Просто напичкайте его собачками ( @ ), заблокируйте вывод всех предупреждений и ошибок, и можете считать, что вы все сделали, а тему закрыть. | |
|
|
|
|
|
|
|
для: sim5
(19.06.2008 в 13:21)
| | Прошу прошения. | |
|
|
|
|
|
|
|
для: pautina
(19.06.2008 в 13:28)
| | Прошение (челобитная), это к самодержцам, а я не из числа.;-)
Последнее, что я вам могу сказать:
Если вы автор вопросов и ответов, забудьте все то, что вы "наваяли" ранее. Обдумайте хорошо свой тест, а затем создайте два скрипта - один, это интерфейс по добавлению/редактированию вопросов и ответов, второй - вывод вопросов пользователю, получение ответов, их анализа и вывод результатов. Таблицы создайте через РМА, если через скрипт, то, только таблицы с полями, это может входить как операция в интерфейс управления вашими вопросами (первый скрипт). Но сначала все хорошо представить, как это... | |
|
|
|
|
|
|
|
для: sim5
(19.06.2008 в 13:38)
| | Вы знаете очень хотелось бы довести до до ума то что уже есть, (пусть даже в общем это выглядит и нивезде правильно) если разобратся с вопросом проверки правильности ответа, счётчиком, тем как вывести выбранный вариант ответа, ну и вывести всю эту информацию на последней странице было бы вообще очень хорошо.
Вот просто ниясно почему эта строка
($ans1 = $_POST["v1vo"] == 2)
| Вызывает ошибку, пишется мол неопределённый индекс. | |
|
|
|
|
|
|
|
для: pautina
(19.06.2008 в 14:09)
| | Значит переменной $_POST["v1vo"] вы не получаете. И пишите так:
if ($_POST["v1vo"] == 2) //действие...
//либо
$ans1 = $_POST["v1vo"];
//и далее
if ($ans1 == 2) //действие...
|
Если конечно считаете, что то, что вы делаете будет "до ума"... | |
|
|
|
|
|
|
|
для: 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 а значения там не буду в ставлять, а вставлю в этом участке кода, так можно. | |
|
|
|
|
|
|
|
для: pautina
(19.06.2008 в 14:37)
| | Во-первых:
$_POST["v1vo"] = 2 - будет означать, что полученной переменной "v1vo" вы присвоили значение 2 (если она только получена, в противном случае, вы создали такую с указанным значением). А чтобы узнать, равна ли эта переменная 2 или нет, то надо писать:
if ($_POST["v1vo"] == 2).
Не выдумывайте своих правил. Насчет остального, я вам уже высказал свое мнение, оно у меня не изменилось - пока вы сами не будете представлять всю картину себе, мне ее вы тем более объянить не сможете. Значит и я не могу вам сказать - что, куда и зачем. | |
|
|
|
|
|
|
|
для: 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 я хочу добится правильного вывода правильности ответов. Что посоветуете? | |
|
|
|
|
|
|
|
для: pautina
(19.06.2008 в 16:26)
| | Впредь - такие большие участки кода, лучше прикреплять, а не выставлять на страницу.
Хорошо, я сделаю изменения и выставлю, но чуть позже, пока я занят. | |
|
|
|
|
|
|
|
для: sim5
(20.06.2008 в 08:55)
| | Большое спасибо, буду ждать. | |
|
|
|
|