Autor | Zpráva | ||
---|---|---|---|
lukasxxxk Profil * |
#1 · Zasláno: 5. 9. 2011, 17:20:17
Dobrý den,
Dělám menší dotazník v php, otázky jsou čtené z DB a každá má 3 varianty odpovědi (A,B,C), v DB je uložena i hodnota správné odpovědi. Potřebuji udělat aby po odeslání stránky s odpověďmi na otázky se řekněme do nějakého počítadla za každou zprávnou odpověď přičetl jeden bod. Toto by problém nebyl, kdyby se otázky negenerovali náhodně, každá otázka má své ID, takže se asi bude muset pracovat nějak s ním, to je mi jasné, ale dál nevím jak vyřešit tento problém. Nějaký návrh? |
||
okolojdouci Profil * |
#2 · Zasláno: 5. 9. 2011, 17:23:46
lukasxxxk:
„Toto by problém nebyl, kdyby se otázky negenerovali náhodně“ Problém je přesně v čem? Otázky se mají generovat náhodně a negenerují, nebo naopak? |
||
lukasxxxk Profil * |
#3 · Zasláno: 5. 9. 2011, 17:27:03
Mají se generovat náhodně a generují se náhodně, ale nevím jak přesně po odeslání data zpracovat, když třeba na prvním místě je pokaždé jiná otázka, takže i jiná odpověď....
|
||
okolojdouci Profil * |
#4 · Zasláno: 5. 9. 2011, 17:30:43
lukasxxxk:
„nevím jak přesně po odeslání data zpracovat, když třeba na prvním místě je pokaždé jiná otázka“ K identifikaci řádků v databázích se běžně používá sloupec s názvem ID a specificky nastaveným chováním (automaticky databází generované unikátní číslo) |
||
lukasxxxk Profil * |
#5 · Zasláno: 5. 9. 2011, 17:33:24
Jasný, to používám, s tím problém nemám, ale když je prostě na jedné stránce třeba 10 otázek na které návštěvník odpoví zaškrnutím odpovědi, tak nechápu jak to udělat aby to postupně porovnalo u všech otázek odpovědi a vypsalo to výsledný počet bodů...
|
||
okolojdouci Profil * |
#6 · Zasláno: 5. 9. 2011, 17:42:57
lukasxxxk:
OK, takže co neumíš? 1. vytvořit formulář 2. vytvořit formulář s polem prvků 3. použít ve formuláři input hidden 4. načíst hodnoty z formuláře 5. porovnat dvě čísla 6. porovnat neznámý počet dvojic čísel 7. sečíst počet případů, kdy se dvojice čísel rovnají |
||
lukasxxxk Profil * |
#7 · Zasláno: 5. 9. 2011, 17:54:03
No řekněme dotaz k bodu 3.
Když input hidden dám name="IDOTAZKY" value="<? echo <?echo $zaznam["id"];?>" , tak po odeslání formuláře v "IDOTAZKY" zůstan akorád hodnota id z poslední otázky ne? Takže mi není jasné jak nějak jednoduše přenést všechny id k porovnání..... Samozdřejmě že by to šlo udělat tako $1 = $_POST['idprvniotazky'] $2 = $_POST['iddruheotazky'] $3 = $_POST['idtretiotazky'] ..... a pak si postupně vytahat správné odpovědi a porovnat to, ale když budu mít těch otázek třeba 30 tak to bude hooodně dlouhý, určitě je nějaká jednodušší varianta ne? |
||
okolojdouci Profil * |
#8 · Zasláno: 5. 9. 2011, 18:13:54
lukasxxxk:
Vycházím z toho, že formulář vyrábíš v cyklu a odpovědi budeš vybírat pomocí <select>ů. Pojmenuj si ty selecty třeba <select name="odpoved1234">, kde to 1234 bude ID, tato ID si uvnitř toho cyklu přilepuj do nějaké pomocné proměnné, aby ti z toho vyšlo něco jako "1234,1235,1240" a to předej hiddenem v tomtéž formuláři. V té části, kde to chceš zpracovat, nejdřív rozsekej (explode) ten řetězec na jednotlivá ID a pak (foreach) načti hodnoty každého $_POST["odpoved1234"] - a máš z toho dvojice ID otázky a odpověď. Z toho udělej (pořád v tom foreachu) vždycky SELECT a když bude odpověď správná, přičti jedničku. |
||
lukasxxxk Profil * |
#9 · Zasláno: 5. 9. 2011, 19:01:34
Zkousím to nějak podle tohodle zrealizovat, ale nevim, zatím díky za rady ;)
|
||
Časová prodleva: 13 let
|
0