ErsaT adlı üyeden alıntı:
mesajı görüntüle
20
●17.924
CREATE TABLE `sayac_tablom` ( `id` int(1) NOT NULL auto_increment, `tekil_hit` int(15) NOT NULL, `cogul_hit` int(15) NOT NULL, `gun` int(5) NOT NULL, `ay` int(3) NOT NULL, `yil` int(3) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=30 ; INSERT INTO `sayac_tablom` VALUES (29, 1, 47, 6, 3, 2009); INSERT INTO `sayac_tablom` VALUES (28, 2, 355, 5, 3, 2009); INSERT INTO `sayac_tablom` VALUES (27, 2, 68, 4, 3, 2009);
<?php
function sayac(){
global $db;
$ip = $_SERVER['REMOTE_ADDR'];
$tarih = time();
$gun = date('d');
$ay = date('m');
$yil = date('Y');
$zamanasimi = time()-86400;
$db->query("Delete From ip_tablom where zaman < ".$zamanasimi);
$ip_sayi = $db->get_var("Select Count(ip) From ip_tablom where ip='$ip'");
$hit = $db->get_var("select Count(tekil_hit) from sayac_tablom where gun='$gun' and ay= '$ay' and yil='$yil'");
if($hit>0)
{
if($ip_sayi == 0)
{
$ece->db("Insert Into ip_tablom (ip, zaman) Values ('$ip', '$tarih')");
$ece->db("update sayac_tablom
Set
tekil_hit=(tekil_hit+1), cogul_hit=(cogul_hit+1)
where
gun='$db' and ay='$ay' and yil='$yil'
");
}else
{
$db->query("update sayac_tablom
Set
cogul_hit=(cogul_hit+1)
where
gun='$gun' and ay='$ay' and yil='$yil'
");
}
}else
{
if($ip_sayi == 0)
{
$db->query("Insert Into ip_tablom (ip, zaman) Values ('$ip', '$tarih')");
}
$db->query("insert into sayac_tablom
(tekil_hit,cogul_hit,gun,ay,yil)
values
('1','1','$gun','$ay','$yil')
");
}
}
?>şöyle bir yapıda değiştirdim ayak üstü hata yoktur muhtemelen... belki uzun yoldur kısasını yapan çıkar 
<?php
//ErsaT
//Mysql bağlantı
$bagla = mysql_connect('localhost', 'user_kullanici', 'user_kullanici_password');
mysql_select_db('veritabani_ismi');
mysql_query("Update sayac_tablom Set cogul_hit=0, tekil_hit=0");
mysql_close($bagla);
?> CREATE TABLE `sayac_tablom` ( `id` int(15) NOT NULL auto_increment, `ip` int(15) NOT NULL, `tekil_hit` int(15) NOT NULL, `cogul_hit` int(15) NOT NULL, `zaman` int(11) NOT NULL, `onlinezaman` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `ip` (`ip`) );
<?php
//ErsaT
//Mysql bağlantı
$bagla = mysql_connect('localhost', 'user_kullanici', 'user_kullanici_password');
mysql_select_db('veritabani_ismi');
function sayac(){
global $bagla;
$ip = $_SERVER['REMOTE_ADDR'];
$tarih = time();
$zamanasimi = time()-86400;
$online_suresi = time()-60*15;//son 15 dakikadir giriş yapan
//1 günlük zamanaşımına uğrayan ip leri sil
// ARTIK TEK TABLO OLDUĞU İÇİN İPLER İLE O SATIRDAKİ ÇOĞUL VE TEKİL HİT DEĞERLERİ DE DÜŞÜYOR
mysql_query("DELETE FROM sayac_tablom where zaman < ".$zamanasimi);
//sayfa talep eden ip adresin sayac da kaydı var mı diye bakiyoruz.
$sonuc = mysql_query("Select * FROM sayac_tablom where ip='$ip'");
$sayi = mysql_num_rows($sonuc);
if($sayi < 1){
//eğer ip adresi kayitli degilse database e ekleniyor ve tekil ve çoğul hit 1 artıyor.
mysql_query("Insert Into sayac_tablom (ip, tekil_hit, cogul_hit, zaman, online_zaman) Values ('$ip', 1, 1, '$tarih', '$tarih')");
}else{
//eğer ip adresi daha önce varsa çoğul hit 1 artıyor ve online_zaman alanına son işlem yapılan an zamanı yazılıyor
mysql_query("UPDATE sayac_tablom SET cogul_hit=(cogul_hit+1), online_zaman = '$tarih' WHERE ip = '$ip' ");
}
//$sonuccogul değişkenine cogul_hit sütunundaki tüm satırlardaki rakam değerlerinin toplamını istiyoruz
$sonuccogul = mysql_query("SELECT TYPE, SUM(cogul_hit) FROM sayac_tablom");
// $cogulhit değişkenine gelen arraydeki toplam coğul hit sayısını atıyoruz
$cogulhit = intval($sonuccogul['SUM(cogul_hit)']);
//çoğul sonucu bulmak için toplanan tüm satırlar aktif ip adresi sayımızı yani tekil hitimizi veriyor
$tekilhit = mysql_num_rows($sonuccogul);
//online_zaman bilgisi 15 dakikadan yeni olan kullanicilari listeletiyoruz.
$onlinesorgu = mysql_query("SELECT * FROM sayac_tablom WHERE online_zaman > '$online_suresi'");
//online kullanıcı sayısını $onlinesayisi değişkenine atıyoruz
$onlinesayisi = mysql_num_rows($onlinesorgu);
// HEPSİNİ YAZDIRIYORUZ.
echo 'Toplam Tekil Hit: <strong>'.$tekilhit.'</strong><br>';
echo 'Toplam Çoğul Hit: <strong>'.$cogulhit.'</strong><br>';
echo 'Şu anda sitede '.$onlinesayisi.' üye online durumdadır.';
mysql_close($bagla);
}
?>fonksiyon değişmedisayac();saygılar