push current stand
This commit is contained in:
@@ -27,6 +27,18 @@ class BenutzerModel extends Model {
|
||||
|
||||
public function getErrors() { return $this->errorArray; }
|
||||
|
||||
public function getAllUsersExcept($id)
|
||||
{
|
||||
$db = Database::getInstance()->getConnection();
|
||||
|
||||
$stmt = $db->prepare("SELECT id, vorname, nachname FROM user WHERE id != ?");
|
||||
$stmt->bind_param("i", $id);
|
||||
$stmt->execute();
|
||||
|
||||
return $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
|
||||
}
|
||||
|
||||
|
||||
// --- Registrierung ---
|
||||
public function insert() {
|
||||
$this->validate();
|
||||
|
||||
@@ -1,50 +1,70 @@
|
||||
<?php
|
||||
|
||||
class ChatModel {
|
||||
|
||||
public $senderID;
|
||||
public $empfaengerID;
|
||||
public $nachricht;
|
||||
|
||||
// Nachricht in DB speichern
|
||||
public function insert() {
|
||||
class ChatModel
|
||||
{
|
||||
public function insert($sender, $receiver, $message)
|
||||
{
|
||||
$db = Database::getInstance()->getConnection();
|
||||
|
||||
$stmt = $db->prepare("
|
||||
INSERT INTO chat (user_sender, user_empfaenger, nachricht)
|
||||
VALUES (?, ?, ?)
|
||||
INSERT INTO chat (user_sender, user_empfaenger, nachricht, gelesen)
|
||||
VALUES (?, ?, ?, 0)
|
||||
");
|
||||
if (!$stmt) {
|
||||
throw new Exception("Fehler beim Vorbereiten der DB-Anfrage: " . $db->error);
|
||||
}
|
||||
|
||||
$stmt->bind_param("iis", $this->senderID, $this->empfaengerID, $this->nachricht);
|
||||
if (!$stmt->execute()) {
|
||||
throw new Exception("Fehler beim Einfügen in die DB: " . $stmt->error);
|
||||
}
|
||||
|
||||
return true;
|
||||
$stmt->bind_param("iis", $sender, $receiver, $message);
|
||||
$stmt->execute();
|
||||
}
|
||||
|
||||
// Nachrichten zwischen zwei Usern abrufen
|
||||
public function getMessagesBetweenUsers($user1, $user2) {
|
||||
public function getMessagesBetweenUsers($user1, $user2)
|
||||
{
|
||||
$db = Database::getInstance()->getConnection();
|
||||
|
||||
$stmt = $db->prepare("
|
||||
SELECT * FROM chat
|
||||
WHERE (user_sender = ? AND user_empfaenger = ?)
|
||||
SELECT * FROM chat
|
||||
WHERE (user_sender = ? AND user_empfaenger = ?)
|
||||
OR (user_sender = ? AND user_empfaenger = ?)
|
||||
ORDER BY id ASC
|
||||
");
|
||||
|
||||
if (!$stmt) {
|
||||
throw new Exception("Fehler beim Vorbereiten der DB-Abfrage: " . $db->error);
|
||||
}
|
||||
|
||||
$stmt->bind_param("iiii", $user1, $user2, $user2, $user1);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
return $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
|
||||
}
|
||||
|
||||
return $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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user