Files
12IT_Lernfeld12_2026/Abgabe_Mohr/model/ChatModel.php
T
2025-12-05 08:37:52 +01:00

71 lines
1.8 KiB
PHP

<?php
class ChatModel
{
public function insert($sender, $receiver, $message)
{
$db = Database::getInstance()->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;
}
}