• 08-01-2015, 14:54:50
    #1
    Selamlar,

    Kullanıcı profilinde 'çevrimiçi mi çevrimdışı mı?' sorgulamasını nasıl yapabilirim acaba? Mesela çevrimiçi olan üyeleri şu sorgulamayla listeletebiliyorum:

    $cevrimiciolanlar = mysql_query("SELECT * FROM users WHERE DATE_SUB(NOW(), INTERVAL 10 MINUTE) < last_login;");
    Peki kullanıcının profilinde (kullanici.php?id=$id) nasıl bi if değeriyle bu işi çözebilirim? True, false olarak denedim ama sonuç alamadım.

  • 08-01-2015, 15:09:32
    #2
    ylv
    Üyeliği durduruldu
    Vin adlı üyeden alıntı: mesajı görüntüle
    Selamlar,

    Kullanıcı profilinde 'çevrimiçi mi çevrimdışı mı?' sorgulamasını nasıl yapabilirim acaba? Mesela çevrimiçi olan üyeleri şu sorgulamayla listeletebiliyorum:

    $cevrimiciolanlar = mysql_query("SELECT * FROM users WHERE DATE_SUB(NOW(), INTERVAL 10 MINUTE) < last_login;");
    Peki kullanıcının profilinde (kullanici.php?id=$id) nasıl bi if değeriyle bu işi çözebilirim? True, false olarak denedim ama sonuç alamadım.

    yapmak istediğin bu sanırım.

    SELECT * FROM users WHERE DATE_SUB(NOW(), INTERVAL 10 MINUTE) < last_login;

    sorgusunda şarta user id eşleştirmesi ekliceksin.

    SELECT count(*) FROM users WHERE user_id={$id} and DATE_SUB(NOW(), INTERVAL 10 MINUTE) < last_login;
  • 08-01-2015, 15:14:47
    #3
    ylv adlı üyeden alıntı: mesajı görüntüle
    yapmak istediğin bu sanırım.

    SELECT * FROM users WHERE DATE_SUB(NOW(), INTERVAL 10 MINUTE) < last_login;

    sorgusunda şarta user id eşleştirmesi ekliceksin.

    SELECT count(*) FROM users WHERE user_id={$id} and DATE_SUB(NOW(), INTERVAL 10 MINUTE) < last_login;
    Hocam eşleştirmeyi eklemiştimde o değil, saf halini yazayım belki değiştirilmesi gerekir diye böyle yazdım.

    İstediğim: "10 dakikadan küçük ise; çevrimiçi, 10 dakikadan küçük değil ise; çevrimdışı."
  • 08-01-2015, 20:16:04
    #4
    last_login verisini çekip böyle birşey deniyorum ama henüz başarılı olamadım:

    <?
    if ($ksongiris < time() - 600) {  
    echo 'Çevrimiçi';
    }else { 
    echo 'Çevrimdışı';
    }
    ?>
    60 sn x 10 dk olarak çarpıp last_play'i son 600sn ile eksiltip karşılaştırdım ama sonuç sıfır
  • 08-01-2015, 21:10:52
    #5
    ylv
    Üyeliği durduruldu
    Vin adlı üyeden alıntı: mesajı görüntüle
    Hocam eşleştirmeyi eklemiştimde o değil, saf halini yazayım belki değiştirilmesi gerekir diye böyle yazdım.

    İstediğim: "10 dakikadan küçük ise; çevrimiçi, 10 dakikadan küçük değil ise; çevrimdışı."
    $cevrimiciolanlar = mysql_query("SELECT * FROM users WHERE DATE_SUB(NOW(), INTERVAL 10 MINUTE) < last_login;");

    last_login sütunu datetime veya timestamp ise

    SELECT * FROM users WHERE last_login > DATE_ADD(NOW(), INTERVAL -10 MINUTE)

    integer ise

    SELECT * FROM users WHERE last_login > [php]time()-10*60[php]

    olarak deneyin
  • 08-01-2015, 22:39:46
    #6
    ylv adlı üyeden alıntı: mesajı görüntüle
    $cevrimiciolanlar = mysql_query("SELECT * FROM users WHERE DATE_SUB(NOW(), INTERVAL 10 MINUTE) < last_login;");

    last_login sütunu datetime veya timestamp ise

    SELECT * FROM users WHERE last_login > DATE_ADD(NOW(), INTERVAL -10 MINUTE)

    integer ise

    SELECT * FROM users WHERE last_login > [php]time()-10*60[php]

    olarak deneyin
    Hocam iyide ben listeleme yapmıyorumki. Kullanıcı profil sayfasından çevrimiçi olup olmadığını sorgulamak istiyorum. Yazdığınızı anlamadım, sql sorgumuz zaten mevcut, $last_login ise şöyle bir çıktıya sahip: 2015-01-06 12:11:11.

    Ben $last_login'ı kullanarak çevrimiçi kullanıcıları listeleyip, sayısını gösteriyorum zatende, asıl istediğim: profil sayfasında bu last_login değeri INTERVAL -10 MINUTE ise 1 değil ise 2 yazdırmak. Fakat INTERVAL -10 MINUTE mysqlde çalışırken, phpdeki karşılığını bulamadım. IF olarak ne atamam gerektiğini hiç bilmiyorum
  • 10-01-2015, 10:19:19
    #7
    Arkadaşlar konu güncel, nasıl yapabilirim
  • 10-01-2015, 12:08:55
    #8
    Strtotime() fonksiyonu kullanabilirsiniz.
  • 10-01-2015, 12:19:24
    #9
    kingofseo adlı üyeden alıntı: mesajı görüntüle
    Strtotime() fonksiyonu kullanabilirsiniz.
    Örnek vermeniz mümkün mü hocam? Mesela şöyle bir deneme yaptım fakat $ksongiris; tarihinden (2015-01-04 22:10:17) 10 dakika çıkarmadı.

    $ondakikacikar = strtotime('-10 minute', date($ksongiris));