<?php
class EvaluationSystemDatabase extends DictionaryDatabaseHandler
{
function getConnection(){
return $this->connection;
}
public function likeWord($wordID)
{
$sql = "UPDATE `" . $this->database . "`.`" . TABLES::$dicDeFa . "` set plusRate=plusRate+1 where id = '$wordID'";
$this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
}
public function dislikeWord($wordID)
{
$sql = "UPDATE `" . $this->database . "`.`" . TABLES::$dicDeFa . "` set minusRate=minusRate+1 where id = '$wordID'";
$this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
}
public function likeWordInContribution($wordID)
{
$wordID = str_replace('c', '', $wordID);
$sql = "UPDATE `" . $this->database . "`.`" . TABLES::$dicDeFaContribution . "` set plusRate=plusRate+1 where id = '$wordID'";
$this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
}
public function dislikeWordInContribution($wordID)
{
$wordID = str_replace('c', '', $wordID);
$sql = "UPDATE `" . $this->database . "`.`" . TABLES::$dicDeFaContribution . "` set minusRate=minusRate+1 where id = '$wordID'";
$this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
}
function removeLikeWord($wordID)
{
$sql = "UPDATE " . TABLES::$dicDeFa . " set plusRate=plusRate-1 where wordID='" . $wordID . "'";
$this->getConnection()->query("SET NAMES utf8");
$result = $this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
return true;
}
function removeDislikeWord($wordID)
{
$sql = "UPDATE " . TABLES::$dicDeFa . " set minusRate=minusRate-1 where wordID='" . $wordID . "'";
$this->getConnection()->query("SET NAMES utf8");
$result = $this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
return true;
}
function hasLiked(User $user, $wordID)
{
$sql = "select plusRate from " . TABLES::$ratedWordsDeFa . " where userID like '" . $user->chatId . "' and wordID='" . $wordID . "' and plusRate=1 ";
$result = $this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
$result = mysqli_fetch_assoc($result);
if (isset($result['plusRate']))
return true;
else
return false;
}
function hasDisliked(User $user, $wordID)
{
$sql = "select minusRate from " . TABLES::$ratedWordsDeFa . " where userID like '" . $user->chatId . "' and wordID='" . $wordID . "' and minusRate=1 ";
$result = $this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
$result = mysqli_fetch_assoc($result);
if (isset($result['minusRate']))
return true;
else
return false;
}
function insertUserToRatedList(User $user, $wordID, $liked, $notLiked)
{
$sql = "insert into " . TABLES::$ratedWordsDeFa . " (wordID,userID,plusRate,minusRate) values('";
$sql .= $wordID . "','" . $user->chatId . "'," . $liked . "," . $notLiked . ")";
$this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
}
function removeUserFromRatedList(User $user, $wordID, $liked, $disliked)
{
$sql = "DELETE FROM " . TABLES::$ratedWordsDeFa . " ";
$sql .= "where userID like '" . $user->userID . "' and wordID ='" . $wordID . "' and plusRate=$liked and minusRate=$disliked";
$result = $this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql);
}
}
public function getTheNumberOfPlusAndMinusRateOfUser($userID) {
$sql = "SELECT sum(plusRate) as plus, sum(minusRate) as minus FROM `bayadic_dictionary_contribution_de_fa` WHERE `userID` LIKE '$userID'";
$result = $this->getConnection()->query($sql);
if(!empty($this->getConnection()->error)){
throw new Exception($sql.PHP_EOL.$this->getConnection()->error);
}
$result = mysqli_fetch_assoc($result);
$rate = $result['plus']-$result['minus'];
return $rate;
}
}