сравняване на данни

krissko0o

Registered
опитвам се да направя онлайн тест с база данни , направил съм 3 таблици "users(където се записват имената на учениците и с кой въпрос са отговорили),otg(където са отговорите[veren,otg1-7]),vupros(където са въпросите) изкарването е добре всичко е наред, но се затруднявам след като се направи теста да сравнява дали на първи въпрос отговора на ученика и същия като верния отговор. Опитах какво ли не и не знам дали с value да ги сравня или с name на самият <input> ето го кода:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=cp1251" />
		<title>Тест – HTML</title>
	</head>
	<body bgcolor="#C6E2FF">
	<h1 align="center">Аз зная, че...</h1>
	<?php 
require "connect.php";
?>
	<form method="POST" action="">
	Име: <input type="text" name="name" />
    <?php 
	$select = mysql_query("SELECT * FROM  $dbname.vupros ORDER BY id")or die(mysql_error());//изкарва въпросите.
	$sellect = mysql_query("SELECT * FROM $dbname.otg ORDER BY id") or die(mysql_error());// изкарва отговорите.
$num = mysql_num_rows($select);
$numm = mysql_num_rows($sellect);
for ($i=0;$i<$num;$i++) {
	$name = mysql_result($select, $i, "vupros"); 
for ($i=0;$i<$numm;$i++) {
$id = mysql_result($sellect, $i, "idv");
$veren = mysql_result($sellect, $i, "veren"); 
$otg1 = mysql_result($sellect, $i, "otg1");
$otg2 = mysql_result($sellect, $i, "otg2"); 
$otg3 = mysql_result($sellect, $i, "otg3"); 
$otg4 = mysql_result($sellect, $i, "otg4"); 
$otg5 = mysql_result($sellect, $i, "otg5"); 
$otg6 = mysql_result($sellect, $i, "otg6"); 
$otg7 = mysql_result($sellect, $i, "otg7"); 
$answers = array($veren, $otg1, $otg2, $otg3, $otg4, $otg5, $otg6, $otg7);
$numbers = range(0, 7);
shuffle($numbers);// това съм го сложил за да разбърква отговорите при refresh на страницата
	echo '<table>'; 
	echo '<tr><td>'.$id.':<b>'.$name.'</b></td></tr>';
foreach ($numbers as $number) {
    if (array_key_exists($number, $answers)) {
        if (!empty($answers[$number])) {
            echo "<tr><td><input type='radio' name='$answers[$number]' value='$answers[$number]' />: $answers[$number]</td></tr> ";
        }
    }
}
echo "</table>";
}}
	?>	
	<br /><br />
	<input type="submit" name="submit" value="Провери" />
	</p>
	</form>
	<a href="http://glassbg.netau.net/admin">Редактирай теста!</a>
</body>
</html>



<?php
if($_POST['submit'])
{
echo $otg1;//а това дори не знам какво се опитах да направя :D
if($otg1 == $veren)
{
	$otg1 = "1";
}
else
{
	$otg1 = "0";
}
echo $otg1;
$insert = mysql_query("INSERT INTO $dbname.users(name, vupros1, vupros2) VALUES('$name', '$otg1', '$otg4')")or die(mysql_error()); 
echo 'адсф<a href="index.php">начало</a>'; 
mysql_close(); 
}
?>
ето и sql-a :
[sql]-- phpMyAdmin SQL Dump
-- version 3.5.5
-- http://www.phpmyadmin.net
--
-- Хост: sql4.freemysqlhosting.net
-- Време на генериране: 10 яну 2016 в 15:17
-- Версия на сървъра: 5.5.46-0ubuntu0.12.04.2
-- Версия на PHP: 5.3.28

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- БД: `sql4102163`
--

-- --------------------------------------------------------

--
-- Структура на таблица `otg`
--

CREATE TABLE IF NOT EXISTS `otg` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`idv` int(9) NOT NULL,
`veren` varchar(255) NOT NULL,
`otg1` varchar(255) NOT NULL,
`otg2` varchar(255) NOT NULL,
`otg3` varchar(255) NOT NULL,
`otg4` varchar(255) NOT NULL,
`otg5` varchar(255) NOT NULL,
`otg6` varchar(255) NOT NULL,
`otg7` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;

--
-- Ссхема на данните от таблица `otg`
--

INSERT INTO `otg` (`id`, `idv`, `veren`, `otg1`, `otg2`, `otg3`, `otg4`, `otg5`, `otg6`, `otg7`) VALUES
(1, 1, '"Йохан", "Ний", "Цветарка", "Прозорец", "Къщата", "Черна песен"', '"Юноша", "Септември", "Ний", "Спи градът", "Къщата", "Миг"', '"Юноша", "Зимни вечери", "Септември", "Маска", "Елате ни вижте", "Стон"', '"Цветарка", "Септември", "Самотен гроб в самотен кът", "Песента на човека", "Стихии", "Тиха победа"', '', '', '', ''),
(2, 3, '"Йохан", "Ний", "Цветарка"', '"Юноша", "Септември", "Ний"', '"Юноша", "Зимни вечери", "Септември"', '"Цветарка", "Септември", "Старият войн"', 'gfdkjg', '', '', ''),
(3, 4, '"Йохан", "Ний", "Цветарка"', '"Юноша", "Септември", "Ний"', '"Юноша", "Зимни вечери", "Септември"', '"Цветарка", "Септември", "Старият войн"', '', '', '', ''),
(4, 2, '"Септември"', '"Юноша"', '"Зимни вечери"', '"Цветарка"', '"Йохан"', '', '', '');

-- --------------------------------------------------------

--
-- Структура на таблица `users`
--

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`vupros1` int(9) NOT NULL,
`vupros2` int(9) NOT NULL,
`vupros3` int(9) NOT NULL,
`vupros4` int(9) NOT NULL,
`vupros5` int(9) NOT NULL,
`vupros6` int(9) NOT NULL,
`vupros7` int(9) NOT NULL,
`vupros8` int(9) NOT NULL,
`vupros9` int(9) NOT NULL,
`vupros10` int(9) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=8 ;

--
-- Ссхема на данните от таблица `users`
--

INSERT INTO `users` (`id`, `name`, `vupros1`, `vupros2`, `vupros3`, `vupros4`, `vupros5`, `vupros6`, `vupros7`, `vupros8`, `vupros9`, `vupros10`) VALUES
(1, 'asdf', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(2, 'asdf', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(3, 'Изберете само заглавията на творбите, написани от Христо Смирненски:', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(4, 'Изберете само заглавията на творбите, написани от Христо Смирненски:', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(5, 'Изберете само заглавията на творбите, написани от Христо Смирненски:', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(6, 'Изберете само заглавията на творбите, написани от Христо Смирненски:', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(7, 'Изберете само заглавията на творбите, написани от Христо Смирненски:', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

-- --------------------------------------------------------

--
-- Структура на таблица `vupros`
--

CREATE TABLE IF NOT EXISTS `vupros` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`vupros` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;

--
-- Ссхема на данните от таблица `vupros`
--

INSERT INTO `vupros` (`id`, `vupros`) VALUES
(1, 'Изберете само заглавията на творбите, написани от Христо Смирненски:'),
(3, 'Посочете жанра на избраните в първа задача творби.'),
(4, 'Свържете цитираните стихове със заглавие от изучавани литературни творби.'),
(2, 'Коя творба е на писателят Гео Милев?');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
[/sql]
 
Кода е прекалено много и явно на никой не му се занимава да го прглежда и тества. Но не виждам какво те мъчи. Проверяваш дали отговора който е дал юзъра == на верния отговор.
 
Прочети малко за нормализацията на БД, бих те посъветвал отговорите да са в отделна таблица.

Код:
if(in_array($veren,$answers)) {
    echo 'Верен отговор!';
}
else {
    echo 'Грешка...';
}
 

Back
Горе