|
|
|
| Имеется код:
<form action='obrabotka.php' method='post' name=form1>
<input type="radio" name="otvet1" value=1>
<input type="radio" name="otvet1" value=2>
<input type="radio" name="otvet1" value=3>
<input type="radio" name="otvet1" value=4>
<input type="radio" name="otvet2" value=1>
<input type="radio" name="otvet2" value=2>
<input type="radio" name="otvet2" value=3>
<input type="radio" name="otvet2" value=4>
<INPUT TYPE='submit' value='Otoslat`' class='button'>
</form>
|
так же в БД есть 2 колонки в которых записано IDвопроса и номер правильного ответа (например 3)
как сравнить ответы с радио-кнопок, с теми что в базе? и подсчитать общие количество правильных (тех что совпадают)?
Зарание благодарю. | |
|
|
|
|
|
|
|
для: leon22
(07.07.2009 в 20:14)
| | Не получается в цикле вывести ответы, уже пол дня сижу за скриптом, все перепробовал
нужно для начала чтоб скрипт просто выводил: ID - напротив номер правильно ответа, и если ответ верный то Ок, если нет БЕД, а у меня какая-то лобуда получается.
do
{
if($otvet['nomer_otveta']==$a){$com="Ok";} else {$com="Bed";}
$a= $_REQUEST[otvet.$quests['id']];
/* echo "<FONT SiZE=4>","Radio: ",$a,"</FONT><BR>"; */
echo "Vopros nomer ".$a."".$otvet['id_test']." user";
do {
echo " prav".$otvet['nomer_otveta']."-".$com."<br>";
}
while ($otvet = mysql_fetch_array($res_otvet));
}
while ($quests = mysql_fetch_array($results));
|
| |
|
|
|
|
|
|
|
для: Leon22
(08.07.2009 в 15:44)
| | неплохо было бы привести дамп структуры и данных тех таблиц, которые задействованы в обработке.
Ну и операторы, формирующие запросы показать.
А сейчас, глядя на это
do {
if($otvet
кроме "переменная $otvet не определена" сказать ничего нельзя. | |
|
|
|
|
|
|
|
для: Trianon
(08.07.2009 в 16:23)
| | дамп базы:
--
-- Структура таблицы `otvet`
--
CREATE TABLE `otvet` (
`id_test` int(5) NOT NULL default '0',
`nomer_otveta` int(5) default NULL,
PRIMARY KEY (`id_test`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251;
--
-- Дамп данных таблицы `otvet`
--
INSERT INTO `otvet` VALUES (1, 1);
INSERT INTO `otvet` VALUES (2, 2);
INSERT INTO `otvet` VALUES (3, 1);
INSERT INTO `otvet` VALUES (4, 4);
|
весь код:
$mysql= mysql_connect($host,$user,$pass)
or die('Ошибка подключения к MySQL-серверу' . mysql_error());
mysql_select_db("test",$mysql);
$results = mysql_query("SELECT * FROM quest WHERE type='s1'",$mysql);
$quests = mysql_fetch_array($results);
/* echo "ID ".$quests['id']." user"; */
$res_otvet = mysql_query("SELECT * FROM otvet ",$mysql);
$otvet = mysql_fetch_array($res_otvet);
do
{
if($otvet['nomer_otveta']==$a){$com="Ok";} else {$com="Bed";}
$a= $_REQUEST[otvet.$quests['id']];
echo "Vopros nomer ".$a."".$otvet['id_test']." user";
do {
echo " prav".$otvet['nomer_otveta']."-".$com."<br>";
}
while ($otvet = mysql_fetch_array($res_otvet));
}
while ($quests = mysql_fetch_array($results));
|
| |
|
|
|
|
|
|
|
для: Leon22
(08.07.2009 в 16:34)
| | А таблица quest ? | |
|
|
|
|
|
|
|
для: Leon22
(08.07.2009 в 16:34)
| | имена полей в форме оставляют желать лучшего | |
|
|
|
|
|
|
|
для: Trianon
(08.07.2009 в 16:40)
| | как яхту назовешь так она и поплывет))
--
-- Структура таблицы `quest`
--
CREATE TABLE `quest` (
`id` int(2) NOT NULL auto_increment,
`type` varchar(5) default NULL,
`questions` varchar(255) default NULL,
`variant1` text,
`variant2` text NOT NULL,
`variant3` text NOT NULL,
`variant4` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;
--
|
| |
|
|
|
|
|
|
|
для: Leon22
(08.07.2009 в 16:34)
| |
<?
$mysql= mysql_connect($host,$user,$pass)
or die('Ошибка подключения к MySQL-серверу' . mysql_error());
$res_otvet = mysql_query("SELECT id_test, nomer_otveta FROM otvet ",$mysql)
or die('Ошибка получения ответов' . mysql_error());
for($list = array(); $row = mysql_fetch_row($res_otvet); $list['otvet'.$row[0]] = $row[1]) ;
foreach($_REQUEST as $key => $val)
if(isset($list[$key]))
echo "$key: " . ($list[$key] == $val ? 'Ok' : 'Bad') . "<br>";
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.07.2009 в 17:08)
| | Поправьте опечатку в форече, а то он еще пол дня просидит. | |
|
|
|
|
|
|
|
для: Николай2357
(08.07.2009 в 17:36)
| | спс больщущее! чтоб я без вас делал) опечатку я поправил) | |
|
|
|
|
|
|
|
для: Leon22
(08.07.2009 в 15:44)
| |
if($otvet['nomer_otveta']==$a){$com="Ok";} else {$com="Bed";}
$a= $_REQUEST[otvet.$quests['id']];
|
Почему сначала идет проверка на равенство $a, а затем присвоение $a реального значения? | |
|
|
|
|
|
|
|
для: GeorgeIV
(08.07.2009 в 16:54)
| | > $a= $_REQUEST[otvet.$quests['id']]; [/code]
>Почему сначала идет проверка на равенство $a, а затем присвоение $a реального значения?
поменял немного местами, все равно, скрипт показывает что правильные ответы - не правильные, и в конце запутывается:
Vopros nomer 1 user prav1-Bed
Vopros nomer 2 user prav2-Bed
Vopros nomer 3 user prav1-Bed
Vopros nomer 4 user prav4-Bed
Vopros nomer user prav-OkVopros nomer user prav-OkVopros nomer user prav-Ok
|
do
{
$a= $_REQUEST[otvet.$quests['id']];
/* echo "<FONT SiZE=4>","Radio: ",$a,"</FONT><BR>"; */
do {
echo "Vopros nomer ".$a."".$otvet['id_test']." user";
if($otvet['nomer_otveta']==$a){$com="Ok";} else {$com="Bed<br>";}
echo " prav".$otvet['nomer_otveta']."-".$com."";
}
|
| |
|
|
|