Logo  

CS479/579 - Web Programming II

Displaying ./code/images/like.php

<?php
include "config.php";

$like = isset($_GET['like']);
$dislike = isset($_GET['dislike']);
$iid = isset($_GET['iid'])? (int)$_GET['iid'] : null;
if ($iid == null) {
  echo json_encode("fail");
  exit(0);
}
$res = "fail";

$myconn->query("lock tables img_image write");
try {
  $stmt = $myconn->prepare("select meta from img_image where iid=?");
  $stmt->bind_param("i", $iid);
  $stmt->bind_result($meta);
  $stmt->execute();
  $stmt->fetch();
  $stmt->close();
  
  $mdata = json_decode($meta, true);
  if ($like) {
    $mdata['likes']++;
    $res = $mdata['likes'];
  } else {
    $mdata['dislikes']++;
    $res = $mdata['dislikes'];
  }
  
  $meta = json_encode($mdata);

  $stmt = $myconn->prepare("update img_image set meta=? where iid=?");
  $stmt->bind_param("si", $meta, $iid);
  $stmt->execute();
  
} finally {
  $myconn->query("unlock tables");
}

echo json_encode($res);
?>