Advertisement
michaelyuen

Untitled

May 31st, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.56 KB | None | 0 0
  1. <?php
  2. if (session_status() == PHP_SESSION_NONE) {
  3.   session_start();
  4. }
  5.    
  6. class Likes {
  7.  
  8.     public function __construct() {
  9.  
  10.         if(empty($_SESSION['id_user']) {
  11.             die("Session expired");
  12.         }
  13.  
  14.         $this->conn = new DB;
  15.     }
  16.  
  17.     public function hasLike($id_post, $id_user = $_SESSION['id_user']) {
  18.         $query = "SELECT status FROM likes WHERE `id_post` = $id_post AND `id_user` = $id_user";
  19.         if ($result->num_rows() === 1) {
  20.             return false; // no record found returns false
  21.         }
  22.         return $row->status; // user has liked post returns 1 user has unliked post returns 0;
  23.     }
  24.    
  25.     public function toggleLike($id_post, $id_user = $_SESSION['id_user']) {
  26.         // if user has liked post will become unliked. if user has unliked post will become liked
  27.         $query = "UPDATE table set status = 1 - $status WHERE `id_post` = $id_post AND `id_user` = $id_user";
  28.         if ($this->conn->query($query)->affected_rows === 1) {
  29.             return true;
  30.         }
  31.         return $conn->error;
  32.     }
  33.    
  34.     public function getTotal($id_post) {
  35.         $query = "SELECT count(id_post) as total FROM likes WHERE `id_post` = $id_post AND `status` = 1";
  36.         if ($result = $this->conn->query($query)) {
  37.             return $result->num_rows();
  38.         }
  39.     }
  40.    
  41.     public function getThree() {
  42.         $likes = [];
  43.         $query = "SELECT l.*, u.firstname FROM likes AS l LEFT JOIN users AS u ON l.id_user = u.id_user WHERE l.`id_post` = $id_post AND l.`status` = 1 LIMIT 3 ORDER by datetime DESC";
  44.         if ($result = $this->conn->query($query)) {
  45.             WHILE ($row = $result->fetch_assoc()) {
  46.                 $likes[] = array($id_user, $firstname);
  47.             }
  48.         }
  49.         return $likes;
  50.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement