من خودم برای شمارش صفحات سایتم از این کد استفاده میکنم میتونی یکم تغییرش بدی و استاده کنی
اول پیدا میکنه تو کدوم صفحه هست بعد مطابق با اون پیج پارامترها رو ست میکنه و میگرده توی دیتابیس اگه نبود که یه رکورد جدید وارد میکنه اگر نه که میره میخونه ببینه چی داره میاد نمایش میده بعدش که نمایش داد میره آپدیتش میکنه (یه بازدید رو اظافه میکنه) اینم کدش :
<?php
$path = pathinfo($_SERVER['PHP_SELF']);
$fileName = strtolower($path['filename']);
switch($fileName){
case 'index':
$productID = 'home';
$carID = 'home';
break;
case 'contactus':
$productID = 'cont';
$carID = 'cont';
break;
case 'search':
$productID = 'sear';
$carID = 'sear';
break;
default:
$carID = isset($_GET['carID'])? $carID = $secure->cleanText($_GET['carID']):'0000';
$productID = isset($_GET['productID'])? $productID = $secure->cleanText($_GET['productID']):'0000';
}
try{
//check weather there is any record before
$stmt = $db->prepare("SELECT count(*) FROM `Table` WHERE carID = :carID AND productID = :productID");
$stmt->bindParam(':carID', $carID, PDO::PARAM_STR);
$stmt->bindParam(':productID', $productID, PDO::PARAM_STR);
$stmt->execute();
$record = $stmt->fetchColumn(0);
//if NOT
if($record == 0){
$stmt = $db->prepare("INSERT INTO `Table` (`carID`, `productID`, `pVisited`, `lastVisit`) VALUES (:carID, :productID, :pVisited, :lastVisit)");
$stmt->bindParam(':carID', $carID, PDO::PARAM_STR);
$stmt->bindParam(':productID', $productID, PDO::PARAM_STR);
$stmt->bindValue(':pVisited', 1, PDO::PARAM_STR);
$stmt->bindParam(':lastVisit', $date_time, PDO::PARAM_STR);
$stmt->execute(); }
//show page visited
$stmt = $db->prepare("SELECT `carID`, `productID`, `pVisited`, `lastVisit` FROM `Table` WHERE carID = :carID AND productID = :productID");
$stmt->bindParam(':carID', $carID, PDO::PARAM_STR);
$stmt->bindParam(':productID', $productID, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo "<p>آمار بازدید " . $row['pVisited'] . " مرتبه - آخرین بازدید ". $row['lastVisit'] . "</p>";
//update counter table
$pVisited = (int)$row['pVisited']+1;
$stmt = $db->prepare("UPDATE `Table` SET `pVisited`= :pVisited,`lastVisit`= :date_time WHERE carID = :carID AND productID = :productID");
$stmt->bindParam(':pVisited', $pVisited, PDO::PARAM_STR);
$stmt->bindParam(':carID', $carID, PDO::PARAM_STR);
$stmt->bindParam(':productID', $productID, PDO::PARAM_STR);
$stmt->bindParam(':date_time', $date_time, PDO::PARAM_STR);
$stmt->execute();
}catch (PDOException $e){ error_log( nl2br("Problem in counter page" . $_SERVER['REMOTE_ADDR'] . "$date_time\r\n") ,3,'/errorFile.log');}