Я создаю веб-сайт социальной сети, например twitter, и хочу, чтобы пользователи получали уведомления, когда за ними следят, упоминают или кому-то нравится их твит, а он не работает
ниже мой код
сообщение. php
<?php
class Message extends User{
function __construct($pdo){
$this->pdo = $pdo;
}
public function notificationViewed($user_id){
$stmt = $this->pdo->prepare("UPDATE `notification` SET `status` = '1' WHERE `notificationFor` = :user_id");
$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
$stmt->execute();
}
public function notification($user_id){
$stmt = $this->pdo->prepare("
SELECT * FROM `notification` N
LEFT JOIN `users` U ON N.`notificationFrom` = U.`user_id`
LEFT JOIN `tweets` T ON N.`target` = T.`tweetID`
LEFT JOIN `likes` L ON N.`target` = L.`likeOn`
LEFT JOIN `follow` F ON N.`notificationFrom` = F.`sender` AND N.`notificationFor` = F.`receiver`
WHERE N.`notificationFor` = :user_id AND N.`notificationFrom` != :user_id");
$stmt->execute(array("user_id" => $user_id));
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
public function sendNotification($get_id, $user_id, $target, $type){
$this->create('notification', array('notificationFor' => $get_id, 'notificationFrom' => $user_id, 'target' => $target, 'type' => $type, 'time' => date('Y-m-d H:i:s')));
}
}
?>
ниже мой твит. php
<?php
class Tweet extends User {
function __construct($pdo){
$this->pdo = $pdo;
}
public function addLike($user_id, $tweet_id, $get_id){
$stmt = $this->pdo->prepare("UPDATE `tweets` SET `likesCount` = `likesCount` +1 WHERE `tweetID` = :tweet_id");
$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
$stmt->execute();
$this->create('likes', array('likeBy' => $user_id, 'likeOn' => $tweet_id));
if($get_id != $user_id){
Message::sendNotification($get_id, $user_id, $tweet_id, 'like');
}
}
public function retweet($tweet_id, $user_id, $get_id, $comment){
$stmt = $this->pdo->prepare("UPDATE `tweets` SET `retweetCount` = `retweetCount` +1 WHERE `tweetID` = :tweet_id");
$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
$stmt->execute();
$stmt = $this->pdo->prepare("INSERT INTO `tweets` (`status`,`tweetBy`,`tweetImage`,`retweetID`,`retweetBy`,`postedOn`,`likesCount`,`retweetCount`,`retweetMsg`) SELECT `status`,`tweetBy`,`tweetImage`,`tweetID`,:user_id,`postedOn`,`likesCount`,`retweetCount`,:retweetMsg FROM `tweets` WHERE `tweetID` = :tweet_id ");
$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
$stmt->bindParam(":retweetMsg", $comment, PDO::PARAM_STR);
$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
$stmt->execute();
Message::sendNotification($get_id, $user_id, $tweet_id, 'retweet');
}
}
?>
Кажется, я не понимаю, что не так с этим кодом, он не отправляет уведомление, и каждый раз, когда я нажимаю на значок уведомления после следующего, например, или упоминания пользователь, в уведомлении ничего не отображается. php