Merhaba, öncelikle iyi çalışmalar mantığı anlaman açısından bir örnek yaptım. Kodlar içerisinde notlar yazdım. Takıldığın yerde yine sorabilirsin. Aşağıda yaptığım örnekte bir günde bir kez yapılan ziyateri sayacaktır. Cihaz, IP, Tarayıcı, vb.. faktörlerden etkilenmez doğru bir sayım olur.
// Şimdi bunun örneğini senin için php PDO ile yapıyorum. Mantığı anlarsın umarım...
/*
$query->$db ile başlayan $db değişkenim ben veri tabanı bağlantı
değişkeni olarak belirledim seninki ne ise onunda değiştirebilirsin.
*/
$ziyaretci_id = 1; // Profile giren kullanıcının idsi.
$ziyaret_edilen_id = 15; // Profilin sahibinin idsi.
$tarih = date("Y-m-d"); // Tarih formatı: 2018-12-5 olacaktır.
$query = $db->prepare("SELECT * from ziyetler WHERE ziyaretci=? && ziyaret_edilen_id=? && tarih=?");
$query->execute(array($ziyaretci_id,$ziyaret_edilen_id,$tarih));
if ($query->rowCount() >= 1) {
// Sorgu yaptık buradan eğer bu gün kullanıcı bu profili daha önce ziyaret etmiş ise güncelliyoruz.
// Burada biz saatlik bir dilim kullanmadık günlük kullandığımız için aynı gün yapılan ziyareti
// aslında güncellemek mantıklı değil fakat saatlik kullanırsan diye bu alanı bırakıyorum.
$query = $db->prepare("UPDATE ziyaretler SET tarih=? WHERE ziyaretci_id=? && ziyaret_edilen_id=?");
$update = $query->execute(array($tarih,$ziyaretci_id,$ziyaret_edilen_id));
if ($update) {
echo 'Son Ziyaret güncellendi.';
}
} else {
// Eğer birisi bu profili daha önce ziyaret etmiş ise ekliyoruz.
$query = $db->prepare("INSERT INTO ziyaretler SET ziyaretci_id=?,ziyaret_edilen_id=?,tarih=?");
$insert = $query->execute(array($ziyaretci_id,$ziyaret_edilen_id,$tarih));
if ($insert) {
echo 'Son Ziyaret eklendi.';
}
}
// Bu örnekte bir kullanıcı bir başka kullanıcıyı günde sadece bir ziyaretini sayar sayfa yenilemesi ip değişikliği cihaz değişikliği gibi faktörlerden etkilenmeden tekil ziyaretçi sayımı yapmış oluruz.
?>
Merhaba öncelikle detaylı cevabınız için çok teşekkür ederim sadece merak ettiğim neden aslında güncellemek mantıklı değil fakat saatlik kullanırsan diye bu alanı bırakıyorum diye yazdınız mesela benim amacım ziyaretçi listesinde sıralama yaparken son ziyaret saatini ele almak yani kişi beş dk içinde 3 kerede profili ziyaret etse yeni kayıt açmaktansa varolan kaydın saatini güncellemek istiyorum