Autor | Zpráva | ||
---|---|---|---|
SwimX Profil |
#1 · Zasláno: 3. 6. 2010, 20:33:33
na dotaz
SELECT q.otazka, q.id_otazka, r.odpoved, r.id_odpoved FROM odpovedi r JOIN otazky q ON q.id_otazka = r.id_otazka WHERE q.id_test = $id ORDER BY q.id_otazka, RAND() LIMIT 10 se mi vrátí Array ( [otazka] => O jakou rovnici se jedná? [id_otazka] => 15 [odpoved] => logaritmickou [id_odpoved] => 95 ) Array ( [otazka] => O jakou rovnici se jedná? [id_otazka] => 15 [odpoved] => lineární [id_odpoved] => 96 ) Array ( [otazka] => O jakou rovnici se jedná? [id_otazka] => 15 [odpoved] => exponenciální [id_odpoved] => 94 ) Array ( [otazka] => Jakou barvu má tendle obdélník? [id_otazka] => 17 [odpoved] => hnědou [id_odpoved] => 69 ) Array ( [otazka] => Jakou barvu má tendle obdélník? [id_otazka] => 17 [odpoved] => černou [id_odpoved] => 67 ) Array ( [otazka] => Jakou barvu má tendle obdélník? [id_otazka] => 17 [odpoved] => fialovou [id_odpoved] => 68 ) Array ( [otazka] => Tvé jméno? [id_otazka] => 18 [odpoved] => kája [id_odpoved] => 83 ) Array ( [otazka] => Tvé jméno? [id_otazka] => 18 [odpoved] => mája [id_odpoved] => 82 ) Array ( [otazka] => Tvé jméno? [id_otazka] => 18 [odpoved] => jája [id_odpoved] => 84 ) odpovedi se přehazují díky RAND() ale nejde mi zpřeházet otázky, ale tak, aby stejné otázky zůstaly u sebe. Nevíte jak na to? |
||
__construct Profil |
#2 · Zasláno: 3. 6. 2010, 21:02:10 · Upravil/a: __construct
Zlúč si polia s rovnakými otázkami a zamiešaj ich potom cez shuffle
Osobne odporúčam nepoužívať v dotazoch na MySQL databáze vstavanú funkciu RAND() pretože je to pre tieto DB náročná operácia (MySQL vykoná funkciu na každý jeden riadok v tabuľke pred tým ako ich zoradí a nakoniec Ti vráti iba 10 riadkov - pri veľkých DB je to dosť náročné) Pokiaľ chceš vytiahnuť náhodné otázky najprv by som si zistil koľko je v DB riadkov a potom napr. cez mt_rand() vyberal náhodné čísla |
||
SwimX Profil |
#3 · Zasláno: 3. 6. 2010, 21:21:17
__construct:
ano shuffle mě napadla použít, ale mám radši když se o většinu věcí stará DB. Ale dobrá, udělám to tak. Díky |
||
SwimX Profil |
#4 · Zasláno: 3. 6. 2010, 23:34:57
Heh, shuffle je pěkné záludná funkce, která mění také klíče zamíchaného pole. Takže pokud někdo chce zamíchat pole, kde klíčem je id otázky, bude muset použít funkci shuffle_assoc
|
||
Časová prodleva: 14 let
|
0