• 14-10-2009, 20:28:15
    #1
    arkadaşlar mysql rand() ile alttaki gibi rasgele bir veri çekiyorum
    select * from oyunlar order by rand() limit 1

    "bugün önerilen isim" diye bir veri almam gerekli
    db de kayıtlı isimlerden herhangi birini o gün boyunca hiç değişmeyecek şekilde nasıl yazdırırım.?

    bu veri gün boyu sabit kalmalı, sayfa yenilendikçe veri değişmemeli
    saat 00:01 olunca (yani ertesi gün olunca) isim tekrar değişmeli
  • 14-10-2009, 21:02:32
    #2
    cron job ile her gece 00,00 da çalıştırılan bir sayfa ayarlayın. o rand ile birini seçip db de bir tabloya işlesin. site de oradan çeksin her gece 00,00 da cron job rand ı tekrar çalıştırsın
  • 14-10-2009, 21:08:17
    #3
    Üyeliği durduruldu
    cron alternatifi olarak gunde bir veri çekilir günün_verisi tablosuna yazılır buradan günün verisi aşağıdaki kod ile otomatik olarak alınır.

    gunun_verisi tablo şeması;
    /*
    CREATE TABLE `gunun_verisi` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `veri_id` int(11) NOT NULL,
      `tarih` datetime NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM ;
    */
    Kod;
    $kontrol = mysql_fetch_array(
        mysql_query('
            select count(id) AS toplam from gunun_verisi where tarih = CURDATE()
        ')
    );
    if ($kontrol['toplam'] < 1)
    {
        $oyunid = mysql_fetch_array(mysql_query("select id from oyunlar order by rand() limit 1"));
        $oyunid = $oyunid['id'];
        mysql_query("
            insert into gunun_verisi (veri_id, tarih) 
            values ('{$oyunid}', '" . date("Y-m-d") . "')
        ");
    }
    else
    {
        $oyunid = mysql_fetch_array(mysql_query("select veri_id from gunun_verisi where tarih = CURDATE()"));
        $oyunid = $oyunid['id'];
    }
    $gunun_verisi = mysql_fetch_array(mysql_query("select * from oyunlar where id = '{$oyunid}"));
  • 16-10-2009, 11:48:09
    #4
    bukadar kasmadan yapmanın başka yolu var mı acaba?
  • 16-10-2009, 14:21:43
    #5
    Üyeliği durduruldu
    mersoy adlı üyeden alıntı: mesajı görüntüle
    bukadar kasmadan yapmanın başka yolu var mı acaba?
    bence pek kasilmis bir tarafi yok en basit şekilde yapilmis
  • 16-10-2009, 14:30:48
    #6
    devturkeli adlı üyeden alıntı: mesajı görüntüle
    cron alternatifi olarak gunde bir veri çekilir günün_verisi tablosuna yazılır buradan günün verisi aşağıdaki kod ile otomatik olarak alınır.
    gunun_verisi tablo şeması;
    /*
    CREATE TABLE `gunun_verisi` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `veri_id` int(11) NOT NULL,
      `tarih` datetime NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM ;
    */
    Kod;
    $kontrol = mysql_fetch_array(
        mysql_query('
            select count(id) AS toplam from gunun_verisi where tarih = CURDATE()
        ')
    );
    if ($kontrol['toplam'] < 1)
    {
        $oyunid = mysql_fetch_array(mysql_query("select id from oyunlar order by rand() limit 1"));
        $oyunid = $oyunid['id'];
        mysql_query("
            insert into gunun_verisi (veri_id, tarih) 
            values ('{$oyunid}', '" . date("Y-m-d") . "')
        ");
    }
    else
    {
        $oyunid = mysql_fetch_array(mysql_query("select veri_id from gunun_verisi where tarih = CURDATE()"));
        $oyunid = $oyunid['id'];
    }
    $gunun_verisi = mysql_fetch_array(mysql_query("select * from oyunlar where id = '{$oyunid}"));
    bilgi için teşekkürler öncelikle

    konuyu örnekle biraz daha açabilirmisin
    günde bir veriyi nasıl çekerim?

    belki basitdir sizler için ama
    ben daha çok yeniyim bu işlerde
  • 16-10-2009, 19:19:33
    #7
    Üyeliği durduruldu
    @mersoy; verdiğim kodda herşey var günün verisi çekiliyor, tabloya yazılıyor, günde bir kere gununverisi tablosunda kayıtlı oyunun id numarası alınıyor ve o id numarası ile oyun tablosundan çekiliyor, oyun hergün değişiyor.

    Sırasıyla aşağıdaki sql sorgusunu çalıştırın;
    /*
    CREATE TABLE `gunun_verisi` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `veri_id` int(11) NOT NULL,
      `tarih` datetime NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM ;
    */
    Günün verisinin gösterilecegi php dosyasını açın içine ekleyin;
    // Bu kısımlar sistemin kodları
    $kontrol = mysql_fetch_array(
        mysql_query('
            select count(id) AS toplam from gunun_verisi where tarih = CURDATE()
        ')
    );
    if ($kontrol['toplam'] < 1)
    {
        $oyunid = mysql_fetch_array(mysql_query("select id from oyunlar order by rand() limit 1"));
        $oyunid = $oyunid['id'];
        mysql_query("
            insert into gunun_verisi (veri_id, tarih) 
            values ('{$oyunid}', '" . date("Y-m-d") . "')
        ");
    }
    else
    {
        $oyunid = mysql_fetch_array(mysql_query("select veri_id from gunun_verisi where tarih = CURDATE()"));
        $oyunid = $oyunid['id'];
    }
    
    // Günün Oyunu Sorgusu
    $gunun_verisi = mysql_fetch_array(mysql_query("select * from oyunlar where id = '{$oyunid}"));
    Yukarıdaki $gunun_verisi değişkenini alıp istediginiz yerde $gunun_verisi['hede'] şeklinde göstereceksiniz, kullanımı bukadar kolay gelsin.
  • 18-10-2009, 20:53:36
    #8
    devturkeli
    kusura bakma acemiliğim yüzünden seni uğraştırıyorum

    tam olarak anlayamadığım kısım
    günde bir kere oyunların kayıtlı olduğu tabloya bağlanıp herhangi bir oyunu çekip gunun_verisi tablosuna nasıl aktarırım