I am trying to create a forum using php in a MVC architecture.This is my database setup:Table: forum_categories`forum_categories` (`cat_id` INT(8) NOT NULL AUTO_INCREMENT,`cat_title` VARCHAR(255) NOT NULL,`cat_desc` TEXT NOT NULL,PRIMARY KEY (`cat_id`),UNIQUE KEY (`cat_title`)Table: forum_topics`forum_topics` (`topic_id` INT(8) NOT NULL AUTO_INCREMENT,`cat_id` INT(8) NOT NULL COMMENT 'foreign key with forum_categories table',`user_id` INT(11) NOT NULL COMMENT 'foreign key with users table',`topic_title` VARCHAR(255) NOT NULL,`topic_desc` TEXT NOT NULL, `topic_date` DATETIME DEFAULT NULL,PRIMARY KEY (`topic_id`),FOREIGN KEY (`cat_id`) REFERENCES forum_categories (`cat_id`) ON DELETE CASCADE ON UPDATE CASCADEExample of the functionality, I would like to achieve:Category 1 has cat_id = 1  Category 2 has cat_id = 2  Topic 1 has cat_id = 1  Topic 2 has cat_id = 2Now when category 1 is selected I just want topic 1 to show.If category 2 is selected I just want topic 2 to show.The following code does that:Controller /** * Show all the topics in the chosen category */public function showForumTopicsCat1(){    $topic_model = $this->loadModel('Forum');    $this->view->forum_topics = $topic_model->getForumTopics(1);    $this->view->render('forum/viewTopics');}public function showForumTopicsCat2(){    $topic_model = $this->loadModel('Forum');    $this->view->forum_topics = $topic_model->getForumTopics(2);    $this->view->render('forum/viewTopics');}public function showForumTopicsCat3(){    $topic_model = $this->loadModel('Forum');    $this->view->forum_topics = $topic_model->getForumTopics(3);    $this->view->render('forum/viewTopics');}public function showForumTopicsCat4(){    $topic_model = $this->loadModel('Forum');    $this->view->forum_topics = $topic_model->getForumTopics(4);    $this->view->render('forum/viewTopics');}Model/** * Gets an array that contains all the forum topics in the database. * Each array element is an object, containing a specific topic's data. * @return array All the forum topics */public function getForumTopics($cat_id) {    $sql = 'SELECT * FROM forum_categories fc JOIN forum_topics ft ON fc.cat_id = ft.cat_id WHERE fc.cat_id = :cat_id ORDER BY ft.topic_date DESC';    $query = $this->db->prepare($sql);    $query->execute(array(':cat_id' => $cat_id));    return $query->fetchAll(); }View<?php    if ($this->forum_categories) {            echo '<a href='. URL . 'forum/showForumTopicsCat1/>Category1</a>';            echo '<a href='. URL . 'forum/showForumTopicsCat2/>Category2</a>';            echo '<a href='. URL . 'forum/showForumTopicsCat3/>Category3</a>';            echo '<a href='. URL . 'forum/showForumTopicsCat4/>Category4</a>';    } else {        echo '<p>There are no categories.</p>';    }?>My Concern: Is there anyway to this more DRY and more reusable?
Getting a value from a database table dynamically
php;object oriented;sql