• 16-09-2016, 11:53:03
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhabalar log yaptığım bir tablo var.

    Tabloda kullanıcı id, ip, log mesajı ve tarih kayıt altına alınıyor. Benim yapmak istediğim ise aynı ip kullanan kullanıcıları tespit etmek.

    Örneğin
    x kullanıcısı a ip si ile r sayfasını gezmiş
    y kullanıcısı b ip si ile t sayfasını gezmiş
    z kullanıcısı a ip si ile y sayfasını gezmiş.


    x ve z kullanıcıları aynı ip ile siteye bağlanmış bu durumda. Ben bunu sql sorgusu ile nasıl yapabilirim?

    Not: x kullanıcısının gezdiği tüm sayfalar kayıt altında olduğu için x kullanıcısına ait bir çok ip adresi var.
  • 16-09-2016, 14:01:51
    #2
    Anladığım şey doğru ise
    mysql_query("SELECT * FROM giris_log WHERE misafir_ip LIKE '%$gele_ip%' ORDER BY misafir_id ASC");
    Burda gelen $gele_ip senin post veya get olur vs vs arama yapılacak veri.

    Bu kod ile aynı ip ile giriş yapan kullanıcıları çekiyorsun. Diğer mysql işlemleri ile de devamını getirebilirsin
  • 16-09-2016, 15:13:22
    #3
    BerkPW adlı üyeden alıntı: mesajı görüntüle
    Anladığım şey doğru ise
    mysql_query("SELECT * FROM giris_log WHERE misafir_ip LIKE '%$gele_ip%' ORDER BY misafir_id ASC");
    Burda gelen $gele_ip senin post veya get olur vs vs arama yapılacak veri.

    Bu kod ile aynı ip ile giriş yapan kullanıcıları çekiyorsun. Diğer mysql işlemleri ile de devamını getirebilirsin
    Maalesef bu değil. Aynı ipden giriş yapan kullanıcıları bulmak istiyorum ben.
  • 16-09-2016, 15:44:47
    #4
    Üyeliği durduruldu
    Tablo Adı: giris_log
    ip colon ad: misafir_ip
    varsayılarak


    mysql_query("SELECT * FROM giris_log WHERE misafir_ip='$giris yapan kullanıcının ip adresi'");

    bu şekilde while ile dökeceksin.
  • 16-09-2016, 15:48:18
    #5
    Merhaba,

    Aşağıdaki kod bloğu işinizi görecektir.

    select * from tablo_adı where ip in (
    select ip from tablo_adı group by ip having count(*) > 1
    )
  • 16-09-2016, 15:49:17
    #6
    asimus adlı üyeden alıntı: mesajı görüntüle
    Merhabalar log yaptığım bir tablo var.

    Tabloda kullanıcı id, ip, log mesajı ve tarih kayıt altına alınıyor. Benim yapmak istediğim ise aynı ip kullanan kullanıcıları tespit etmek.

    Örneğin
    x kullanıcısı a ip si ile r sayfasını gezmiş
    y kullanıcısı b ip si ile t sayfasını gezmiş
    z kullanıcısı a ip si ile y sayfasını gezmiş.


    x ve z kullanıcıları aynı ip ile siteye bağlanmış bu durumda. Ben bunu sql sorgusu ile nasıl yapabilirim?

    Not: x kullanıcısının gezdiği tüm sayfalar kayıt altında olduğu için x kullanıcısına ait bir çok ip adresi var.
    hocam tablo yapının resmini ekle basit bi sql sorgusuyla halledelim
  • 16-09-2016, 18:04:10
    #7
    anilunal adlı üyeden alıntı: mesajı görüntüle
    hocam tablo yapının resmini ekle basit bi sql sorgusuyla halledelim
    Teşekkür ederim.

  • 16-09-2016, 19:43:56
    #8
    İstediğin şeyi tam olarak anladıysam şöyle;



    Yardımcı olabilmek için bir tablo oluşturdum. Ben adını log yaptım, satır adları aynı.




    Kodlar ise:

    $birden_fazla_olan_ipler = array();
    // aynı ipden birden fazlaysa listele
    $a = $pdo->query("SELECT ip, COUNT(ip) FROM log GROUP BY ip HAVING COUNT(ip)>1")->fetchAll(PDO::FETCH_ASSOC);
    foreach($a as $item){
        $birden_fazla_olan_ipler[] = $item['ip'];
    }
    
    for($i=0,$s=count($birden_fazla_olan_ipler);$i<$s;$i++){
        $as = $pdo->query("SELECT * FROM log WHERE ip = '".$birden_fazla_olan_ipler[$i]."'")->fetchAll(PDO::FETCH_ASSOC);
        if($as){
            echo '<strong>'.$birden_fazla_olan_ipler[$i].' ip adresinde bulunan kullanıcılar:'.'</strong>';
            echo '<br>';
            foreach($as as $item){
                echo $item['uye'].' => '.$item['aciklama'].'<br>';
            }
            echo '<hr>';
        }
    }
  • 16-09-2016, 20:20:19
    #9
    anilunal adlı üyeden alıntı: mesajı görüntüle
    hocam tablo yapının resmini ekle basit bi sql sorgusuyla halledelim
    grafikcoder adlı üyeden alıntı: mesajı görüntüle
    İstediğin şeyi tam olarak anladıysam şöyle;



    Yardımcı olabilmek için bir tablo oluşturdum. Ben adını log yaptım, satır adları aynı.




    Kodlar ise:

    $birden_fazla_olan_ipler = array();
    // aynı ipden birden fazlaysa listele
    $a = $pdo->query("SELECT ip, COUNT(ip) FROM log GROUP BY ip HAVING COUNT(ip)>1")->fetchAll(PDO::FETCH_ASSOC);
    foreach($a as $item){
        $birden_fazla_olan_ipler[] = $item['ip'];
    }
    
    for($i=0,$s=count($birden_fazla_olan_ipler);$i<$s;$i++){
        $as = $pdo->query("SELECT * FROM log WHERE ip = '".$birden_fazla_olan_ipler[$i]."'")->fetchAll(PDO::FETCH_ASSOC);
        if($as){
            echo '<strong>'.$birden_fazla_olan_ipler[$i].' ip adresinde bulunan kullanıcılar:'.'</strong>';
            echo '<br>';
            foreach($as as $item){
                echo $item['uye'].' => '.$item['aciklama'].'<br>';
            }
            echo '<hr>';
        }
    }
    Çok teşekkür ederim