X

Create Like & Unlike System in PHP, MySQL and jQuery

This script work like Youtube like and dislike system for videos. This script works perfectly on your website. You can pass URL’s or integrate with ids you can check its Demo here. Its a PHP, MySQL, and jQuery based script.

Database Details:

database name => system

table name => products

table name => like

db.sql

The database file runs in your MySQL to create a database and add data to the table.

-- 

-- Table structure for table `likes`

-- 



CREATE TABLE `likes` (

  `id` int(5) NOT NULL AUTO_INCREMENT,

  `pid` int(10) NOT NULL,

  `like` int(10) NOT NULL,

  `unlike` int(10) NOT NULL,

  `uid` varchar(100) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=1;







-- --------------------------------------------------------



-- 

-- Table structure for table `products`

-- 



CREATE TABLE `products` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `product_name` varchar(255) NOT NULL,

  `price` double(10,2) NOT NULL DEFAULT '0.00',

  `image` varchar(255) NOT NULL,

  `status` int(2) NOT NULL DEFAULT '1',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4;



-- 

-- Dumping data for table `products`

-- 



INSERT INTO `products` VALUES (1, 'PHP Books', 20.00, '1.jpg', 1);

INSERT INTO `products` VALUES (2, 'RestAPI Code', 10.00, '2.jpg', 1);

INSERT INTO `products` VALUES (3, 'PHPLift Annual Subscription', 100.00, '3.jpg', 1);

db.php

Edit this file as per your database credentials.

<?php

define('DB_SERVER', 'localhost');

define('DB_USERNAME', 'username');

define('DB_PASSWORD', 'password');

define('DB_DATABASE', 'database');

$connection = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

?>

index.php

IT contains PHP code to update table records and show the current number in the file; in this file, we used cookies to skip invalid likes and un-likes.

The main file shows the products list and like buttons:

<?php

session_start();

include("db.php");

if(!isset($_SESSION['user']))

{

    $_SESSION['user'] = session_id();

}

$uid = $_SESSION['user'];  // set your user id settings



$query  = "SELECT * FROM  `products`"; // products list

$res    = mysqli_query($connection,$query);

$HTML = "";

while($row=mysqli_fetch_array($res))

{

    // get likes and dislikes of a product

    $query = mysqli_query($connection,"select sum(`like`) as `like`,sum(`unlike`) as `unlike` from `likes` where pid = ".$row['id']);

    $rowCount = mysqli_fetch_array($query);

    if($rowCount['like'] == "")

        $rowCount['like'] = 0;

        

    if($rowCount['unlike'] == "")

        $rowCount['unlike'] = 0;

        

    if($uid == "") // if user not loggedin then show login link on like button click

    {

        $like = '

            <input >

To post like button action below code used:

<?php

if($_POST)

{

    $pid    = mysqli_real_escape_string($connection,$_POST['pid']);  // product id

    $op     = mysqli_real_escape_string($connection,$_POST['op']);  // like or unlike op

    



    if($op == "like")

    {

        $gofor = "like";

    }

    elseif($op == "unlike")

    {

        $gofor = "unlike";

    }

    else

    {

        exit;

    }

    // check if alredy liked or not query

    $query = mysqli_query($connection,"SELECT * from `likes` WHERE pid='".$pid."' and uid='".$uid."'");

    $num_rows = mysqli_num_rows($query);



    if($num_rows>0) // check if alredy liked or not condition

    {

        $likeORunlike = mysqli_fetch_array($query);

    

        if($likeORunlike['like'] == 1)  // if alredy liked set unlike for alredy liked product

        {

            mysqli_query($connection,"update `likes` set `unlike`=1,`like`=0 where id='".$likeORunlike['id']."' and uid='".$uid."'");

            echo 2;

        }

        elseif($likeORunlike['unlike'] == 1) // if alredy unliked set like for alredy unliked product

        {

            mysqli_query($connection,"update `likes` set `like`=1,`unlike`=0 where id='".$likeORunlike['id']."' and uid='".$uid."'");

            echo 2;

        }

    }

    else  // New Like

    {

       mysqli_query($connection,"INSERT INTO `likes` (`pid`,`uid`, `$gofor`) VALUES ('$pid','$uid','1')");

       echo 1;

    }

    exit;

}

?>

It is the simple and easy code for like, and unlike system; I hope you guys like this. Please share your feedback in the comments. If you face any issue, please feel free to comment below.

Huzoor Bux: I am a PHP Developer

View Comments (1)

  • It's not working as expected. i have created all tables still when I click like it's not updating to like table.