Pagina 1 din 2
Test online - afisare aleator
Scris: Dum Apr 11, 2010
de iuly
Salut,
de curand am inceput sa lucrez la un test online . Problema a aparut atunci cand am vrut sa afisez intreabrile si raspunsurile aleatoriu din baza de date . Are cineva vreo idee ?
Test online - afisare aleator
Scris: Lun Apr 12, 2010
de ripe12
Incearca cu functia "rand(min,max)". Unde min,max e intervalul din care iti va genera un numar intreg aleatoriu. Iar la max poti pune ca valoare folosind functia "mysql_num_rows($interogare)" unde $interogare=mysql_query("SELECT * FROM `tabelul_tau`"). Apoi cu "mysql_data_seek()" accesezi direct randul dorit...
Codul ar fi cam asa:
Cod: Selectaţi tot
$interogare=mysql_query("SELECT `intrebare` FROM `tabelul_tau`");
$nr_randuri=mysql_num_rows($interogare);
$nr_aleatoriu=rand(0,$nr_randuri);
if (mysql_data_seek($interogare, $nr_aleatoriu)) $rand = mysql_fetch_assoc($interogare);
Si asa $rand['intrebare'] contine o intrebare aleatorie... Sper ca nu am uitat vreo virgula sau vreo litera ca e destul de tarziu si sunt destul de obosit. Oricum vezi curs marplo:
https://marplo.net/php-mysql/mysql3.html
Spor.
Test online - afisare aleator
Scris: Lun Apr 12, 2010
de iuly
in primul rand mersi frumos ca mi-ai raspuns ,
acest lucru despre care vorbesti l-am facut si eu .. am pus totul intr-un for si imi afisez cate intrebari vreau eu.. problema intervine atunci cand vreau sa fac acelasi lucru cu raspunsurile , raspunsurile sunt introduse in baza de date avand un camp unde scrie "nu" si "da" pt raspuns corect sau incorect . In concluzie la o intrebare am 4 raspunsuri 3 cu nu si unu cu da , cum fac sa schimb locul raspunsurilor , dar sa il stiu care e corect pentru a verifica testul ?
tabelul intrebari contine : id , id_intrebare , intrebare
tabelul raspunsuri contine : id, id_intrebare , raspuns , raspuns_corect
am atasat ce am facut pana acum
http://www.filehost.ro/932533/test_rar" target="_blank
daca mai ajuta raman profund indatorat ca mi-am tocit creierii
http://img6.imageshack.us/img6/1443/bazadedate.png" target="_blank
Test online - afisare aleator
Scris: Lun Apr 12, 2010
de MarPlo
Incearca sa te folosesti (inspiri) din urmatorul exemplu. Ideea e sa ai raspunsurile de pe un rand intr-un array. Mai mult ..., studiaza exemplul:
Cod: Selectaţi tot
<?php
// Randul cu raspunsurile
$row = array('inc1'=>'x', 'inc2'=>'x2', 'cor'=>'corect', 'inc4'=>'x4');
$re = array_rand($row, count($row)); // Amesteca ordinea cheilor
// Afiseaza valorile, in ordinea amestecata
for($i=0; $i<count($re); $i++) {
$key = $re[$i];
echo $row[$key]. '<br />';
}
// Stii ca unde $key = 'cor', e raspunsul corect
?>
Test online - afisare aleator
Scris: Lun Apr 12, 2010
de iuly
ms .. pare buna ideea incerc si am sa revin cu rezultatele
Test online - afisare aleator
Scris: Mar Apr 13, 2010
de iuly
Nu merge .. nu le schimba
(
scuze pentru dublu post
Test online - afisare aleator
Scris: Mar Apr 13, 2010
de MarPlo
Eu am testat modeul de mai sus si le schimba ordinea. Mai mult nu stiu ce trebuie.
Test online - afisare aleator
Scris: Mar Apr 13, 2010
de iuly
exact modeulul de mai sus l-am incercat si eu si imi pastreaza aceeasi ordine
?
Test online - afisare aleator
Scris: Mar Apr 13, 2010
de MarPlo
Nu stiu ce sau cum e la tine ori de ce nu afiseaza aleator.
Scriptul, asa cum e, pe localhost mi-a dat acum urmatorul rezultat:
Prima data mi-a afisat :
x2
x4
x
corect
A doua oara, la refresh, mi-a afisat :
corect
x4
x2
x
Test online
Scris: Mar Apr 13, 2010
de iuly
http:// lvais.com/test2/test.php" target="_blank atunci nu mai inteleg nimic
)
Test online - afisare aleator
Scris: Mar Apr 13, 2010
de MarPlo
Asa este, se poate sa fie ceva diferit la versiunile PHP.
Pe localhost amesteca, dar cand am testat acum si pe acest server e la fel ca la tine. Dar daca in loc de "count($row)" pui 3, da 3 rezultate amestecate.
Incearca urmatorul exemplu, cu "shuffle()"
Cod: Selectaţi tot
<?php
// Randul cu raspunsurile
$row = array('inc1'=>'x', 'inc2'=>'x2', 'cor'=>'corect', 'inc4'=>'x4');
$corect = $row['cor']; // Retii valoarea corecta
shuffle($row); // Amesteca valorile
// Afiseaza valorile, in ordinea amestecata
for($i=0; $i<count($row); $i++) {
// Identifici cand a ajuns la raspunsul corect
if($corect==$row[$i]) {
echo "Raspunsul nr. $i e corect <br />";
}
echo $row[$i]. '<br />'; // Afiseaza valorile
}
?>
Test online - afisare aleator
Scris: Mie Apr 14, 2010
de iuly
MarPlo scrie:Asa este, se poate sa fie ceva diferit la versiunile PHP.
Pe localhost amesteca, dar cand am testat acum si pe acest server e la fel ca la tine. Dar daca in loc de "count($row)" pui 3, da 3 rezultate amestecate.
Incearca urmatorul exemplu, cu "shuffle()"
Cod: Selectaţi tot
<?php
// Randul cu raspunsurile
$row = array('inc1'=>'x', 'inc2'=>'x2', 'cor'=>'corect', 'inc4'=>'x4');
$corect = $row['cor']; // Retii valoarea corecta
shuffle($row); // Amesteca valorile
// Afiseaza valorile, in ordinea amestecata
for($i=0; $i<count($row); $i++) {
// Identifici cand a ajuns la raspunsul corect
if($corect==$row[$i]) {
echo "Raspunsul nr. $i e corect <br />";
}
echo $row[$i]. '<br />'; // Afiseaza valorile
}
?>
am aplicat scriptul mai sus mentionat si functioneaza perfect insa am intampinat o problema atunci cand incerc sa contorizez cumva raspunsurile , am incercat cu variabile da nu-mi ies . Am atasat documentul
http://www.filehost.ro/938143/test_online_php" target="_blank
Daca reusesc sa trec si de chestia asta.. postez scriptul in semn de recunostinta