Hello Friends in this tutorial we will develop like button by using PHP and Mysql. For demonstrate this feature I have put like button under Article title, user can like that article and one user can like only one time, if he like same article second time, then he will not like article. If you want to put this type of function in your current project then you can first learn how we can make this type of like button. If you are working in content management system and in that system you want to display popularity of any article like how many person has like that article, from this things you can display the popularity of that article. For this things you can put like button below that article for user can like that article. In this video I will explained how to implement like button system database design and web implementation with php and mysql. This is my simple like button script in which user can like multiple article only single time, if he again like that article then it will not able like that article. I have use simple php code with mysql query for inserting article like data like user id and article id into table. In this script we can display how many user has like particular article and we can also see the name of user who was like particular article.
Source Code
Database
--
-- Table structure for table `articles`
--
CREATE TABLE IF NOT EXISTS `articles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Dumping data for table `articles`
--
INSERT INTO `articles` (`id`, `title`) VALUES
(1, 'Ajax Jquery Drag and Drop Shopping Cart using PHP Mysql'),
(2, 'Make PHP Hashtag system by using Regular Expression'),
(3, 'Ajax Jquery Column Sort with PHP & MySql'),
(4, 'Drag and drop Upload multiples File By Ajax JQuery PHP');
-- --------------------------------------------------------
--
-- Table structure for table `article_likes`
--
CREATE TABLE IF NOT EXISTS `article_likes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` int(11) NOT NULL,
`article` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=46 ;
--
-- Dumping data for table `article_likes`
--
-- --------------------------------------------------------
--
-- Table structure for table `user`
--
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dumping data for table `user`
--
INSERT INTO `user` (`id`, `name`) VALUES
(1, 'john'),
(2, 'jack');
index.php
<?php
//index.php
session_start();
$_SESSION['user_id'] = (int)2;
$connect = mysqli_connect("localhost", "root", "", "like_button");
$query = "
SELECT articles.id, articles.title,
COUNT(article_likes.id) as likes,
GROUP_CONCAT(user.name separator '|') as liked
FROM
articles
LEFT JOIN article_likes
ON article_likes.article = articles.id
LEFT JOIN user
ON article_likes.user = user.id
GROUP BY articles.id
";
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_array($result))
{
echo '<h3>'.$row["title"].'</h3>';
echo '<a href="index.php?type=article&id='.$row["id"].'">Like</a>';
echo '<p>'.$row["likes"].' People like this</p>';
if(count($row["liked"]))
{
$liked = explode("|", $row["liked"]);
echo '<ul>';
foreach($liked as $like)
{
echo '<li>'.$like.'</li>';
}
echo '</ul>';
}
}
if(isset($_GET["type"], $_GET["id"]))
{
$type = $_GET["type"];
$id = (int)$_GET["id"];
if($type == "article")
{
$query = "
INSERT INTO article_likes (user, article)
SELECT {$_SESSION['user_id']}, {$id} FROM articles
WHERE EXISTS(
SELECT id FROM articles WHERE id = {$id}) AND
NOT EXISTS(
SELECT id FROM article_likes WHERE user = {$_SESSION['user_id']} AND article = {$id})
LIMIT 1
";
mysqli_query($connect, $query);
header("location:index.php");
}
}
?>
Cool, but can you make a button of dislike?
ReplyDeleteGood work please keep it up.
ReplyDeletethis is great.thanks for this tutorial. but i want php like system with ip address. how i can write code for this?
ReplyDeleteawesome!
ReplyDeletewhen we click on like page scroll up
ReplyDeletehow to stop scrolling on click
thank you
good luck))
ReplyDelete