{"id":4693,"date":"2017-11-01T05:14:39","date_gmt":"2017-11-01T05:14:39","guid":{"rendered":"http:\/\/a1webdesignteam.com\/blog\/?p=4693"},"modified":"2017-11-01T05:14:39","modified_gmt":"2017-11-01T05:14:39","slug":"facebook-like-reactions-using-php-mysql-and-jquery","status":"publish","type":"post","link":"https:\/\/a1webdesignteam.com\/blog\/facebook-like-reactions-using-php-mysql-and-jquery\/","title":{"rendered":"Facebook Like Reactions using PHP, MySQL and Jquery."},"content":{"rendered":"<div class=\"bigInt\">Just a few days before, Facebook has launched Reactions, an extension of Like button. I succeeded in implementing the same in my\u00a0<a href=\"http:\/\/www.thewallscript.com\/\" target=\"_blank\" rel=\"noopener\">WallScript 8<\/a>, Build Your Own Social Network. Here is a quick and easy way to implement the Reactions using PHP,Jquery and PDO MySQL. It\u2019s a basic idea of implementing the Reactions. Hope you enjoy the new Reactions for Like button..! Take a quick look at the live demo.<\/div>\n<p><span class=\"post-body entry-content\">\u00a0<\/span><\/p>\n<div class=\"cen\"><img class=\"sri650\" src=\"https:\/\/lh3.googleusercontent.com\/-01I08M-BFFI\/VwGyFNmFbdI\/AAAAAAAANwM\/-h1-pUqmM6IQ1dWgHmt76PdB4-KSaF80QCCo\/s650-Ic42\/reactions.png\" alt=\"Facebook Like Reactions using PHP, MySQL and Jquery. \" \/><\/div>\n<p><span class=\"post-body entry-content\"><br \/>\n<a name=\"more\"><\/a><br \/>\n<a id=\"downloadScript\" href=\"http:\/\/downloads.9lessons.info\/LikeReaction.zip\">Download Script<\/a>\u00a0\u00a0\u00a0\u00a0<a href=\"https:\/\/labs.9lessons.info\/\"><img src=\"https:\/\/lh6.ggpht.com\/_N9kpbq3FL74\/Sd31o5XF8hI\/AAAAAAAABg0\/104nWJR7wro\/live.png\" alt=\"\" align=\"absMiddle\" border=\"0\" \/>\u00a0Live Demo<\/a><\/p>\n<p><b>Database Design<\/b><br \/>\nTo build the message like reaction system, you have to create four tables such as\u00a0<i>Users<\/i>,\u00a0<i>Messages, Message_Like<\/i>\u00a0and\u00a0<i>Reactions<\/i>. This following image generated by using Mysql Workbench tool.<\/p>\n<p><\/span><\/p>\n<div class=\"big\">Users Table<\/div>\n<p><span class=\"post-body entry-content\">User table contains all the users registration details.<br \/>\n<\/span><\/p>\n<div class=\"code\">CREATE TABLE `<b>users<\/b>` (<br \/>\n`uid` int NOT NULL\u00a0PRIMARY KEY\u00a0AUTO_INCREMENT\u00a0,<br \/>\n`username` varchar(25) NOT NULL UNIQUE,<br \/>\n`password` varchar(50) NOT NULL ,<br \/>\n`email` varchar(100) NOT NULL,<br \/>\n`name` varchar(100) NOT NULL,<br \/>\n`profile_pic` varchar(200) NOT NULL,<br \/>\n);<\/div>\n<p><span class=\"post-body entry-content\"><br \/>\nData will store in following way, here the password data\u00a0PHP login script with PDO and HASH encryption.<\/p>\n<p><b>Users<\/b><br \/>\n<\/span><\/p>\n<div class=\"cen\"><img class=\"sri650\" src=\"https:\/\/lh3.googleusercontent.com\/-B7hs2xeeh3g\/VvLteAaa3vI\/AAAAAAAANvc\/UzzQoQZEIWcpmIlI9MNN0ORTUrjnXGMqACCo\/s800-Ic42\/users.png\" alt=\"Facebook Reactions using PHP, MySQL and Jquery.  \" \/><\/div>\n<p><span class=\"post-body entry-content\">\u00a0<\/span><\/p>\n<div class=\"cen\"><img class=\"sri\" src=\"https:\/\/lh3.googleusercontent.com\/-f57Xc8QZgXM\/VwHDGk_PQuI\/AAAAAAAANwk\/C_BMHjIqIMcQsRJzVXU0ZDDnUGW57wItwCCo\/s640-Ic42\/users.png\" \/><\/div>\n<p><span class=\"post-body entry-content\">\u00a0<\/span><\/p>\n<div class=\"big\">Messages Table<\/div>\n<p><span class=\"post-body entry-content\">This table contains user status messages data. Here\u00a0<i>uid_fk<\/i>\u00a0\u00a0is the FOREIGN KEY to REFERENCES\u00a0<i>users.uid<\/i><br \/>\n<\/span><\/p>\n<div class=\"code\">CREATE TABLE \u00a0 `<b>messages<\/b>` (<br \/>\n`msg_id` int(11) NOT NULL\u00a0PRIMARY KEY\u00a0AUTO_INCREMENT,<br \/>\n`message` varchar(200) NOT NULL,<br \/>\n`uid_fk` int(11) NOT NULL,<br \/>\n`like_count` int(11) DEFAULT NULL,<br \/>\n`created` int(11) DEFAULT NULL,<br \/>\nFOREIGN KEY\u00a0(uid_fk)\u00a0REFERENCES\u00a0<b>users<\/b>(uid)<br \/>\n);<\/div>\n<p><span class=\"post-body entry-content\"><br \/>\n<b>Messages<\/b><br \/>\n<\/span><\/p>\n<div class=\"cen\"><img class=\"sri650\" src=\"https:\/\/lh3.googleusercontent.com\/-7pUIQuj-KTs\/VvLtd9MgkjI\/AAAAAAAANvc\/LQwsXj-OBo0CDX9TgTnfTVVgJkh3YtCjACCo\/s800-Ic42\/messages.png\" alt=\"Facebook Reactions using PHP, MySQL and Jquery.  \" \/><\/div>\n<p><span class=\"post-body entry-content\">\u00a0<\/span><\/p>\n<div class=\"cen\"><img class=\"sri\" src=\"https:\/\/lh3.googleusercontent.com\/-hUGMi8SlnYE\/VwHDFfB7aGI\/AAAAAAAANws\/ERHiyGmNTj0WX60zy9SxrWLIDTCfvkeIgCCo\/s640-Ic42\/message.png\" \/><\/div>\n<p><span class=\"post-body entry-content\">\u00a0<\/span><\/p>\n<div class=\"big\">Reactions Table<\/div>\n<p><span class=\"post-body entry-content\">This table contains reaction data names.<br \/>\n<\/span><\/p>\n<div class=\"code\">CREATE TABLE\u00a0<b>reactions<\/b>(<br \/>\n&#8216;rid&#8217; INT\u00a0NOT NULL\u00a0PRIMARY KEY\u00a0AUTO_INCREMENT,<br \/>\n&#8216;name&#8217; VARCHAR(45) NOT NULL<br \/>\n);<\/div>\n<p><span class=\"post-body entry-content\"><br \/>\n<b>Reactions<\/b><br \/>\n<\/span><\/p>\n<div class=\"cen\"><img class=\"sri650\" src=\"https:\/\/lh3.googleusercontent.com\/-xbjycuWJVXY\/VvLtdzFI0mI\/AAAAAAAANvc\/eSclj1tzKoMIMbmAn1kIAj22fmjQcJjXACCo\/s800-Ic42\/reactions.png\" alt=\"Facebook Reactions using PHP, MySQL and Jquery.  \" \/><\/div>\n<p><span class=\"post-body entry-content\">\u00a0<\/span><\/p>\n<div><img src=\"https:\/\/lh3.googleusercontent.com\/-QgSyRcqK53Q\/VwHDHNr2SDI\/AAAAAAAANwo\/JT6ljEX6s0clqLbcAuhT7OTwNiSQOmEswCCo\/s280-Ic42\/reactions.png\" \/><\/div>\n<p><span class=\"post-body entry-content\">\u00a0<\/span><\/p>\n<div class=\"big\">Message Like Table<\/div>\n<p><span class=\"post-body entry-content\">Contains all user message likes relation data. Here\u00a0<i>uid_fk<\/i>\u00a0is FOREIGN KEY to REFERENCES\u00a0<i>users.uid, r<\/i><i>id_fk<\/i>\u00a0is FOREIGN KEY to REFERENCES\u00a0<i>reactions.rid\u00a0<\/i>and\u00a0<i>msg_id_fk<\/i>\u00a0is FOREIGN KEY to REFERENCES\u00a0<i>messages.msg_id<\/i><br \/>\n<\/span><\/p>\n<div class=\"code\">CREATE TABLE `<b>message_like<\/b>` (<br \/>\n`like_id` int(11) NOT NULL\u00a0PRIMARY KEY\u00a0AUTO_INCREMENT,<br \/>\n`msg_id_fk` int(11),<br \/>\n`uid_fk` int(11) NOT NULL,<br \/>\n`created` int(11) NOT NULL,<br \/>\n`rid_fk` int(11) NOT NULL,<br \/>\nFOREIGN KEY\u00a0(uid_fk)\u00a0REFERENCES\u00a0<b>users<\/b>(uid),<br \/>\nFOREIGN KEY\u00a0(msg_id_fk)\u00a0REFERENCES\u00a0<b>messages<\/b>(msg_id),<br \/>\nFOREIGN KEY\u00a0(rid_fk)\u00a0REFERENCES\u00a0<b>reactions<\/b>(rid)<br \/>\n);<\/div>\n<p><span class=\"post-body entry-content\"><br \/>\n<b>message_like<\/b><br \/>\n<\/span><\/p>\n<div class=\"cen\"><img class=\"sri650\" src=\"https:\/\/lh3.googleusercontent.com\/-0uwI5N-hyM0\/VvLtd8q76PI\/AAAAAAAANvc\/uqFovraz-zIPOGs0AnrH28i9M9cVbEh_wCCo\/s800-Ic42\/messagelike.png\" alt=\"Facebook Reactions using PHP, MySQL and Jquery.  \" \/><\/div>\n<p><span class=\"post-body entry-content\">\u00a0<\/span><\/p>\n<div><img class=\"sri\" src=\"https:\/\/lh3.googleusercontent.com\/-rX8VkIctoC8\/VwHDFRl3nRI\/AAAAAAAANws\/T7Ej2Oa9U1AuhSwqnpJ3A-ZVmwYckpOAACCo\/s400-Ic42\/message_like.png\" \/><\/div>\n<p><span class=\"post-body entry-content\"><br \/>\n<b>JavaScript Libraries<\/b><br \/>\nYou have to include following JavaScript libraries. I have modified jquery tooltipster plugin for reactions popup.<br \/>\n<\/span><\/p>\n<div class=\"code\">&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text\/css&#8221; href=&#8221;css\/tooltipsterReaction.css&#8221;&gt;<br \/>\n&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text\/css&#8221; href=&#8221;css\/tipsy.css&#8221;&gt;<br \/>\n&lt;script src=&#8221;js\/jquery.min.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script src=&#8221;js\/jquery.livequery.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script src=&#8221;js\/jquery.tooltipsterReaction.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script src=&#8221;js\/jquery.tipsy.js&#8221;&gt;&lt;\/script&gt;<\/div>\n<p><span class=\"post-body entry-content\"><br \/>\n<b>Jquery Code<\/b><br \/>\nApplying reaction tooltipster to the anchor tag. Tipsy plugin for reaction name tool tip.<br \/>\n<\/span><\/p>\n<div class=\"code\">$(document).ready(<b>function<\/b>()<br \/>\n{<br \/>\n\/\/Black tooltip for reaction icons.<br \/>\n$(&#8220;.likeTypeAction&#8221;).tipsy({gravity: &#8216;s&#8217;,live:\u00a0true});<\/p>\n<p>\/\/Reactions popup on mouseover<br \/>\n$(&#8220;.reaction&#8221;).livequery(<b>function<\/b>\u00a0()<br \/>\n{<br \/>\n\/\/Reactions HTML Content<br \/>\n<b>var<\/b>\u00a0reactionsCode='&lt;span class=&#8221;likeTypeAction&#8221; original-title=&#8221;Like&#8221; data-reaction=&#8221;1&#8243;&gt;&lt;i class=&#8221;likeIcon likeType&#8221;&gt;&lt;\/i&gt;&lt;\/span&gt;&#8217;+<br \/>\n&#8216;&lt;span class=&#8221;likeTypeAction&#8221; original-title=&#8221;Love&#8221; data-reaction=&#8221;2&#8243;&gt;&lt;i class=&#8221;loveIcon\u00a0likeType&#8221;&gt;&lt;\/i&gt;&lt;\/span&gt;&#8217;+<br \/>\n&#8216;&lt;span class=&#8221;likeTypeAction&#8221; original-title=&#8221;Haha&#8221; data-reaction=&#8221;3&#8243;&gt;&lt;i class=&#8221;hahaIcon\u00a0likeType&#8221;&gt;&lt;\/i&gt;&lt;\/span&gt;&#8217;+<br \/>\n&#8216;&lt;span class=&#8221;likeTypeAction&#8221; original-title=&#8221;Wow&#8221; data-reaction=&#8221;4&#8243;&gt;&lt;i class=&#8221;wowIcon\u00a0likeType&#8221;&gt;&lt;\/i&gt;&lt;\/span&gt;&#8217;+<br \/>\n&#8216;&lt;span class=&#8221;likeTypeAction&#8221; original-title=&#8221;Cool&#8221; data-reaction=&#8221;5&#8243;&gt;&lt;i class=&#8221;coolIcon\u00a0likeType&#8221;&gt;&lt;\/i&gt;&lt;\/span&gt;&#8217;+<br \/>\n&#8216;&lt;span class=&#8221;likeTypeAction&#8221; original-title=&#8221;Confused&#8221; data-reaction=&#8221;6&#8243;&gt;&lt;i class=&#8221;confusedIcon\u00a0likeType&#8221;&gt;&lt;\/i&gt;&lt;\/span&gt;&#8217;+<br \/>\n&#8216;&lt;span class=&#8221;likeTypeAction&#8221; original-title=&#8221;Sad&#8221; data-reaction=&#8221;7&#8243;&gt;&lt;i class=&#8221;sadIcon\u00a0likeType&#8221;&gt;&lt;\/i&gt;&lt;\/span&gt;&#8217;+<br \/>\n&#8216;&lt;span class=&#8221;likeTypeAction last&#8221; original-title=&#8221;Angry&#8221; data-reaction=&#8221;8&#8243;&gt;&lt;i class=&#8221;angryIcon\u00a0likeType&#8221;&gt;&lt;\/i&gt;&lt;\/span&gt;&#8217;;<\/p>\n<p>$(this).tooltipster({<br \/>\ncontentAsHTML:\u00a0true,<br \/>\ninteractive:\u00a0true,<br \/>\ncontent: $(reactionsCode),<br \/>\n});<br \/>\n});<\/p>\n<p>$(&#8220;body&#8221;).on(&#8220;click&#8221;,&#8221;.likeTypeAction&#8221;,<b>function<\/b>()<br \/>\n{<br \/>\n&#8230;&#8230;.<br \/>\n&#8230;&#8230;.<br \/>\n}<\/p>\n<p>$(&#8220;body&#8221;).on(&#8220;click&#8221;,&#8221;.unLike&#8221;,<b>function<\/b>()<br \/>\n{<br \/>\n&#8230;&#8230;.<br \/>\n&#8230;&#8230;.<br \/>\n}<br \/>\n});<br \/>\n\/\/HTML Code<br \/>\n&lt;a href=&#8221;#&#8221; class=&#8221;reaction&#8221; id=&#8221;like203&#8243; rel=&#8221;like&#8221;&gt;<br \/>\n&lt;i class=&#8221;likeIconDefault&#8221; &gt;&lt;\/i&gt;Like&lt;\/a&gt;<\/div>\n<p><span class=\"post-body entry-content\"><br \/>\n<b>CSS Code<\/b><br \/>\nI have implemented image sprite.<br \/>\n<\/span><\/p>\n<div class=\"code\">.likeType\u00a0{<br \/>\nbackground-image: url(&#8216;..\/images\/like_types.png&#8217;);<br \/>\nbackground-size: 100%;<br \/>\ndisplay: block;<br \/>\nheight: 40px;<br \/>\nimage-rendering: crisp-edges;<br \/>\nline-height: 1;<br \/>\nwidth: 40px;<br \/>\ncursor: pointer;<br \/>\n}<br \/>\n.angryIcon\u00a0{<br \/>\nbackground-position: 0px 0px;<br \/>\n}<br \/>\n.confusedIcon\u00a0{<br \/>\nbackground-position: 0px -40px;<br \/>\n}<br \/>\n.hahaIcon\u00a0{<br \/>\nbackground-position: 0px -80px;<br \/>\n}<br \/>\n.likeIcon\u00a0{<br \/>\nbackground-position: 0px -120px<br \/>\n}<br \/>\n.loveIcon\u00a0{<br \/>\nbackground-position:0px -160px;<br \/>\n}<br \/>\n.sadIcon\u00a0{<br \/>\nbackground-position: 0px -200px;<br \/>\n}<br \/>\n.wowIcon\u00a0{<br \/>\nbackground-position: 0px -240px;<br \/>\n}<br \/>\n.coolIcon\u00a0{<br \/>\nbackground-position: 0px -280px;<br \/>\n}<br \/>\n.likeTypeAction{float: left; margin-right: 8px; cursor: pointer;}<\/div>\n<p><span class=\"post-body entry-content\"><br \/>\n<b>Like Ajax<\/b><br \/>\nContains javascript code.\u00a0<i>$(&#8220;body&#8221;).on(&#8216;click&#8217;,&#8217;.likeTypeAction&#8217;, function(){}<\/i>&#8211; here\u00a0<i>likeTypeAction<\/i>\u00a0is the class name of the reaction icon tag. Using $(this).parent().parent().attr(&#8220;id&#8221;) calling icon tag message ID value.<br \/>\n<\/span><\/p>\n<div class=\"code\">\/*Reaction*\/<br \/>\n$(&#8220;body&#8221;).on(&#8220;click&#8221;,&#8221;.likeTypeAction&#8221;,<b>function<\/b>()<br \/>\n{<br \/>\nvar\u00a0reactionType=$(this).attr(&#8220;data-reaction&#8221;);<br \/>\nvar\u00a0reactionName=$(this).attr(&#8220;original-title&#8221;);<br \/>\nvar\u00a0rel=$(this).parent().parent().attr(&#8220;rel&#8221;);<br \/>\nvar\u00a0x=$(this).\u00a0parent().parent().attr(&#8220;id&#8221;);<br \/>\nvar\u00a0sid=x.split(&#8220;reaction&#8221;);<br \/>\nvar\u00a0msg_id=sid[1];<\/p>\n<p>var\u00a0htmlData='&lt;i class=&#8221;&#8216;+reactionName.toLowerCase()+&#8217;IconSmall likeTypeSmall&#8221; &gt;&lt;\/i&gt;&#8217;+reactionName+'&lt;\/a&gt;&#8217;;<br \/>\nvar\u00a0dataString = &#8216;msg_id=&#8217;+ msg_id +&#8217;&amp;rid=&#8217;+reactionType;<\/p>\n<p>$.ajax({<br \/>\ntype: &#8220;POST&#8221;,<br \/>\nurl: &#8216;ajaxReaction.php&#8217;,<br \/>\ndata: dataString,<br \/>\ncache:\u00a0false,<br \/>\nbeforeSend:\u00a0<b>function<\/b>(){},<br \/>\nsuccess:\u00a0<b>function<\/b>(html)<br \/>\n{<br \/>\nif(parseInt(html)==1)<br \/>\n{<br \/>\n$(&#8220;#like&#8221;+msg_id).html(htmlData).removeClass(&#8216;reaction&#8217;).removeClass(&#8216;tooltipstered&#8217;).addClass(&#8216;unLike&#8217;).attr(&#8216;rel&#8217;,&#8217;unlike&#8217;);<br \/>\n$(&#8220;#&#8221;+x).hide();<br \/>\n}<br \/>\n}<br \/>\n});<\/p>\n<p>return\u00a0false;<br \/>\n});<\/p><\/div>\n<p><span class=\"post-body entry-content\"><br \/>\n<b>Unlike Ajax<\/b><br \/>\nContains javascript code.\u00a0<i>$(&#8220;body&#8221;).on(&#8216;click&#8217;,&#8217;.unLike&#8217;, function(){}<\/i>&#8211; here\u00a0<i>unLike<\/i>\u00a0is the class name of the unlike anchor tag. Using $(this).attr(&#8220;id&#8221;) calling anchor tag message ID value.<br \/>\n<\/span><\/p>\n<div class=\"code\">$(&#8220;body&#8221;).on(&#8220;click&#8221;,&#8221;.unLike&#8221;,<b>function<\/b>()<br \/>\n{<br \/>\nvar\u00a0reactionType=&#8217;1&#8242;;<br \/>\nvar\u00a0x=$(this).attr(&#8220;id&#8221;);<br \/>\nvar\u00a0sid=x.split(&#8220;like&#8221;);<br \/>\nvar\u00a0msg_id=sid[1];<br \/>\nvar\u00a0dataString = &#8216;msg_id=&#8217;+ msg_id +&#8217;&amp;rid=&#8217;+reactionType;<br \/>\nvar\u00a0htmlData='&lt;i class=&#8221;likeIconDefault&#8221; &gt;&lt;\/i&gt;Like&lt;\/a&gt;&#8217;;<br \/>\n$.ajax({<br \/>\ntype: &#8220;POST&#8221;,<br \/>\nurl: &#8216;ajaxReaction.php&#8217;,<br \/>\ndata: dataString,<br \/>\ncache: false,<br \/>\nbeforeSend:\u00a0<b>function<\/b>(){},<br \/>\nsuccess:\u00a0<b>function<\/b>(html)<br \/>\n{<br \/>\nif(parseInt(html)==2)<br \/>\n{<br \/>\n$(&#8220;#like&#8221;+msg_id).html(htmlData).addClass(&#8216;reaction&#8217;).addClass(&#8216;tooltipstered&#8217;).removeClass(&#8216;unLike&#8217;);<br \/>\n}<br \/>\n}<br \/>\n});<\/p>\n<p>return\u00a0false;<br \/>\n});<\/p><\/div>\n<p><span class=\"post-body entry-content\"><\/p>\n<p><b>index.php<\/b><br \/>\nContains PHP and HTML code, displaying all of the user updates by calling\u00a0<i>$feed-&gt;newsFeed();<\/i><br \/>\n<\/span><\/p>\n<div class=\"code\"><b>&lt;?php<\/b><br \/>\ninclude_once\u00a0&#8216;config.php&#8217;;<br \/>\n$feedData=$feed-&gt;newsFeed();<br \/>\n<b>?&gt;<\/b><br \/>\n&lt;!DOCTYPE html &gt;<br \/>\n&lt;html&gt;<br \/>\n&lt;head&gt;<br \/>\n&lt;!&#8211; JavaScript CSS &#8211;&gt;<br \/>\n&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text\/css&#8221; href=&#8221;css\/tooltipsterReaction.css&#8221;&gt;<br \/>\n&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text\/css&#8221; href=&#8221;css\/tipsy.css&#8221;&gt;<br \/>\n&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text\/css&#8221; href=&#8221;css\/app.css&#8221;&gt;<br \/>\n&lt;script src=&#8221;js\/jquery.min.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script src=&#8221;js\/jquery.livequery.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script src=&#8221;js\/jquery.tooltipsterReaction.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script src=&#8221;js\/jquery.tipsy.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script src=&#8221;js\/app.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;!&#8211; JavaScript CSS End &#8211;&gt;<br \/>\n&lt;\/head&gt;<br \/>\n&lt;body&gt;<br \/>\n<b>&lt;?php<\/b><br \/>\nforeach($feedData as $data)<br \/>\n{<br \/>\n<b>?&gt;<\/b><br \/>\n&lt;div class=&#8221;messageBody&#8221; id=&#8221;msg<b>&lt;?php\u00a0<\/b>echo\u00a0$data-&gt;msg_id;\u00a0<b>?&gt;<\/b>&#8220;&gt;<br \/>\n&lt;img src=&#8221;<b>&lt;?php\u00a0<\/b>echo\u00a0$data-&gt;profile_pic;\u00a0<b>?&gt;<\/b>&#8221; class=&#8221;messageImg&#8221;\/&gt;<br \/>\n&lt;b&gt;&lt;a href=&#8221;<b>&lt;?php\u00a0<\/b>echo\u00a0BASE_URL.$data-&gt;username;\u00a0<b>?&gt;<\/b>&#8220;&gt;<b>&lt;?php\u00a0<\/b>echo\u00a0$data-&gt;name;\u00a0<b>?&gt;<\/b>&lt;\/a&gt;&lt;\/b&gt;<br \/>\n<b>&lt;?php\u00a0<\/b>echo\u00a0$data-&gt;message; ?&gt;<br \/>\n&lt;div class=&#8221;messageFooter&#8221;&gt;<br \/>\n&lt;a href=&#8221;#&#8221; class=&#8221;reaction&#8221; id=&#8221;like<b>&lt;?php\u00a0<\/b>echo\u00a0$data-&gt;msg_id; ?&gt;&#8221; rel=&#8221;like&#8221;&gt;<br \/>\n&lt;i class=&#8221;likeIconDefault&#8221; &gt;&lt;\/i&gt;Like&lt;\/a&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;\/div&gt;<br \/>\n<b>&lt;?php<\/b>\u00a0}\u00a0?&gt;<br \/>\n&lt;\/body&gt;<br \/>\n&lt;\/html&gt;<\/div>\n<p><span class=\"post-body entry-content\"><\/p>\n<p><b>config.php<\/b><br \/>\nDatabase configuration file, modify username, password and database values. Enable\u00a0<i>PDO extension<\/i>\u00a0for PHP<br \/>\n<\/span><\/p>\n<div class=\"code\"><b>&lt;?php<\/b><br \/>\nsession_start();<br \/>\ndefine(&#8216;DB_SERVER&#8217;, &#8216;localhost&#8217;);<br \/>\ndefine(&#8216;DB_USERNAME&#8217;, &#8216;username&#8217;);<br \/>\ndefine(&#8216;DB_PASSWORD&#8217;, &#8216;password&#8217;);<br \/>\ndefine(&#8216;DB_DATABASE&#8217;, &#8216;Reations&#8217;);<br \/>\ndefine(&#8220;BASE_URL&#8221;, &#8220;http:\/\/www.yourwebsite.com\/&#8221;);<\/p>\n<p><b>function<\/b>\u00a0getDB()<br \/>\n{<br \/>\n$dbhost=\u00a0DB_SERVER;<br \/>\n$dbuser=\u00a0DB_USERNAME;<br \/>\n$dbpass=\u00a0DB_PASSWORD;<br \/>\n$dbname=\u00a0DB_DATABASE;<br \/>\n$dbConnection =\u00a0new\u00a0PDO(&#8220;mysql:host=$dbhost;dbname=$dbname&#8221;, $dbuser, $dbpass);<br \/>\n$dbConnection-&gt;exec(&#8220;set names utf8&#8221;);\u00a0\/\/utf-8 support<br \/>\n$dbConnection-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);<br \/>\nreturn\u00a0$dbConnection;<br \/>\n}<\/p>\n<p>include_once\u00a0&#8216;feed.php&#8217;;<br \/>\n$feed =\u00a0new\u00a0feed();<br \/>\n<b>?&gt;<\/b><\/div>\n<p><span class=\"post-body entry-content\"><\/p>\n<p><b>ajaxReaction.php<\/b><br \/>\nAjax post file for updating user reactions.<br \/>\n<\/span><\/p>\n<div class=\"code\"><b>&lt;?php\u00a0<\/b><br \/>\ninclude_once\u00a0&#8216;config.php&#8217;;<br \/>\n$feedData=$feed-&gt;newsFeed();<br \/>\n$sessions_uid=$_SESSION[&#8216;uid&#8217;];<br \/>\nif($_POST[&#8216;msg_id&#8217;]\u00a0&amp;&amp;\u00a0$_POST[&#8216;rid&#8217;]\u00a0&amp;&amp;\u00a0$session_uid&gt;0)<br \/>\n{<br \/>\n$msg_id=$_POST[&#8216;msg_id&#8217;];<br \/>\n$rid=$_POST[&#8216;rid&#8217;];<br \/>\n$data=$feed-&gt;userReaction($session_uid,$msg_id,$rid);<br \/>\necho\u00a0$data;<br \/>\n}<br \/>\n<b>?&gt;<\/b><\/div>\n<p><span class=\"post-body entry-content\"><\/p>\n<p><b>feed.php<\/b><br \/>\nContains simple PHP code to update user reaction data, this will get all users update. You have to modify based on your session id.<br \/>\n<\/span><\/p>\n<div class=\"code\"><b>&lt;?php<\/b><br \/>\nclass\u00a0feed<br \/>\n{<br \/>\n\/* News Feed Data *\/<br \/>\npublic\u00a0<b>function<\/b>\u00a0newsFeed()<br \/>\n{<br \/>\n$db =\u00a0getDB();<br \/>\n$stmt = $db-&gt;prepare(&#8220;SELECT U.uid, U.name, U.username,U.profile_pic, M.msg_id, M.message, M.created, M.like_count FROM users U,messages M WHERE U.uid=M.uid_fk ORDER BY M.msg_id DESC&#8221;);<br \/>\n$stmt-&gt;execute();<br \/>\n$data = $stmt-&gt;fetchAll(PDO::FETCH_OBJ);<br \/>\n$db = null;<br \/>\nreturn\u00a0$data;<br \/>\n}<\/p>\n<p>\/* User Reaction Check *\/<br \/>\npublic\u00a0<b>function<\/b>\u00a0reactionCheck($uid, $msg_id)<br \/>\n{<br \/>\n$db =\u00a0getDB();<br \/>\n$stmt = $db-&gt;prepare(&#8220;SELECT L.like_id, R.name FROM message_like L, reactions R WHERE R.rid=L.rid_fk AND L.uid_fk=:uid\u00a0AND L.msg_id_fk=:msg_id&#8221;);<br \/>\n$stmt-&gt;bindValue(&#8216;:uid&#8217;, $uid,\u00a0PDO::PARAM_INT);<br \/>\n$stmt-&gt;bindValue(&#8216;:msg_id&#8217;, $msg_id,\u00a0PDO::PARAM_INT);<br \/>\n$stmt-&gt;execute();<br \/>\n$data= $stmt-&gt;fetch(PDO::FETCH_OBJ);<br \/>\n$db = null;<br \/>\nreturn\u00a0$data;<br \/>\n}<\/p>\n<p>\/* News Feed Data *\/<br \/>\npublic\u00a0<b>function<\/b>\u00a0userReaction($uid,$msg_id,$rid)<br \/>\n{<br \/>\n$db =\u00a0getDB();<br \/>\n$stmt1 = $db-&gt;prepare(&#8220;SELECT like_id FROM message_like WHERE uid_fk=:uid AND msg_id_fk=:msg_id&#8221;);<br \/>\n$stmt1-&gt;bindValue(&#8216;:uid&#8217;, $uid,\u00a0PDO::PARAM_INT);<br \/>\n$stmt1-&gt;bindValue(&#8216;:msg_id&#8217;, $msg_id,\u00a0PDO::PARAM_INT);<br \/>\n$stmt1-&gt;execute();<br \/>\n$count=$stmt1-&gt;rowCount();<\/p>\n<p>if($count &gt; 0)<br \/>\n{<br \/>\n$stmt = $db-&gt;prepare(&#8220;DELETE FROM message_like WHERE uid_fk=:uid AND msg_id_fk=:msg_id&#8221;);<br \/>\n$stmt-&gt;bindValue(&#8216;:uid&#8217;, $uid,\u00a0PDO::PARAM_INT);<br \/>\n$stmt-&gt;bindValue(&#8216;:msg_id&#8217;, $msg_id,\u00a0PDO::PARAM_INT);<br \/>\n$stmt-&gt;execute();<br \/>\n$db = null;<br \/>\nreturn\u00a02;<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\n$stmt = $db-&gt;prepare(&#8220;INSERT INTO message_like (msg_id_fk, uid_fk, created, rid_fk) VALUES (:msg_id, :uid, :created, :rid)&#8221;);<br \/>\n$stmt-&gt;bindValue(&#8216;:uid&#8217;, $uid,\u00a0PDO::PARAM_INT);<br \/>\n$stmt-&gt;bindValue(&#8216;:msg_id&#8217;, $msg_id,\u00a0PDO::PARAM_INT);<br \/>\n$created=time();<br \/>\n$stmt-&gt;bindValue(&#8216;:created&#8217;, $created,\u00a0PDO::PARAM_INT);<br \/>\n$stmt-&gt;bindValue(&#8216;:rid&#8217;, $rid,\u00a0PDO::PARAM_INT);<br \/>\n$stmt-&gt;execute();<br \/>\n$db = null;<br \/>\nreturn\u00a01;<br \/>\n}<\/p>\n<p>}<br \/>\n}<br \/>\n<b>?&gt;<\/b><\/div>\n<div id=\"survey\">\n<div id=\"surveyBlock\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Just a few days before, Facebook has launched Reactions, an extension of Like button. I succeeded in implementing the same in my\u00a0WallScript 8, Build Your Own Social Network. Here is a quick and easy way to implement the Reactions using PHP,Jquery and PDO MySQL. It\u2019s a basic idea of implementing the Reactions. Hope you enjoy [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4694,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[30],"tags":[51],"_links":{"self":[{"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/posts\/4693"}],"collection":[{"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/comments?post=4693"}],"version-history":[{"count":0,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/posts\/4693\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/media\/4694"}],"wp:attachment":[{"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/media?parent=4693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/categories?post=4693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/a1webdesignteam.com\/blog\/wp-json\/wp\/v2\/tags?post=4693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}