103 lines
3.4 KiB
PHP
103 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace Blog\Model;
|
|
|
|
use PDOException;
|
|
|
|
class EventModel extends Database {
|
|
|
|
public function getEvents() {
|
|
$pdo = $this->linkDB();
|
|
$sql = "SELECT * FROM event ORDER BY start_date ASC;";
|
|
try {
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute();
|
|
return $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
|
} catch (PDOException $e) {
|
|
new \Blog\Library\ErrorMsg("Fehler beim Lesen der Events.", $e);
|
|
die;
|
|
}
|
|
}
|
|
|
|
public function getEvent($id) {
|
|
$pdo = $this->linkDB();
|
|
$sql = "SELECT * FROM event WHERE event_id = :event_id;";
|
|
$params = [":event_id" => $id];
|
|
try {
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute($params);
|
|
return $stmt->fetch(\PDO::FETCH_ASSOC);
|
|
} catch (PDOException $e) {
|
|
new \Blog\Library\ErrorMsg("Fehler beim Lesen des Events.", $e);
|
|
die;
|
|
}
|
|
}
|
|
|
|
public function updateEvent($id, $data) {
|
|
$pdo = $this->linkDB();
|
|
$sql = "UPDATE event SET
|
|
name = :name,
|
|
description = :description,
|
|
location_id = :location_id,
|
|
start_date = :start_date,
|
|
end_date = :end_date,
|
|
max_tickets = :max_tickets,
|
|
ticket_price = :ticket_price
|
|
WHERE event_id = :event_id;";
|
|
$params = [
|
|
":name" => $data['name'],
|
|
":description" => $data['description'],
|
|
":location_id" => $data['location_id'],
|
|
":start_date" => $data['start_date'],
|
|
":end_date" => $data['end_date'],
|
|
":max_tickets" => $data['max_tickets'],
|
|
":ticket_price" => $data['ticket_price'],
|
|
":event_id" => $id
|
|
];
|
|
try {
|
|
$sth = $pdo->prepare($sql);
|
|
$sth->execute($params);
|
|
return $sth;
|
|
} catch (PDOException $e) {
|
|
new \Blog\Library\ErrorMsg("Fehler beim Aktualisieren des Events.", $e);
|
|
die;
|
|
}
|
|
}
|
|
|
|
public function createEvent($data) {
|
|
$pdo = $this->linkDB();
|
|
$sql = "INSERT INTO event (name, description, location_id, start_date, end_date, max_tickets, ticket_price)
|
|
VALUES (:name, :description, :location_id, :start_date, :end_date, :max_tickets, :ticket_price);";
|
|
$params = [
|
|
":name" => $data['name'],
|
|
":description" => $data['description'],
|
|
":location_id" => $data['location_id'],
|
|
":start_date" => $data['start_date'],
|
|
":end_date" => $data['end_date'],
|
|
":max_tickets" => $data['max_tickets'],
|
|
":ticket_price" => $data['ticket_price']
|
|
];
|
|
try {
|
|
$sth = $pdo->prepare($sql);
|
|
$sth->execute($params);
|
|
return $sth;
|
|
} catch (PDOException $e) {
|
|
new \Blog\Library\ErrorMsg("Fehler beim Schreiben des Events.", $e);
|
|
die;
|
|
}
|
|
}
|
|
|
|
public function deleteEvent($id) {
|
|
$pdo = $this->linkDB();
|
|
$sql = "DELETE FROM event WHERE event_id = :event_id;";
|
|
$params = [":event_id" => $id];
|
|
try {
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute($params);
|
|
return $stmt->rowCount();
|
|
} catch (PDOException $e) {
|
|
new \Blog\Library\ErrorMsg("Fehler beim Löschen des Events.", $e);
|
|
die;
|
|
}
|
|
}
|
|
} |