| | |
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Autor | Správa |
---|
Registrovaný: 01.08.11 Prihlásený: 13.08.11 Príspevky: 2 Témy: 1 |
Dobrý deň,
bol by som veľmi rád ak by mi niekto pomohol s mojím problémom:
Chcem si vytvoriť quizový/testový systém .... z MySQL databázy sa vypíšu otázky na ktoré je potrebné odpovedať, potom ich server spracuje a výsledky zobrazí...
V DB mám vytvorené 4 tabuľky:
otazka - zadávam názov
1 - odpoveď č. 1
2 - odpoveď č. 2
spravna_odpoved - myslím že je jasné...
Výpis otázok z db mám riešený cez while:
Kód: while($hodnota = mysql_fetch_assoc($spojenie)) { echo "Znenie otázky"; echo $hodnota['otazka']; echo "<form method='post' action='".$_SERVER[PHP_SELF]."'>"; echo "<select name='moja_odpoved'>"; echo "<option value '".$hodnota['1']."'>".$hodnota['1']."</option>"; echo "<option value '".$hodnota['2']."'>".$hodnota['2']."</option>"; echo "</select>"; }
Výsledky odošlem pomocou POST a potom ich spracujem nasledovne: Kód: if(isset($_POST['submit'])) { $moja_odpoved = $_POST['moja_odpoved']; $vysledok = mysql_fetch_assoc($spojenie); $vysledok['spravna_odpoved']
if ($moja_odpoved == $vysledok['spravna_odpoved']) { echo "Odpovedal si správne"; } else { echo "Odpovedal si nesprávne"; }
}
Problém mám v tom že neviem spracovať viac ako jednú otázku (keď sa v DB nachádza jedná otázka tak všetko funguje, keď ich je viac tak to kolabuje). Pomohlo by asi to kebyže sa priradí ku každej otázke id ktoré sa dostane cez POST a spracuje... len neviem ako to spraviť...
Vopred veľká vďaka...
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 01.08.2011 20:11 | |
|
Vytvor si do tabuľky stĺpec s menom napríklad id a nastav ho ako primárny index a AUTO_INCREMENT. Toto vytvorí pre každú otázku, ktorú tam vložíš, index, pod ktorým otázka bude vystupovať. Toto dáš potom do atribútu name každého selectu a môžeš veselo vyhodnocovať.
A nikde tam nevidím cyklus. To sa potom nediv, že ti to nejde pre viac otázok.
|
|
Registrovaný: 01.08.11 Prihlásený: 13.08.11 Príspevky: 2 Témy: 1 | Napísal autor témy ElBondo: 01.08.2011 21:46 | |
|
ok vďaka... v DB som vytvoril stĺpec ako si písal, len ako dať do atributu name každého selectu a potom ako to POSTnuť?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 01.08.2011 22:36 | |
|
V prvom rade dám form pred cyklus, aby sa nevypisoval furt. (To som si až teraz všimol...)
Kód: echo "<form method='post' action='".$_SERVER[PHP_SELF]."'>"; while($hodnota = mysql_fetch_assoc($spojenie)) { echo "Znenie otázky"; echo $hodnota['otazka']; echo "<select name=".$hodnota["id"].">"; echo "<option value '".$hodnota['1']."'>".$hodnota['1']."</option>"; echo "<option value '".$hodnota['2']."'>".$hodnota['2']."</option>"; echo "</select>"; } echo "</form>" No a potom prehľadám $_POST asi takto: Kód: foreach($_POST as $key => $value) { $result = mysql_query("SELECT spravna_odpoved FROM tabulka WHERE id='$key'"); $row = mysql_fetch_assoc($result); if($row["spravna_ocpoved"] == $value) echo "Spravna odpoved"; else echo "Zla odpoved"; }
Snáď som to dobre napísal, nechce sa mi to skúšať...
|
|
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|