setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); } return self::$conn; } catch (PDOException $e) { throw new \Exception($e->getMessage, 444); } } public static function fetch($table, $conditions = []) { $sql = "SELECT pengumuman.id, pengumuman.category as category, kategori.category as categoryName, kategori.background as background, kategori.foreground as foreground, pengumuman.created_at, pengumuman.valid_at, pengumuman.expired_at, pengumuman.creator, pengumuman.edited_at, pengumuman.content, pengumuman.status, pengumuman.delay FROM pengumuman INNER JOIN kategori ON pengumuman.category = kategori.id"; if ($conditions) { $sql .= " WHERE"; foreach ($conditions as $condition) { $keys[] = $condition[0]; $operators[] = $condition[1]; $values[] = $condition[2]; } $x = 0; foreach ($keys as $key) { $sql .= " $key $operators[$x] ?"; $x++; if ($x < count($keys)) { $sql .= " AND"; } } } try { $con = static::connectDB(); $query = $con->prepare($sql); if (count($conditions)) { $x = 1; foreach ($values as $value) { $query->bindValue($x, $value); $x++; } } $query->execute(); return $query->fetch(\PDO::FETCH_ASSOC); } catch (PDOException $e) { echo "Error: $e->getMessage()"; } } public static function showAll($table, $conditions = []) { $sql = "SELECT pengumuman.id, pengumuman.category as category, kategori.background as background, kategori.foreground as foreground, created_at, valid_at, expired_at, creator, edited_at, content, pengumuman.status, delay, users.full_name as creatorName FROM pengumuman INNER JOIN kategori ON pengumuman.category = kategori.id INNER JOIN users ON pengumuman.creator = users.id"; if ($conditions) { $sql .= " WHERE"; foreach ($conditions as $condition) { $keys[] = $condition[0]; $operators[] = $condition[1]; $values[] = $condition[2]; } $x = 0; foreach ($keys as $key) { $sql .= " $key $operators[$x] ?"; $x++; if ($x < count($keys)) { $sql .= " AND"; } } } try { $con = static::connectDB(); $query = $con->prepare($sql); if (count($conditions)) { $x = 1; foreach ($values as $value) { $query->bindValue($x, $value); $x++; } } $query->execute(); return $query->fetchAll(\PDO::FETCH_ASSOC); } catch (PDOException $e) { echo "Error: $e->getMessage()"; } } }