patternphpMinor
Getting a value from a database table dynamically
Viewed 0 times
dynamicallygettingvaluedatabasefromtable
Problem
I am trying to create a forum using php in a MVC architecture.
This is my database setup:
Table: forum_categories
`
PRIMARY KEY (
UNIQUE KEY (
PRIMARY KEY (
FOREIGN KEY (
* 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');
}
* Gets an array that contains all the forum topics in
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 CASCADE
Example 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 = 2
Now 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
Solution
you could do something like that :
and on view
public function showForumTopicsByCat($catId)
{
$topic_model = $this->loadModel('Forum');
$this->view->forum_topics = $topic_model->getForumTopics($catId);
$this->view->render('forum/viewTopics');
}and on view
forum_categories) {
for($i=o; $i Category1';
}
} else {
echo 'There are no categories.';
}
?>Code Snippets
public function showForumTopicsByCat($catId)
{
$topic_model = $this->loadModel('Forum');
$this->view->forum_topics = $topic_model->getForumTopics($catId);
$this->view->render('forum/viewTopics');
}<?php
if ($this->forum_categories) {
for($i=o; $i < $numberCat; $i++){
echo '<a href="'. URL . 'forum/showForumTopicsCat'.$i.'/">Category1</a>';
}
} else {
echo '<p>There are no categories.</p>';
}
?>Context
StackExchange Code Review Q#68177, answer score: 4
Revisions (0)
No revisions yet.