• 13-05-2013, 15:01:54
    #1
    İyi günler arkadaşlar,

    Daha önceden kullanıcı adı alınmışsa tekrar alınmamasını istiyorum sabahtan beri uğraşıyorum ancak her defasında aynı hatayı alıyorum: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\uyekayit.php on line 28

    (localde çalışıyorum)

    PHP kısmı ise bu:

    <?php
    
    $ad = $_POST['ad'];
    $kullaniciadi = $_POST['kullaniciadi'];
    $sifre = $_POST['sifre'];
    $sifre2 = $_POST['sifre2'];
    $posta = $_POST['posta'];
    
    if(empty($ad)){
    echo("<center><b>Adınızı Yazmadınız</b></center>");
    }elseif(empty($kullaniciadi)){
    echo("<center><b>Kullanıcı Adınızı Yazmadınız.</b></center>");
    }elseif(empty($sifre)){
    echo("<center><b>Şifrenizi Yazmadınız</b></center>");
    }elseif(empty($posta)){
    echo("<center><b>E-Postanızı Yazmadınız</b></center>");
    }
    else{
    
         if(filter_var($posta,FILTER_VALIDATE_EMAIL)==TRUE){
    if($_POST['sifre']==$_POST['sifre2']){
    if(strlen($sifre)>5){
    session_start();
    if( isset($_POST['kod']) ){
    if( strtoupper($_POST['kod']) == $_SESSION['dogrulamakodu'] ){
     $kontrol = mysql_query("SELECT kullaniciadi FROM uye WHERE kullaniciadi='$kullaniciadi'");
                             
                             if(mysql_num_rows($kontrol)==0){
    
    include("ayar.php");
    $sql = "insert into uye (ad, kullaniciadi, sifre, email, gorus)
    values ('$ad', '$kullaniciadi', '$sifre', '$posta', '$gorus')";
    $kayit = mysql_query($sql);
    
    }
    }
    } 
    }
    }
    }
    }
    
    if (isset ($kayit)){
    echo "Üye Kaydınız Yapılmıştır";
    }
    
    else {
    
    
    echo "Kayıt Başarısız Tekrar Deneyiniz";
    
    }
    
    ?>

    Hatam nerde acaba?
  • 13-05-2013, 15:08:27
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Alıntı
    $kontrol = mysql_query("SELECT kullaniciadi FROM ala WHERE kullaniciadi='$kullaniciadi'");
    değil

    Alıntı
    $kontrol = mysql_query("SELECT kullaniciadi FROM uye WHERE kullaniciadi='$kullaniciadi'");
    olacak
  • 13-05-2013, 15:15:56
    #3
    ploop adlı üyeden alıntı: mesajı görüntüle
    değil



    olacak
    Yok hocam yine de olmadı maalesef. Aynı hata devam ediyor.
  • 13-05-2013, 15:42:41
    #4
    mysql_num_rows fonksiyonunun başına @ işareti koyun.
  • 13-05-2013, 15:51:17
    #5
    msgr adlı üyeden alıntı: mesajı görüntüle
    mysql_num_rows fonksiyonunun başına @ işareti koyun.
    Bu sefer de kullanıcı adı olduğu halde yine de aynı kullanıcı adıyla üyelik alabiliyorum zaten @ hata ayıklamak için kullanılmıyor mu bir nevi hatayı gizlemek için
  • 13-05-2013, 16:09:10
    #6
    $kontrol = mysql_query("SELECT kullaniciadi FROM uye WHERE kullaniciadi='$kullaniciadi'");
    Bu satırın hemen üstüne şu kodu yazın.

    echo "SELECT kullaniciadi FROM uye WHERE kullaniciadi='$kullaniciadi'";exit;
    Daha sonra ekran çıktısını phpmyadminde sorgu kısmına yazıp, sorgunuzu çalıştırın. Dönen hatayı buraya yazın bakalım sorgunuzda ne hata varmış. Sorgu resource tipinde bir değer döndürmediği zaman bu hatayı verir. Yani kısacası sorgunuz hatalı
  • 13-05-2013, 16:24:17
    #7
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    $kontrol = mysql_query("SELECT kullaniciadi FROM uye WHERE kullaniciadi='$kullaniciadi'");
    Bu satırın hemen üstüne şu kodu yazın.

    echo "SELECT kullaniciadi FROM uye WHERE kullaniciadi='$kullaniciadi'";exit;
    Daha sonra ekran çıktısını phpmyadminde sorgu kısmına yazıp, sorgunuzu çalıştırın. Dönen hatayı buraya yazın bakalım sorgunuzda ne hata varmış. Sorgu resource tipinde bir değer döndürmediği zaman bu hatayı verir. Yani kısacası sorgunuz hatalı
    Hocam bu sorgu kısmını çözemedim şöyle bir şey elde ettim:

    SELECT `uye`.`kullaniciadi`
    FROM uye
    WHERE
    OR (`uye`.`kullaniciadi` SELECT kullaniciadi FROM uye WHERE kullaniciadi='11')
    ORDER BY `uye`.`kullaniciadi` ASC