ReLegolaS adlı üyeden alıntı: mesajı görüntüle
Merhaba beyler,

mesela en çok izlenen bugünü belki sayfada ki bir döngüyle databaseyi her gün gece 00.00 da sıfırlayabilirim ama hafta ve ay için ne yapacağım?


cronjob kullanma taraftarı değilim.
veritabanında sayaç için ayrı bir tablo oluştuyorsun.

sayac(id,hit,ay,hafta,gun)

id primary key ve içerik (yazi,video vs neyse) tablonun primary sütununa foreign key referansı vericeksin.

hit ,ay, hafta, gun integer tipinde unsigned özelliği vericeksin, default değerleri 0 olucak.

sen normal update +1 olarak bahsettiğin işlemi sadece gun sütunu için yapıcaksın.

hit,ay,hafta bu sütunlar için yapmayacaksın sürekli.

select sorgularında veya listelerken bu hafta hiti hafta+gun olarak, toplam hiti hafta+gun olarak göstereceksin.

her gun sonu

gun sütunundaki değerleri hit,ay,hafta sütunlarına ekliyeceksin.

misal

sql > update sayac set hit = hit+gun, ay = ay +gun, hafta = hafta +gun, gun = 0

gun sütuna 0 değeri vericeksin, hafta başlangıcı pazartesi ise hafta sütunu, ay başı ise ay sütununa 0 değeri vericeksin.


cronjob kullanma taraftarı değilsen mysql event kullanıcaksın. mysql event bilgin yoksa google üzerinde araştırabilirsin, yapamaz isen konu aç ben ordan yardımcı olur hallederim.

php de direk event olayı yok ama eklenti mevcut.
https://pecl.php.net/package/event
http://php.net/manual/en/book.libevent.php

kolay gelsin.