• 17-03-2009, 05:53:41
    #1
    Merhaba arkadaşlar
    Bir kullanıcı giriş yaptığında mysql_num_rows ile mi kontrol etmeliyim yoksa farklı bir yöntemler mi?

    şu an kullandığım yöntem
        $gir_sor    = mysql_query("SELECT bayiid,kullanici_adi,sifre FROM bayi WHERE kullanici_adi='$kullanici' and sifre='$sifre'");
        if(@mysql_num_rows($gir_sor) > 0){
            $gir_yaz        = mysql_fetch_array($gir_sor);
            $bayi_id        = $gir_yaz['bayiid'];
            $bayi_kullanici    = $gir_yaz['kullanici_adi'];
            echo 'Hoşgeldiniz ' . $bayi_kullanici . '. Ana sayfaya yönlendiriliyorsunuz, lütfen bekleyiniz.';
            header("refresh: 3; url=index.php");
        }else{
            echo 'Kullanıcı adı veya şifre hatalı.';
        }
    yani mysql_num_rows tablodaki veri sayısı arttığında kasar mı
  • 17-03-2009, 08:48:51
    #2
    Üyeliği durduruldu
    kullanıcı tablonuz 10-100 gibi kayıt olacağı için bir sorun teşkil etmez. hatta 1000 kayıt bile olsa sorun teşkil etmez.

    ama sayı 100 000 gibi olursa sql deki count deyimi ile çekmeliisniz
  • 17-03-2009, 22:07:19
    #3
    Eposta Aktivasyonu Gerekmekte
    Kayıt sayısı mysql_num_rows() fonksiyonunu etkilemez. Toplam için FALSE değeri döndürdüğü için kullandığın yer gayet doğru. Ancak toplam sayı alıp kullanıcam dersen COUNT() kullanman faydalı olur, num_rows toplamı ara bellekte saklayacağından işlemin yavaşlar, yok illa da kullanacam dersen mysql_unbuffered_query() ile kullan.
  • 17-03-2009, 22:45:23
    #4
    arkadaşlar bu fonksiyonları kullanımına dair ufak bi örnek verebilir misiniz?
  • 17-03-2009, 23:04:15
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?
    ob_start( );
    session_start( );
    include( "ayarlar.php" ); 
    if ( $_POST['uye'] )
    {
        $_SESSION['rumuz'] = $_POST['rumuz'];
        $sifre = md5( $_POST['sifre'] );
        $uye_kontrol = mysql_query( "SELECT rumuz, sifre  FROM uyeler WHERE rumuz='{$_POST['rumuz']}' AND sifre='{$sifre}'" );
        $uye_mevcut = mysql_num_rows( $uye_kontrol );
        $uyeler = mysql_fetch_array( $uye_kontrol );
        if ( $_POST['rumuz'] == "" )
        {
            echo "<script language=\"javascript\">alert('Rumuz Girmelisiniz!...');</script>";
        }
        else if ( strlen( $_POST['sifre'] ) == "" )
        {
            echo "<script language=\"javascript\">alert('Şifre girmediniz');</script>";
        }
        else if ( empty( $uye_mevcut ) )
        {
            echo "<script language=\"javascript\">alert('Hatalı rumuz veya şifre girişi');</script>";
        }
        else
        {
            if ( !header( "Location:uye.php" ) )
            {
                exit( "Sayfa Yönendilirken sorun oluştu.." );
            }
        }
    }
    ?>
    <HTML><TITLE><<| xxxxxxx |>></TITLE>
    <META http-equiv=Content-Type content="text/html; charset=iso-8859-9">
    </HEAD>
    <BODY>
    <form name="formuye" method="post" action="">
    kullanıcıadı
    <input class="textbox2" size="15" name="rumuz" style="font-weight: bold; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" />
    Şifreniz
    <input class="textbox2" size="15" type="password"  name="sifre" style="font-weight: bold; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" id="sifre"/>
    <input name="uye" type="submit" class="button" id="uye" style="font-size: 10pt; background: #FF8000; ; float:right; color:#FFFFFF; lang="tr" value="Giris!" />
          </form>
    </BODY></HTML>
    buyur dostum.
  • 17-03-2009, 23:39:02
    #6
    mysql_num_rows orada sql üzerinde en ufak bir kasma yaratmaz.
    Zaten asıl sorgu SELECT sorgusu.
    Sen
    SELECT bayiid,kullanici_adi,sifre FROM bayi WHERE kullanici_adi='$kullanici' and sifre='$sifre'
    dediğinde databasedeki tüm kayıtlar içinde kullanıcı adı ve parola ile eşleşen satırları getir diyorsun. SQL un asıl yaptığı işlem budur. 1 milyon ya da 1000 kayıt içinden parola ve kullanıcı adı eşleşen satırları ayıklayıp getirmek.

    mysql_num_rows sql un select işleminden getirdiği satır sayısını sayar. Zaten o satırlar bulunduğu ve hazırlandığı için (zaten kullanıcılar unique olacağı için tek parola rumuz tek satır döndürür) satır sayısını istemenin sql üzerinden en ufak bir yükü olmaz...

    saygılar

    saygılar
  • 17-03-2009, 23:59:42
    #7
    Eposta Aktivasyonu Gerekmekte
    Kullanıcı girişini her seferinde bu şekilde kontrol etmen şart mı? Bunu anlamadım? Kullanıcı için oturum bilgisi oluşturup bunu gereken yerlerde kullansan...
    $gir_sor    = mysql_query("SELECT bayiid,kullanici_adi,sifre FROM bayi WHERE kullanici_adi='$kullanici' and sifre='$sifre'");
        if(@mysql_num_rows($gir_sor) > 0){
            $gir_yaz        = mysql_fetch_array($gir_sor);
    $_SESSION['bayi_id']  = $gir_yaz['bayiid'];
    $_SESSION['bayi_kullanici']   = $gir_yaz['kullanici_adi'];
            echo 'Hoşgeldiniz ' . $bayi_kullanici . '. Ana sayfaya yönlendiriliyorsunuz, lütfen bekleyiniz.';
            header("refresh: 3; url=index.php");
        }else{
            echo 'Kullanıcı adı veya şifre hatalı.';
        }
    mysql_num_rows sql un select işleminden getirdiği satır sayısını sayar. -> digiklan
    Haklı -> SELECT ve SHOW ile istediklerini sayar.
  • 18-03-2009, 01:47:50
    #8
    teşekkürler arkadaşlar
    +replendiniz