• 14-06-2020, 18:42:55
    #1
    Merhaba, tasarımını, kodlamasını vs. kendi yaptığım bir sitem var. Benim yapmak istediğim şu: veri tabanına içerikler giriyorum ve bu içeriklerin belirttiğim tarih geldiğinde yayınlanmasını istiyorum. Çünkü toplu içerik hazırlayıp bunları sırayla günlere bölerek yayınlanmasını istiyorum. Bunun mantığını düşünürken bir yerde takıldım ve size danışmaya karar verdim.

    Kurduğum mantık şu şekildedir (if else yapısıyla basitçe kurdum, Türkçeye çevirip anlatmaya çalışacağım):
    veri tabanına eklediğim içeriklerin yanına bir sütun ekledim ve eğer bu sütundaki rakam 1 ise sitede yayınlanıyor, 0 ise yayınlanmıyor.
    Ben de bunu > eğer bugün = belirtilen tarih ise > rakam 1 olsun ve içerik yayınlansın > eğer belirttiğim tarih bugün değilse > rakam 0 olsun ve içerik yayınlanmasın.

    Buraya kadar her şey normal, ancak sorun şu ki aradan bir gün geçtiğinde, doğal olarak belirttiğim tarih dünde kaldığı için veri tabanındaki rakam tekrar 0'a dönecek ve içerik yayından kalkacak. Daha doğrusu mantıken böyle olacağını biliyorum.

    İşte burada takıldım ve belirttiğim tarih + gelecekteki tüm tarihler de o sütundaki rakamın 1 olmasını istiyorum yani "içerik, belirtilen tarihe geldiğinde yayınlansın ve içerik bir daha yayından kalkmasın." Umarım anlatabilmişimdir.

    Sadece bunun mantığı nasıl oluyor, öğrenmek istiyorum. Bilenler yardımcı olursa sevinirim, teşekkürler.
  • 14-06-2020, 18:48:27
    #2
    1-0 olayına hiç girmeden, db de sadece yayınlanma tarihini tutabilirsiniz, if kontrolünüz de strtotime(yayınlanma tarihi) > strtotime(bugünün tarihi) şeklinde olur.
  • 14-06-2020, 18:50:29
    #3
    Daha basit o sutunu tarih yapın tarih eşit veya geçmiş ise yapın. Ya da cron ayarlayın gece 00.02 de çalışsın ilk dediğiniz şekilde tarih eşit ise bugüne yayın değeri 1 olarak güncelle.. her gece otomatik olarak yayınlandı 1 olur 0 olanlar. Ve sadece tarih eşitse 1 yapacağı için eski veya yeni makaleleri etkilemez de.
  • 14-06-2020, 18:53:07
    #4
    Arkadaş şeyi soruyor: kod yürürse günü kontrol edecek tamam ama kod yürümüyor ki, diyor anladığım kadarıyla. Cevap: evet, kod yürümedikçe bunun kontrolü yok. Web form ile de bu kod çalıştırılabilir, masaüstü program ile de. Bir botun belli aralıklarla çalışıp kontrol etmesi lazım. Web yazılım şeklinde yapılırsa cron jobla falan belki url çağrılarak kod yürütülebilir, cron hakkında detaylı bilgisi olan arkadaşlar lütfen aydınlatsın.
  • 14-06-2020, 19:23:12
    #5
    ajans.dev adlı üyeden alıntı: mesajı görüntüle
    1-0 olayına hiç girmeden, db de sadece yayınlanma tarihini tutabilirsiniz, if kontrolünüz de strtotime(yayınlanma tarihi) > strtotime(bugünün tarihi) şeklinde olur.
    Teşekkür ederim, bu mantık sorunumu çözüyor. Diğer arkadaşlara da yardımları için teşekkürler.