|
|
|
Yazan
|
Konu: veritabanından rasgele veri getirmek (Okunma Sayısı 101 defa)
|
hahaybune
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 8
|
merhaba arkadaşlar.. bir ödev için uğraşıyorum fakat bir sıkıntı ile karşılaştım.. Yapmak istediğim projede öğrenci testte hangi ünitelerden soru çıkabileceğini, sorunun zorluk derecesini ve testte kaç soru olacağını kendisi seçecek.. öğrencinin isteklerine göre soruları çağırırken herzaman aynı soruların değil rasgele soruların gelmesini istiyorum. mesela rasgele gelenlerden ilki 3. üniteye, ikincisi 5. üniteye ait gibi.. mysql_query("select * from sorular where zorluk='$zorluk' and unite_id='$unite[unite_id]' ORDER BY RAND()"); yukardaki kod ile zorluk derecesini ve sorunun ünitesini kontrol etmek istedim. Çalıştırdığımda ilk olarak zorluk derecesine ve üniteye göre soruları aldığını daha sonra rasgele seçim yaptığını gördüm. Yani eğer 1. üniteden zor derecede soru seçmişsem ve bu kriterde 2 soru varsa herzaman ilk iki soruya bunları getiriyor. Yenile dediğimde ikisi kendi arasında yerdeğiştiriyor. Yani ne denediysem testin ilk sorusu olarak mesela 1. üniteden değilde 3. üniteden bir soru getiremedim. Yardımlarınızı bekliyorum.. 
|
|
|
|
|
Logged
|
|
|
|
dias
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 3
|
Merhaba, Ne sormak istediğini tam anlamadım. Yazdıgın kodda kesin olarak bir uniteden almasını istemişssin soruları sonra niye diğer bir uniteden almadığını sormuşsun. Eğer uniteye bağlı kalmamasını istiyorsan, yane sırf senin seçtğin zorlukta ama o zorluk derecesinde rastgele seçmesini istiyorsan mysql_query("select * from sorular where zorluk='$zorluk' ORDER BY RAND()");
yazman yeterli. Saygılar
|
|
|
|
|
Logged
|
|
|
|
|
mahirix
|
mysql_query("select * from sorular where zorluk='$zorluk' ORDER BY RAND() limit 1");
Limit değişkeniylede istdiğin kadar veriyi yazdırırsın.
|
|
|
|
|
Logged
|
|
|
|
|
 |
|