Cevaplar
-
tarihleri timestamp olarak aldığından zaten bir çok şeyin temeli hazır tutulmuş.
Şimdi yapman gerek..
mysql_query("select * from bilgiler where timestamp<$tarih and timestamp>$tarih2");
Şeklinde gün gün olarak ekrana bastırman,
$tarih1 ve $tarih 2 yi form alanı ile yollarıtrsın ve yollatığın yerde
11.02.1988 gibi tarihi direk timestamp formatına çevirtirsin.
Bu sana geniş bir döküm verecektir.
Aynı şeyi hafta bazında
ay bazında felan da yapabilirsin burdan sana en yoğun saatleri her şeyi çıkartabilirsin.
Umarım yardımcı olabilimişimdir.-
freefox
teşekkürler ilgin için
ama yazıda belirttiğim gibi işe php'yi bulaştırmadan yapmanın yolunu arıyorum. varsa tabi ?
dediğin gibi php ile ben istediğim şeyi çıkartabiliyorum zaten :) derdim bunu sql sorgusu ile yapabilmek ?11 yıl önce yazılmış
-
-
biraz karmaşık ama yapilabilir birtane array olustur 24 verisi olan her veri bir saatlik sonra ona gore bir sorgu
Örnek
$array = array("2012-04-09 00:00:00 and"2012-04-09 00:59:59", "2012-04-09 01:00:00 and"2012-04-09 01:59:59");
for($i=0; $i<count($array); $i++){
echo "SELECT COUNT(*) FROM userlogin WHERE time BETWEEN".$array[$i]."<br";
}
iki dk içinde ancak bu kadar geldi aklima tarih kısmını kendi saat dilimine gore ayarlarsin olur diye düşünüyorum kolay gelsin. -
Tam mantığı olmasada ;
SELECT CONCAT(DATE_FORMAT(giris, '%Y-%m-%d %H'), ':00:00.000') AS saat,COUNT(*) AS sayi, AVG(*) AS ortalama FROM uyeler WHERE giris BETWEEN '2012-04-01' AND '2012-05-09' GROUP BY CONCAT(DATE_FORMAT(giris, '%Y-%m-%d %H'), ':00:00.000') ORDER BY saat
aslında aralığı otomatik almasını istiyorsak mysql ADDTIME ile bir haftalık aralık girilebilir.Elinde veri varsa test için eklersen deneyebiliriz.-
freefox
Dostum örnek tablo aşağıda çok fazla veri yok birkaç günlük
ama iş görür sanırsamCREATE TABLE IF NOT EXISTS `log` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `tckimlik` varchar(15) COLLATE utf8_turkish_ci NOT NULL, `giris` bigint(14) NOT NULL, `cikis` bigint(14) NOT NULL DEFAULT '0', PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=29 ; -- -- Tablo döküm verisi `log` -- INSERT INTO `log` (`Id`, `tckimlik`, `giris`, `cikis`) VALUES (9, '00000000000', 1333650582, 1333650601), (11, '00000000000', 1333708752, 1333708801), (28, '00000000000', 1333966894, 1333969151), (27, '11111111111', 1333966840, 1333966885), (16, '00000000000', 1333814902, 1333815693), (17, '00000000000', 1333896636, 1333896681), (18, '00000000000', 1333953746, 1333954390), (19, '11111111111', 1333954393, 1333954402), (20, '00000000000', 1333954407, 1333958517), (21, '11111111111', 1333958521, 1333958525), (22, '00000000000', 1333958529, 1333958649), (23, '00000000000', 1333962883, 1333963102), (24, '00000000000', 1333963126, 1333964934), (25, '11111111111', 1333964939, 1333965124), (26, '00000000000', 1333965128, 1333966835);
11 yıl önce yazılmış -
xuma
Haftalık düzgün bir döküm için epeyi uğraşmak lazım ama yukarıda verdiğim örnek için düzenlenmiş sorgu için sonuçlar;SELECT CONCAT(DATE_FORMAT(FROM_UNIXTIME(giris),'%Y-%m-%d %H'), ':00:00.000') as saat ,COUNT(id) as sayi FROM log WHERE DATE_FORMAT(FROM_UNIXTIME(giris), '%d-%m-%Y') BETWEEN '05-04-2012' AND '10-04-2012' GROUP BY CONCAT(DATE_FORMAT(FROM_UNIXTIME(giris),'%Y-%m-%d %H'), ':00:00.000') ORDER BY saat ----------------------- 2012-04-05 21:00:00.00 1 2012-04-06 13:00:00.00 1 2012-04-07 19:00:00.00 1 2012-04-08 17:00:00.00 1 2012-04-09 09:00:00.00 3 2012-04-09 11:00:00.00 2 2012-04-09 12:00:00.00 4 2012-04-09 13:00:00.00 2
açıkcası güzel bir cevap gelirse bende merak ediyorum.Aklıma birkaç yöntem gelsede özellikle tarihlerin depolanma biçimi yüzünden gözüm korktu :)11 yıl önce yazılmış -
freefox
ilgin için saol .
dediğin gibi biraz daha uğraşmak lazım
hatta iş biraz daha ileriye götürebilse .
istediğimiz tarih veya tarih aralıklarında en yoğun girişlerin olduğu saatlari alabilsek . süper bir sorgu olur birçok kişinin aradığı bir çözüm olur.
hadi uzmanlar çözüm üretin :)11 yıl önce yazılmış
-
-
select date_format( giris, '%H' ) as `saat` from logs group by date_format( gun, '%H' )
order by count(*) desc burada saatlere göre en cok giriş yapılmış görebilirsiniz.-
freefox
dostm yukarıda verdiğim tablo yapısına uygun hale getirebilemn münkünmü
"gun" kısmı na ne yazmam gerekiyor tarihmi ? 10-04-2012- gibi
bunu denedim ama herhangi bir sonuç döndürmedi11 yıl önce yazılmış
-