PHP | PDO ile Konu Görüntüleme (Hit Belirleme)
Bildiğiniz üzre neredeyse tüm blog, film, dizi scriptlerinde olmazsa olmazlarımızdan olan konunun ne kadar görüntüleme aldığını belirtmek hem sitenin aktifliğini hemde o bölümün ne kadar popüler olduğunu görmüş oluruz.
Bu yazımda ise PDO ile konuya ne kadar girildiğini veritabanına kayıt ettiricez ve bunu konu içeriğinde göstericez.
İlk olarak veritabanımıza bir bağlantı yapalım. Herzaman olduğu gibi bu yazımda da Film scriptini baz alarak kodlarımı ona göre yapacağım siz ne yapıyorsanız ona göre düzeltebilirsiniz.
config.php adında bir dosya oluşturarak aşağıdaki kodlarımızı içine yazalım.
try {
$db = new PDO("mysql:host=localhost;dbname=filmscript;charset=utf8", "root", "root");
} catch ( PDOException $e ){
print $e->getMessage();
}
Film tablomuza film_hit adında bir tablo ekleyelim.
Film içeriğini ben film.php adında bir dosya'ya çekiyorum siz konunuzu nereye çekiyorsanız oraya girin.
Config dosyanızı çağırdığınız yerin hemen altına;
$id = 1; // Film id'yi 1 olarak varsayıyoruz siz $id'yi GET ile çektiğiniz için 1 yerine GET kodunuzu yazabilirsiniz.
$hit = $db->prepare("UPDATE film SET film_hit= film_hit +1 WHERE film_id=?");
$hit->execute(array($id));
kodunu yazarak film içeriğine girerek her girişinde film_hit 1 artıcak şeklinde olucaktır. Film_hit ne kadar ise onun üstüne 1 ekliyor. Bu mantık ile her F5 yapıldığında filmin hit'i 1 artıcaktır. Bunu engellemek ip ile olabilir üye 5 defa arka arkaya F5 yaptığında anasayfaya yönlendirme yapabilirsiniz.
Daha sonra film içeriğimizde film hitimizi belirtmek için yazacağımız kod ise;
$sorgu = $db->prepare("SELECT * FROM film Where film_id=:id");
$sorgu->execute(array(
"id" => $id
));
$islem = $sorgu->fetch(PDO::FETCH_ASSOC);
echo $islem["film_hit"];
yazarak film hitimizi film içeriğimizde belirtmiş oluyoruz.
Sorularınız, hatalar ve yapamadığınız işlemler için aşağıdaki linklerden ulaşabilirsiniz. Eğer ulaşamazsanız aşağıdaki yorumlar kısmında belirtirseniz yardımcı olacağım.
İyi günler.
Örneğiniz için teşekkürler ancak f5 ile sayfa yenilendiğinde nasıl bir kontrol ile sayacın artmasının önüne geçebiliriz.
YanıtlaSilMerhaba
SilÇözüm olarak birsürü yol izleyebiliriz. Örnek vermek gerekirse üye konuya girdiğinde 1 defa arttırırsın daha sonra o konuya girdiğinde ilk önce sorgu yaptırarak konuya girmişmi diye kontrol edebilirsin diğer yöntem ise biraz uğraştırıcı olabilir İp adresi ile kontrol edebilirsin. Detaylı anlatım ve yardımcı olmamı isterseniz sefaylmz187@gmail.com adresinden bana ulaşabilirsin. İyi günler 🙂