Creating a Simple Threaded Discussion Forum (
Page 1 of 4 )
Most websites have some method of interacting with a visitor. Some have a chat system and others have shoutboxes or other ways to attract the visitor to return. One of the most used methods is a discussion forum. And this is what we are going to create and discuss in this article (the first of two parts).Specifically, we're going to create a threaded discussion forum. Why do we want a THREADED discussion forum? Well, it's simple: a threaded discussion forum allows a visitor to make multiple replies to the same topic in an ordered fashion. This gives us a discussion tree, with the topic being at the heart of it.
The Code
Our Forum is going to have four main pages:
- Index.php - To let users view a list of all the parent thread (topic) titles.
- Viewarticle.php - To let users view a full parent message and replies.
- Postre.php - To let users reply to a parent thread.
- Post.php - To let users create a new thread (or topic).
We will need some additional files:
- Tutstyle.css - CSS style definitions.
- fns_all.php - Contains all the functions used in the forum.
- config.php - Contains the database connection settings.
We will also create an "images" folder in the same directory.
Here's the table for our forum:
CREATE TABLE `test` (
`uid` int(5) unsigned NOT NULL auto_increment,
`parent` int(5) NOT NULL default '0',
`name` varchar(90) NOT NULL default '',
`title` varchar(100) NOT NULL default '',
`message` text NOT NULL,
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`uid`)
The field called "uid" is a unique, autonumber field, which will identify each thread in the discussion forum. The field "parent" represents the ID of the parent thread for the current thread (if any), and will be 0 for all new threads. This structure gives us the ability to add as many replies to a thread as we like.
Copy and paste the table structure in your phpAdmin client:
