PHP

Like dislike with jquery dan php ala youtube

Like dislike with jquery dan php ala youtube

Jika Anda sedang mengembangkan sebuah blog, berbagi video platform atau web magazine, Anda akan senang untuk memiliki sistem ratingt ketika pengunjung dapat me like atau dislike untuk isi dari video halaman Anda, di sini saya memperkenalkan sistem "like/dislike" dengan desain sederhana seperti youtube, mari kita lihat...

Hal-hal akan menjadi lebih mudah jadi kita mulai dengan membuat sebuah tabel yang disebut "video_ratings", di tutor saya dibuat di bawah database yang disebut "idemastah"

CREATE TABLE IF NOT EXISTS ` video_ratings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`video_id` int(11) NOT NULL,
`ip` varchar(25) NOT NULL,
`rate` int(1) NOT NULL,
PRIMARY KEY (`id`)
);

 

Di sini saya akan menjelaskan kepada Anda bagian php, bagaimana pengambilan data dan bagaimana kita membuat tombol bekerja melalui post_rating file php.

Jadi pertama kami memiliki 2 tombol, satu untuk like dan yang lain untuk dislike

< div class="like-btn">Like< /div>
< div class="dislike-btn">< /div>

 

Menggunakan jQuery, dan klik pada tombol kami mengubah tampilan tombol dengan menambahkan kelas "like-video" dan kami mengirim parameter yang kita butuhkan untuk file ajax (contoh kode di sini digunakan untuk tindakan like)

Dalam parameter kami mengirimkan tindakan untuk melakukan (like atau dislike) dan pageID yaitu id video dari halaman atau retreived konten dari tabel konten dalam database.

$('.like-btn').click(function(){
$('.dislike-btn').removeClass('dislike-video');
$(this).addClass('like-video');
$.ajax({
type:"POST",
url:"post_rating.php",
data:'act=like&pageID='+pageID,
success: function(){
}
});
});

 

Sekarang dalam file post_rating.php, lalu buat file configuration.php yang akan terhubung ke database dan kemudian akan memeriksa IP jika pengguna telah membuat rating dengan menghitung pageID dan IP nya.

session_start();
include 'configuration.php';
extract($_POST);
$user_ip = $_SERVER['REMOTE_ADDR'];
// check if the user has already clicked on the unlike (rates = 2) or the like (rates = 1)
$dislike_sql = mysql_query('SELECT COUNT(*) FROM  video_ratings WHERE ip = "'.$user_ip.'" and video_id = "'.$pageID.'" and rates = 2 ');
$dislike_count = mysql_result($dislike_sql, 0); 
$like_sql = mysql_query('SELECT COUNT(*) FROM  video_ratings WHERE ip = "'.$user_ip.'" and video_id = "'.$pageID.'" and rates = 1 ');
$like_count = mysql_result($like_sql, 0); 

if($act == 'like'): //if the user click on "like"
if(($like_count == 0) && ($dislike_count == 0)){
mysql_query('INSERT INTO video_ratings (video_id, ip, rates )VALUES("'.$pageID.'", "'.$user_ip.'", "1")');
	}
//return like or dislike number if update is successful, otherwise return error
echo $update?$return_count:'err';
if($dislike_count == 1){
mysql_query('UPDATE video_ratings SET rates = 1 WHERE video_id = '.$pageID.' and ip ="'.$user_ip.'"');
	}
//return like or dislike number if update is successful, otherwise return error
echo $update?$return_count:'err';
endif;
if($act == 'dislike'): //if the user click on "like"
if(($like_count == 0) && ($dislike_count == 0)){
mysql_query('INSERT INTO video_ratings (video_id, ip, rates )VALUES("'.$pageID.'", "'.$user_ip.'", "2")');
	}
//return like or dislike number if update is successful, otherwise return error
echo $update?$return_count:'err';
if($like_count == 1){
mysql_query('UPDATE video_ratings SET rates = 2 WHERE video_id = '.$pageID.' and ip ="'.$user_ip.'"');
	}
//return like or dislike number if update is successful, otherwise return error
echo $update?$return_count:'err';
endif;
if(empty($_POST['rates'])){
header("location:error404");
}else{
header("location:error404");
}

Share This Post

Leave Comment

Get more stuff like this
in your inbox

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.