getConnection(); $stmt = $db->prepare(" INSERT INTO chat (user_sender, user_empfaenger, nachricht, gelesen) VALUES (?, ?, ?, 0) "); $stmt->bind_param("iis", $sender, $receiver, $message); $stmt->execute(); } public function getMessagesBetweenUsers($user1, $user2) { $db = Database::getInstance()->getConnection(); $stmt = $db->prepare(" SELECT * FROM chat WHERE (user_sender = ? AND user_empfaenger = ?) OR (user_sender = ? AND user_empfaenger = ?) ORDER BY id ASC "); $stmt->bind_param("iiii", $user1, $user2, $user2, $user1); $stmt->execute(); return $stmt->get_result()->fetch_all(MYSQLI_ASSOC); } public function markAsRead($sender, $receiver) { $db = Database::getInstance()->getConnection(); $stmt = $db->prepare(" UPDATE chat SET gelesen = 1 WHERE user_sender = ? AND user_empfaenger = ? "); $stmt->bind_param("ii", $sender, $receiver); $stmt->execute(); } public function getUnreadCounts($receiverId) { $db = Database::getInstance()->getConnection(); $stmt = $db->prepare(" SELECT user_sender, COUNT(*) AS unread FROM chat WHERE user_empfaenger = ? AND gelesen = 0 GROUP BY user_sender "); $stmt->bind_param("i", $receiverId); $stmt->execute(); $rows = $stmt->get_result()->fetch_all(MYSQLI_ASSOC); $out = []; foreach ($rows as $r) { $out[$r['user_sender']] = $r['unread']; } return $out; } }