• 27-08-2010, 06:05:15
    #1
    Merhaba arkadaşlar

    Hemen konuya girip özetle anlatıyım..

    Elimde bir sql tablosu var..Fakat bu tabloda 400 bine yakın özel olarak botla çekilmiş video var..

    Scripti kendim yazdım fakat kafama takılan bir konuda tıkandım kaldım..

    Şimdi 400 k sıralı id var diyelim..Ve bir taraftan da içerik geliyor..Yani id sayısı site yayındayken devam ediyor..

    Ama benim istediğim olaysa şöyle..Şimdi idler sırasıyla gelmesine rağmen ben 1. id den 400.000 id ye kadar ve daha sonra eklenenlere kadar zaman aralıklarıyla yayınlamak istiyorum..

    Yani wordpressdeki mantığı publish/draft olarak geçiyordu..Wp mantığıyla anlatıcak olursak 400k videoyu draft yani taslak olarak görmesini (daha sonra eklenenleride) istiyorum..Ve zaman aralığıyla (5 Dakika/Yarım saat gibi misal) id sırasıyla yayınlanmasını istiyorum..

    Bu konuda sanırsam cron kullanabiliriz ama nasıl bir mantıkla yazılabilir sizce??
  • 27-08-2010, 06:24:46
    #2
    Şöyle yapılabilir gibi:

    Bir php dosyası yazarız. Bunu crona ekleriz istediğimiz zaman aralığıyla belirlediğimiz videoları yayına sokarız ve en son yayına giren videonun idsini veri tabanında saklarız.
    Misal veri tabanın ayarlar tablosunda sonkalan adında bir sutunumuz olsun. Değerini 0 olarak girelim ilk etapta.
    Daha sonra kodlarımız bu mantıkta olabilir
    <?php
    $sayi    = 10; //Her çalıştığında yayına alacağı video sayisi
    $kac    = mysql_fetch_array(mysql_query('select deger deger from ayarlar where ayaradi="sonkalan"'));
    $kac    = $kac['deger'];
    $query  = mysql_query("select * from videolar where durum='taslak' and id>$sonkalan order by id asc limit 0,$sayi");
    
    while($s = mysql_fetch_array($query)):
         mysql_query("update videolar set durum='yayin' where id='".$s['id']."'");
         mysql_query("update ayarlar set deger='".$s['id']."' where ayaradi='sonkalan'");
    endwhile;
    ?>
  • 27-08-2010, 06:32:59
    #3
    ilyasbat adlı üyeden alıntı: mesajı görüntüle
    Şöyle yapılabilir gibi:

    Bir php dosyası yazarız. Bunu crona ekleriz istediğimiz zaman aralığıyla belirlediğimiz videoları yayına sokarız ve en son yayına giren videonun idsini veri tabanında saklarız.
    Misal veri tabanın ayarlar tablosunda sonkalan adında bir sutunumuz olsun. Değerini 0 olarak girelim ilk etapta.
    Daha sonra kodlarımız bu mantıkta olabilir
    <?php
    $sayi    = 10; //Her çalıştığında yayına alacağı video sayisi
    $kac    = mysql_fetch_array(mysql_query('select deger deger from ayarlar where ayaradi="sonkalan"'));
    $kac    = $kac['deger'];
    $query  = mysql_query("select * from videolar where durum='taslak' and id>$sonkalan order by id asc limit 0,$sayi");
    
    while($s = mysql_fetch_array($query)):
         mysql_query("update videolar set durum='yayin' where id='".$s['id']."'");
         mysql_query("update ayarlar set deger='".$s['id']."' where ayaradi='sonkalan'");
    endwhile;
    ?>
    Teşekkürler ilyas.Bende date fonksiyonlarıyla uğraşıyordum..Gözler gitti artık bunu yarın sql tablosunu localde alıp deniyim bir.
  • 27-08-2010, 06:34:09
    #4
    anarschi adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler ilyas.Bende date fonksiyonlarıyla uğraşıyordum..Gözler gitti artık bunu yarın sql tablosunu localde alıp deniyim bir.
    Rica ederim kolay gelsin...
  • 27-08-2010, 07:16:37
    #5
    Merhaba
    Bence kendine bir time(); başlangıç değeri edin.
    Mesela her gün yeni 20 video gözüksün, ve başlangıç time değerimiz atıyorum 100000 olsun,
    Şuanki time(); - 100000 = 86400
    1 Gün 86400 saniye olduğundan, 86400/86400 = 1
    Yani 1 gün olmuş, 1 gün * 20(gün başına göstermek istediğin video sayısı) = 20
    id'den 1'den 20'ye kadar çekip yayınlayabilirsin.
    Aklıma böyle bişey geldi sql sorgusu kullanmadan
    Ama her seferinde de bunu ziyaretçiye döndürtmen lazım, hangisi sana daha kârlı gelir bilmiyorum..
    Kolay Gelsin