• 14-09-2012, 20:34:22
    #1
    Merhaba arkadaşlar,

    veritabanindan rastgele veri çekiyorum fakat bazen kullanici ayni veriyi 2 defa görüyor bunun olmaması için napabilirim?
  • 14-09-2012, 22:16:21
    #2
    döngü içinde iste şöyle yapabilirsiniz
    $kontrol[] = $gelenveri;
    if(in_array($gelenveri,$kontrol)){
    continue;
    }
  • 15-09-2012, 02:25:17
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    ThirtySeven adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar,

    veritabanindan rastgele veri çekiyorum fakat bazen kullanici ayni veriyi 2 defa görüyor bunun olmaması için napabilirim?
    sql den çekerken sorgunu group by id veya SELECT DISTINCT vb şeklinde kullanırsan aynı veri iki kere gelmez.
  • 15-09-2012, 14:38:22
    #4
    fakat şöyle bir durum var kullanıcı her sayfada bir soru görüyor ?

    Mesela birinci sayfadaki soruyu rastgele çekiyor, cevaplıyor. ikinci soruya geçtiğinde o sorunun gelmemesi lazim.
  • 15-09-2012, 14:52:02
    #5
    Hocam gelen sorunun id sini saklayıp bir sonraki sayfada gelen soru id si ile karşılaştırıp aynı ise farklı soru çekebilirsin.
  • 15-09-2012, 15:32:23
    #6
    vallahi 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>';
    }
  • 15-09-2012, 20:43:02
    #7
    Üyeliği durduruldu
    cookieye yazdırıp kaçıncı soruyu gördüğünü kullanıcının nkurabiyelerinden çekerek o verileri yazdırmamasını sağlayabilirsiniz.
  • 16-09-2012, 00:48:04
    #8
    Arkadaşı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.