Merhaba arkadaşlar,
veritabanindan rastgele veri çekiyorum fakat bazen kullanici ayni veriyi 2 defa görüyor bunun olmaması için napabilirim?
Quiz yaparken takıldığım yer
7
●390
- 15-09-2012, 02:25:17Kimlik doğrulama veya yönetimden onay bekliyor.sql den çekerken sorgunu group by id veya SELECT DISTINCT vb şeklinde kullanırsan aynı veri iki kere gelmez.ThirtySeven adlı üyeden alıntı: mesajı görüntüle
- 15-09-2012, 15:32:23vallahi hocam kafam durdu şuan bir bakabilir misiniz kodlara?
$soru = mysql_real_escape_string($_GET['soru']); if($soru > 9){ $d_sayi = mysql_fetch_array(mysql_query("select dogru_cevap from kullanicilar where facebook_id = '".$user_profile['id']."'")); if($d_sayi["dogru_cevap"] > 5){ echo 'Tebrikler ! Elementry Seviyesine Geçebilirsiniz'; }else{ echo 'Maalesef seviyeyi geçemediniz'; } }else{ echo '<div id = "sorular"> <div class = "sorular"> <p style="padding-bottom:20px; font-size:20px">Seviye: <b>Beginner</b></p>'; $i = $soru+1; $select = mysql_fetch_array(mysql_query("select * from sorular where seviye = 1 group by id order by rand() limit 1")); if(isset($_POST['cevapla'])){ $soru_id = mysql_real_escape_string($_POST['soru_id']); $secenek = mysql_real_escape_string($_POST['secenek']); if(!$secenek){ uyari('Lütfen bir seçenek seçiniz!'); }else{ $dogru_cevap = mysql_fetch_array(mysql_query("select secenek_id from dogru_cevap where soru_id = '$soru_id'")); if($secenek == $dogru_cevap['secenek_id']){ $update = mysql_query("update kullanicilar set dogru_cevap = dogru_cevap + 1 where facebook_id = '".$user_profile['id']."'"); if($update){ uyari('Cevap Doğru !'); } }else{ uyari('Cevap Yanlış !'); } } } echo'<p style="padding-bottom:20px; font-size:20px">Soru: '.$i.'/<b>10</b></p> <form action = "'.BASE_URL.'index.php?pages=test&p=beginner&soru='.$i.'" method = "post"> <div class = "soru">'.$select["soru_metni"].'</div> <input type="hidden" name="soru_id" value="'.$select['id'].'" />'; $secenek = mysql_query("select id,secenek from secenekler where soru_id = '".$select['id']."'"); while($row = mysql_fetch_array($secenek)){ echo '<div class="secenek"><input type="radio" id="sec" name="secenek" value = "'.$row['id'].'" /> '.$row['secenek'].'</div>'; } echo'<div class = "submit"><input type="submit" name="cevapla" class="cevapla" value = "Cevapla"/></div> </form>'; } - 16-09-2012, 00:48:04Arkadaşım sen başta yanlış anlatmışsın sorununu. Çözümü gayet kolay. Şimdi sorduğun soruları sessionda vs. tutup ona göre veritabanından çekeceksin. Misal ilk soru sorulduktan sonra :
$_SESSION['sorular'][] = $soru['id'];//vt den gelen soru idi
gibi tutacaksın. Daha sonraki sayfada o tuttuğun idler olmayan soruları çekeceksin:
select * from sorular where seviye = 1 and id not in(1,2,3) group by id order by rand() limit 1
gibi. Burada 1,2,3 yerine sesionda tuttuğun idleri ekleyeceksin.