vehbiakdogan

Senior Sofware Developer

PDOPHP

Php ile Tekil-çoğul Ziyaretçi sayacı

Merhaba arkadaşlar bu yazımda sizlere PDO kullanarak bir ziyaretçi sayacı yapmayı göstereceğim

Öncelikle bir sayac adında veri tabanı açalım ve aşağıdaki sql sorgusunu çalıştıralım.

 CREATE TABLE IF NOT EXISTS `hit` (  
`gun` int(11) NOT NULL,
`ay` int(11) NOT NULL,
`yil` int(11) NOT NULL,
`simdi` int(11) NOT NULL,
`sayac` int(11) NOT NULL,
`ip` varchar(100) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Ardından Bir php dosyası açalım ve kodlarımızı yazmaya başlayalım.
Herzamanki gibi kodların içine gerekli açıklamayı yazdım anlamadığınız yerleri sorabilirsiniz.

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<style type="text/css">
.sayac{
background:#ccc repeat;
border:1px dashed #555;
border-radius:10px;
color:#000;
width:300px;
margin:0px auto;
}
p{
border-bottom: 3px solid #fff;
}
</style>
<?php
function vehbiakdoganSayac()
{
$host='mysql.hostinger.web.tr'; // mysql host
$user='u622378237_admin'; // kullanıcı adı
$pass=''; // şifresi
$vt='u622378237_admin'; // veri tabanı adı
try {
$db = new PDO('mysql:host='.$host.';dbname='.$vt, $user, $pass);
} catch (PDOException $v) {
echo 'Bağlantı Başarısız: ' . $v->getMessage();
}
// Veri tabanı bağlantımızı yaptık
$bugun=date("d"); // bugünün tarihi
$ay=date("m"); // bu ay
$yil=date("Y"); // bu yıl
$onlineSuresi=time()-2*60*60; // iki dakika aktif olmazsa onlineden düşecek
$ip=$_SERVER['REMOTE_ADDR']; // ziyaretçinin ip si
$bugunGiris=$db->query("SELECT * FROM hit WHERE ip='$ip' AND gun='$bugun'")->rowCount(); // bugün o ip ile girilmişmi
if($bugunGiris!=0){ // yani bugün girilmişse
$al=$db->query("SELECT * FROM `hit` WHERE `ip`='".$ip."' AND `gun`='".$bugun."'")->fetch();
$guncelle=$db->query("UPDATE `hit` SET `sayac`='".($al['sayac']+1)."' WHERE id='".$al['id']."'"); // çoğulu 1 artırdık
}else{ // griş yapılmamışsa kaydettirelim
$db->query("INSERT INTO `hit` SET `gun`='$bugun', `ay`='$ay', `yil`='$yil', simdi='".time()."', sayac='1',ip='$ip'");
}
// evet sıra geldi online, tekil ve çoğulu Göstermeye
// online Kişi
$online=$db->query("SELECT * FROM hit WHERE simdi>='$onlineSuresi'")->rowCount(); // onlnie kişilerimiz
// çoğul hitler
$bugunx=$db->query("SELECT SUM(sayac) FROM hit WHERE gun='$bugun' AND ay='$ay' AND yil='$yil' ORDER BY id desc")->fetch();
$bugun_cogul=$bugunx['SUM(sayac)']; // bugün çoğul
$dunx=$db->query("SELECT SUM(sayac) FROM hit WHERE gun='".($bugun-1)."' AND ay='$ay' AND yil='$yil' ORDER BY id desc")->fetch();
$dun_cogul=$dunx['SUM(sayac)']; // dün Çoğul
$ayx=$db->query("SELECT SUM(sayac) FROM hit WHERE ay='$ay' AND yil='$yil' ORDER BY id desc")->fetch();
$buay_cogul=$ayx['SUM(sayac)']; // bu ay çoğul
$toplamx=$db->query("SELECT SUM(sayac) FROM hit ORDER BY id desc")->fetch();
$toplam_cogul=$toplamx['SUM(sayac)']; // toplam çoğulumuz
// tekil hitler
$bugun_tekil=$db->query("SELECT * FROM hit WHERE gun='$bugun' AND ay='$ay' AND yil='$yil'")->rowCount(); // bugün tekil
$dun_tekil=$db->query("SELECT * FROM hit WHERE gun='".($bugun-1)."' AND ay='$ay' AND yil='$yil'")->rowCount(); // dün tekil
$buay_tekil=$db->query("SELECT * FROM hit WHERE ay='$ay' AND yil='$yil'")->rowCount(); // dün tekil
$toplam_tekil=$db->query("SELECT * FROM hit")->rowCount(); // dün tekil
echo"<div class='sayac'>
<p>Online: $online </p>
<p>Bugün Tekil: $bugun_tekil</p>
<p>Bugün Çoğul: $bugun_cogul</p>
<p>Dün Tekil: $dun_tekil</p>
<p>Dün Çoğul: $dun_cogul</p>
<p>Buay Tekil: $buay_tekil</p>
<p>Buay Çoğul: $buay_cogul</p>
<p>Toplam Tekil: $toplam_tekil</p>
<p>Toplam Çoğul: $toplam_cogul</p>
</div>";
}
vehbiakdoganSayac();
?>

Evet arkadaşlar ben sayfamızı ziyaretci-sayaci.php diye kaydettim . ziyaretci-sayaci.php sayfamızı çalıştırınca ekrana hit bilgileri gelecektir. uygulamanın indirme linkine Buradan Ulaşabilirsiniz.

9 thoughts on “Php ile Tekil-çoğul Ziyaretçi sayacı

  • batuhan

    kanki herşeyi anladımda auto_incriementi niye 3 den başlatıon 😀 yoksa senin toteminmi ?:D:D:adss

    Yanıtla
  • Eline sağlık süper bi paylaşım olmuş. Ufak bi kaç düzenleme ile konuda bi yorumum bulunsun istedim.

    Bilerek mi bu şekilde bıraktın yoksa dalgınlığına mı denk geldi bilmiyorum lakin benim gözüme çarpanlar şunlar lütfen ukalalık olarak algılama. 🙂

    2 dk yerine 2 saat yapmışın ya la xD bi de online kişinin bugün daha önce girmişse update kısmına time() eklemeyi unutmuşun bi sonraki girişinde elemanı tekrar saymıyor –online olarak bugün bi kere geldin yeter bi git len– dercesine 😛

    Naçizane şu şekilde düzelttim.

    /* satır 47 /*
    $onlineSuresi=time()-2*60; // iki dakika aktif olmazsa onlineden düşecek

    /* satır 54 /*
    $guncelle=$db->query(“UPDATE `hit` SET `sayac`='”.($al[‘sayac’]+1).”‘, simdi='”.time().”‘ WHERE id='”.$al[‘id’].”‘”); // çoğulu 1 artırdık

    Yanıtla
  • MAHMUT.KETME

    merhabalar php form oluşturma işlemleri nasıl bana detaylı anlatan biri yokmu site tasarlayabiliyorum ama form oluşturmada zorlanıyorum

    Yanıtla

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir