Files
pagedev.pl/models/Notes.php
2026-01-29 21:08:01 +01:00

93 lines
2.4 KiB
PHP

<?php
class Notes
{
private $db;
public function __construct()
{
$this->db = Database::getInstance()->getConnection();
$this->initTable();
}
private function initTable()
{
// Tworzenie tabeli notatek jeśli nie istnieje
$sql = "CREATE TABLE IF NOT EXISTS notes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
title TEXT NOT NULL,
content TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
)";
try {
$this->db->exec($sql);
} catch (PDOException $e) {
// Tabela już istnieje
}
}
public function getAllByUser($userId)
{
$stmt = $this->db->prepare("
SELECT * FROM notes
WHERE user_id = ?
ORDER BY updated_at DESC
");
$stmt->execute([$userId]);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
public function getById($id, $userId)
{
$stmt = $this->db->prepare("
SELECT * FROM notes
WHERE id = ? AND user_id = ?
");
$stmt->execute([$id, $userId]);
return $stmt->fetch(PDO::FETCH_ASSOC);
}
public function create($userId, $title, $content)
{
$stmt = $this->db->prepare("
INSERT INTO notes (user_id, title, content)
VALUES (?, ?, ?)
");
return $stmt->execute([$userId, $title, $content]);
}
public function update($id, $userId, $title, $content)
{
$stmt = $this->db->prepare("
UPDATE notes
SET title = ?, content = ?, updated_at = CURRENT_TIMESTAMP
WHERE id = ? AND user_id = ?
");
return $stmt->execute([$title, $content, $id, $userId]);
}
public function delete($id, $userId)
{
$stmt = $this->db->prepare("
DELETE FROM notes
WHERE id = ? AND user_id = ?
");
return $stmt->execute([$id, $userId]);
}
public function getCount($userId)
{
$stmt = $this->db->prepare("
SELECT COUNT(*) as count FROM notes
WHERE user_id = ?
");
$stmt->execute([$userId]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result['count'];
}
}