hocam count olayı ve sürekli tabloda yeni veri açmak sorun olacağını düşündüm ve sein kodlar ile şöyle bişey yazdım
$video_id=$va['id'];
$gun = date("d");
$ay = date("m");
$yil = date("Y");
$f = "1";
$ekle = $eskihit+$f;
$result = mysql_query("SELECT * FROM hits WHERE video_id ='$video_id' and gun ='$gun' and ay ='$ay' and yil ='$yil'");
if( mysql_num_rows($result) > 0) {
mysql_query("UPDATE hits SET hit = hit + 1 where video_id ='$video_id' and gun ='$gun' and ay ='$ay' and yil ='$yil' ");
}
else
{
mysql_query("INSERT INTO hits (video_id,hit,gun,ay,yil) VALUES ('$video_id','$f','$gun','$ay','$yil') ");
}ama sorguyu nasıl geri alacağım bunu yapamadım(:
yani şu kodda takıldım
$sorgu=mysql_query("select video_id,count(id) as sayi from hits where gun='12' and ay='04' and yil='2015' group by video_id order by sayi desc limit 10");,
yapmak istediğin yapıya istemsiz dahil oluyorum.
gün,ay,yıl diye ayrı ayrı oluşturulmuş bir tarih sütunu olamaz. mysql'in gün ay yıl bilgisi içeren DATE adında tipi var.
veritabanlarının hepsi için geçerlidir ne tablo oluşturursan oluştur o tablonun bir tane
primary key olmak zorundadır.
senin istediğin yapı için tablon
video_id (int),tarih(date),hit(int) sütunlarında oluşacak
ve video_id ve tarih iki sütun ortak primary key oluşturucak.
hits(
video_id,
tarih,hit)
güncelleme işleminde
sql > SELECT COUNT(*) FROM hits WHERE
video_id=$videoid and tarih=DATE(NOW())
eklenme olmuş ise
sql > UPDATE hits SET hit = hit + 1 WHERE
video_id ='$video_id' and tarih=DATE(NOW())
olmamış ise
sql > INSERT INTO hits VALUES ($video_id,1,DATE(NOW()))
sonrasında
bugün izlenme sayısı
sql > SELECT hit FROM hits WHERE
video_id = $video_id and tarih=DATE(NOW())
son 7 gün
sql > SELECT video_id,SUM(hit) FROM hits WHERE
video_id = $video_id and tarih>DATE_ADD(DATE(NOW()),INTERVAL -7 DAY) group by video_id
vs vs istediğin gibi türet..
kalın belirttiğim yerlere dikkat edin video_id ve tarih sütunlarında filtreleme yapıyorum yani primary key'im üzerinde