• 06-01-2013, 20:10:45
    #1
    Merhaba

    Elimde internetten bulduğum anket kodu var.
    mysql ile doğru çalıştığını düşünüyorum fakat şöyle bir hata alıyorum.


    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/canbilgi/public_html/1907basket.com/anket/annketoyla.php on line 16
    (while ile başlayan satır 16)

    @$oy = $_POST['anket'];
    	$ip = $_SERVER['REMOTE_ADDR'];
    	$sor=mysql_query("SELECT ip from anket");
    	while($cek=mysql_fetch_array($sor)){
    		$ipp = $cek['ip'];
    		}
    Teşekkürler.
  • 06-01-2013, 20:13:18
    #2
    değer dönmüyor diyor, üstündeki sorguyu da yaz
  • 06-01-2013, 20:21:33
    #3
    tüm kod böyledir:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <?php
    $baglanti = mysql_connect("localhost","canbilgi_proje","123456abc");
    $db=mysql_select_db("anket",$baglanti);
    
    	@$oy = $_POST['anket'];
    	$ip = $_SERVER['REMOTE_ADDR'];
    	$sor=mysql_query("SELECT ip from anket");
    	while($cek=mysql_fetch_array($sor)){
    		$ipp = $cek['ip'];
    		}
    		
    		if($oy==""){
    		echo"Lütfen Şıklardan Birini Seçiniz";
    		}
    		elseif($ip == @$ipp)
    		{
    			echo"Zaten Oy Kullanmışsınız.";	
    		}else{
    		$ekle = mysql_query("INSERT INTO anket(oy,ip) VALUES ('$oy','$ip')") or die("Ekleme Hatası");
    		echo"Oy Kullandığınız için Teşekkür ederiz<br>
    		<a href='annketsonuclar.php'>Sonucları Görmek İçin Tıklayınız...</a>";
    		}
    	
    	?>
    </body>
    </html>
    http://1907basket.com/anket/annket.php
  • 06-01-2013, 20:33:28
    #4
    daha önce oy kullanılmış mı diye soran sorgu hatalı.
    şöyle deneyin.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Untitled Document</title> 
    </head> 
    
    <body> 
    <?php 
    $baglanti = mysql_connect("localhost","canbilgi_proje","123456abc"); 
    $db=mysql_select_db("anket",$baglanti); 
    
        $oy = mysql_real_escape_string($_POST['anket']); 
        $ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']); 
        $sor=mysql_fetch_array(mysql_query("SELECT COUNT(ip) from anket WHERE ip = '{$ip}'")); 
        if($sor[0]>0){
                echo"Zaten Oy Kullanmışsınız.";     
    
    }elseif(empty($oy)){
            echo"Lütfen Şıklardan Birini Seçiniz"; 
    
    }else{
            $ekle = mysql_query("INSERT INTO anket(oy,ip) VALUES ('$oy','$ip')") or die("Ekleme Hatası"); 
            echo"Oy Kullandığınız için Teşekkür ederiz<br> 
            <a href='annketsonuclar.php'>Sonucları Görmek İçin Tıklayınız...</a>"; 
    }     
        ?> 
    </body> 
    </html>
  • 06-01-2013, 20:50:19
    #5
    bu seferde 15.satırda hata alıyorum :S

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 20:50:19 -->-> Daha önceki mesaj 20:36:51 --

    ip'yi tamamen silebiliriz.
  • 06-01-2013, 20:51:51
    #6
    ne hatası alıyorsun?
  • 06-01-2013, 20:57:22
    #7
    digiklan adlı üyeden alıntı: mesajı görüntüle
    ne hatası alıyorsun?

    hata ilk mesajdakiyle aynı.

    amacım:

    1 soru sormak:
    türkiyede hangi partiye oy verdiniz?
    radio olarak 4tane şık olacak.

    Anketi doldurduktan sonrada sonuç sayfası toplam oy veren kişi: 15 diye göstermek ve bunları mysql ile yapmak.
  • 06-01-2013, 20:59:23
    #8
    $oy=$_POST['anket'];
    $ip=$_SERVER['REMOTE_ADDR'];
    $sor=mysql_num_rows(mysql_query("SELECT ip from anket where ip like '%".$ip."%'"));

    if($oy==""){
    echo"Lütfen Şıklardan Birini Seçiniz";
    }
    elseif($sor>0)
    {
    echo"Zaten Oy Kullanmışsınız.";
    }else{

    yapan neyin kafasında o sorguyu yaptı bilmiyorum ama böyle bir deneyin