query($sql, "i", $id); if (empty($result)) { return; } $this->id = $id; $this->name = $result[0]['category_name']; $this->description = $result[0]['category_description']; $this->thread_count = $result[0]['category_thread_count']; $this->post_count = $result[0]['category_post_count']; $this->has_value = true; } // Returns true if this object was successfully fetched from the database public function has_value(): bool { return $this->has_value; } public static function get_all_categories(): array { $sql = "SELECT category_id FROM categories ORDER BY category_id;"; $result = Database::get()->query($sql); $categories = array(); foreach ($result as $row) { $category = new Category($row['category_id']); array_push($categories, $category); } return $categories; } public function get_threads(): array { $sql = "SELECT thread_id FROM threads WHERE thread_category = ? ORDER BY thread_last_post_date DESC"; $result = Database::get()->query($sql, "i", $this->id); $threads = array(); foreach ($result as $row) { $thread = new Thread($row['thread_id']); if ($thread->has_value()) array_push($threads, $thread); } return $threads; } public function get_latest_thread(): Thread { $sql = "SELECT thread_id FROM threads WHERE thread_category = ? ORDER BY thread_last_post_date DESC LIMIT 1"; $result = Database::get()->query($sql, "i", $this->id); return new Thread($result[0]['thread_id']); } }