Autor Zpráva
rian_man
Profil
Zdravím ve spolek,
předem se chci omluvit, jestli to tu už někdo probíral, ale jsem v časovém presu na dokončení webových stránek a hodí se mi každý názor jak si s problémem poradit.
Jde o to: pomoci MySql A PHPmyAdmin jsem si vytvořil databázi otázek (atributy id,kategorie,otazka,a,b,c). kategorií mam celkem 10, otázek bude hodně přes 100 a možnost "a" je psána jako správná. Dále mám skript na vypsání zadaného počtu náhodných otázek z každé kategoie s tím, že možnosti a,b,c se zobrazují v náhodném pořadí.
zdrojový kod "test.php":
<?       
$spojeni=MySQL_Connect("localhost","e090110","heslo"); 
$databaze=MySQL_Select_DB("e090110",$spojeni);  
$sql = "SELECT * FROM test WHERE kategorie LIKE 'A' ORDER BY RAND () LIMIT 3";
$ans = mysql_query($sql) or die ("Query Sencond Error!");     
while($zaznam = mysql_fetch_array($ans)) {
$array = array($zaznam['a'], $zaznam['b'], $zaznam['c']);
shuffle($array);
$a=$array[0];
$b=$array [1];
$c=$array [2];
$otazka= $zaznam['otazka'];
$spravne= $zaznam['a'];
$cislo= 'answ'.$zaznam['id'];
?> 
 
<form name='test' action='vyhodnoceni.php' method='POST' onsubmit="oprava()">
<fieldset id="radia"><legend id="otazka"><b><?echo $otazka?></b></legend> 
     <input type="radio" name="<?echo $cislo?>" value="<?echo $a?>"><?echo $a?>      
      <input type="radio" name="<?echo $cislo?>" value="<?echo $b?>"><?echo $b?>
      <input type="radio" name="<?echo $cislo?>" value="<?echo $c?>"><?echo $c?>
       <input type="hidden" name="id" value="<?echo $spravne?>">
  </fieldset> 
<? } ?>

<input type="submit" value="Výsledek">
</form>

Problém ale nastává ve chvíli, kdy chci opravit vyplnění testu. Zkoušel jsem to pomocí funce "foreach":
foreach ($_POST as $odpoved) {     
     echo $odpoved."<br>"; 
       }
To mi vypíše jak správnou odpověd uloženou v "hidden" tak to, co zaškrtne uživatel. Myslel jsem udělat nějaký cyklus, který by přičítal správné odpovědi, ale nevím jak rozdělit proměnnou "odpoved" na 2 proměnné abych je mohl porovnávat zda se shodují.
Předem děkuji za jaký koliv návrh, jak si s tím poradit nebo co udělat jinak.
Alphard
Profil
Tak jestli nevadí správná odpověď uvedená ve zdrojáku, mělo by to být docela snadné.
Do value si dejte třeba tvar cisloOtazky_spravnaOdpoved a pak použijte explode().
Nebo můžete použít rovnou přístup přes pole name="pole[klic]" value="hodnota".

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: