berikut cara untuk membuat view post atau jumlah kunjungan pada sebuah posting , dimana akan mengunci pada session user , sehingga klik refresh tidak akan menambah jumlah counter, kita menggunakan 2 tabel , 1 tabel artikel dan 1 tabel page count yang berisi histori session (agar klik refresh tidak menambah jumlah counter )
database
tabel page count
tb_page_count (id_page_count,user_ip,tanggal,session_id,id_artikel) user_ip = ip_addres pengujung tanggal = tanggal pada saat masuk session_id = session browser pada saat masuk id_artikel = id artikel yang kita lihat
tabel artikel
tb_artikel (id_artikel,nama_artikel,counter)
kode insert setiap buka artikel tersebut
function connect_db() { $server = 'localhost'; // this may be an ip address instead $user = '............... '; $pass = ' ........'; $database = ' ...........'; $connection = new mysqli($server, $user, $pass, $database); return $connection; } $user_ip=$_SERVER['REMOTE_ADDR']; // gets the user IP Address $ses_id=session_id(); $sql_cek="select id_page_count from tb_page_count where id_artikel='$id' and user_ip='$user_ip' and ses_id='$ses_id'"; $hasil_cek = $db->query($sql_cek)or die("insert data gagal, Sistem penyimpanan bermasalah"); $rowscek = $hasil_cek->num_rows; $hasil_cek->close(); if($rowscek ==0) { $tanggal =date( 'Y-m-d H:i:s'); $sql2="insert into tb_page_count(id_artikel,user_ip,ses_id,tgl) values('$id','$user_ip','$ses_id','$tanggal'); update tb_jual set counter = counter+1 where id_artikel='$id' "; $db->multi_query($sql2) or die("insert data gagal, Sistem penyimpanan bermasalah"); while($db->more_results() && $db->next_result()) { $result = $db->use_result(); if($result instanceof mysqli_result){ $result->free(); } } }
kode menampilkan jumlah klik, langsung ditampilkan dari tabel artikel
select tb_artikel.counter where id_artikel ='....'
- kode ini jika dieksekusi , akan menambah jumlah counter tetapi jika kita referes tidak akan menambah karena session nya masih ada , jika session nya sudah habis maka counter akan tambah,
- jika dibuka dengan browser yang beda dalam komputer yang sama, dalam waktu yang sama akan menambah counter karena beda session browser
semoga berguna 🙂
referensi :
tinggalkan pesan