Create a Simple Forum Using PHP/MYSQL

Good day everyone! Today, I will teach you how to create a SIMPLE FORUM Using PHP/MYSQL. This tutorial gives a big help for all web developers who wants to develop their own forum site.

Like the real forum, in this tutorial you can create your forum with add topic board function, post threads, comment to threads, and count all the topics posted in each topic board.

So first, create a database, name it as any name you desire. In my case, I use “itsourcecode” as the name of the database.

Then create a table name, it as “boards” then put the following attributes.

[sql]CREATE TABLE `boards` ( `board_id` int(11) NOT NULL, `board_name` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;[/sql]

Then create again another table, name it as “threads” then put the following attributes.

[sql]CREATE TABLE `threads` ( `thread_id` int(11) NOT NULL, `board_id` int(11) NOT NULL, `thread_title` text NOT NULL, `thread_content` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;[/sql]

For the connection to the database, create “connection.php” file then put the following codes.

[php]<?php
$mysqli = new mysqli(‘localhost’, ‘root’, ”, ‘itsourcecode’);
?>[/php]

In the ‘’index.php” file, put the following codes.

[php]<?php include ‘connection.php’ ?>
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title>ITSOURCECODE Simple Forum</title>
</head>
<body>
<h3>ITSOURCECODE Simple Forum in PHP/MYSQL</h3>
<a href=”add-board.php”>Add New Topic Board</a><br>
<?php
$boards = $mysqli->query(“SELECT * FROM boards”);
while ($board_data = $boards->fetch_assoc()) {
$threads = $mysqli->query(“SELECT * FROM threads WHERE board_id = “.$board_data[‘board_id’].””);
?>
<br>
<b>#<?php echo $board_data[‘board_id’] ?></b> <a href=”view-board.php?board_id=<?php echo $board_data[‘board_id’] ?>”><?php echo $board_data[‘board_name’] ?></a> [<b><?php echo $threads->num_rows ?></b> Topics]
<?php }
if ($boards->num_rows == null) {
echo ‘<br>no topic board created yet’;
}
?>
</body>
</html>
[/php]

For adding new topic board, create “add-board.php” file then put the following codes.

[php]<?php include ‘connection.php’; ?>
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title>Add New Topic Board</title>
</head>
<body>
<a href=”index.php”>Home</a> | Add New Topic Board<br><br>
<form method=”post” action=”add-board-action.php”>
<label>Board title:</label><br>
<input type=”text” name=”title” /><br><br>
<input type=”submit” name=”add_title” value=”Add” />
</form>
</body>
</html>
[/php]

For the add board action, create “add-board-action.php” file then put the following codes.

[php]<?php
include ‘connection.php’;
if (isset($_POST[‘add_title’])) {
$title = $_POST[‘title’];

$add_title = $mysqli->query(“INSERT INTO boards (board_name) VALUES (‘$title’)”);
if ($add_title) {
header(“Location: index.php”);
} else {
echo $mysqli->error;
}
}
?>[/php]

And now, for viewing the created topic board, create a “view-board.php” file then put the following codes.

[php]<?php
include ‘connection.php’;
$board_id = $_GET[‘board_id’];
$get_board = $mysqli->query(“SELECT * FROM boards WHERE board_id = $board_id”);
$board_data = $get_board->fetch_assoc();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title><?php echo $board_data[‘board_name’] ?></title>
</head>
<body>
<a href=”index.php”>Home</a> | <b><?php echo $board_data[‘board_name’]; ?></b><br><br>
<a href=”add-thread.php?board_id=<?php echo $board_id ?>”>Post New Thread</a><br><br>
<?php
$threads = $mysqli->query(“SELECT * FROM threads WHERE board_id = $board_id”);
while ($thread_data = $threads->fetch_assoc()) { ?>
<b>#<?php echo $thread_data[‘thread_id’] ?></b> <a href=”view-thread.php?thread_id=<?php echo $thread_data[‘thread_id’] ?>&board_id=<?php echo $board_id ?>”><?php echo $thread_data[‘thread_title’] ?></a>
<?php }
if ($threads->num_rows == null) {
echo ‘<br><br>no threads posted yet’;
}
?>
</body>
</html>
[/php]

For posting threads to every board. Create a “add-thread.php” file then put the following codes.

[php]<?php
include ‘connection.php’;
$board_id = $_GET[‘board_id’];
$get_board = $mysqli->query(“SELECT * FROM boards WHERE board_id = $board_id”);
$board_data = $get_board->fetch_assoc();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title>Add New Thread</title>
</head>
<body>
<a href=”index.php”>Home</a> | <?php echo $board_data[‘board_name’] ?> | <b>Add Thread</b><br><br>
<form method=”post” action=”add-thread-action.php?board_id=<?php echo $board_id ?>”>
<label>Title:</label><br>
<input type=”text” name=”title” /><br>
<label>Content:</label><br>
< t e x t a r e a name=”content” >< / t e x t a r e a ><br><br>
<input type=”submit” name=”post_thread” value=”Post” />
</form>
</body>
</html>
[/php]

Then for the action in adding thread. Create a “add-thread-action.php” file then put the following codes.

[php]<?php
include ‘connection.php’;
if (isset($_POST[‘post_thread’])) {
$board_id = $_GET[‘board_id’];
$title = $_POST[‘title’];
$content = $_POST[‘content’];

$post_thread = $mysqli->query(“INSERT INTO threads (board_id, thread_title, thread_content) VALUES ($board_id, ‘$title’, ‘$content’)”);
if ($post_thread) {
header(“Location: view-board.php?board_id=$board_id”);
} else {
echo $mysqli->error;
}
}
?>[/php]

For viewing the posted topic. Create a “view-thread.php” file then put the following codes.

[php]<?php
include ‘connection.php’;
$board_id = $_GET[‘board_id’];
$thread_id = $_GET[‘thread_id’];

$get_board = $mysqli->query(“SELECT * FROM boards WHERE board_id = $board_id”);
$board_data = $get_board->fetch_assoc();

$get_thread = $mysqli->query(“SELECT * FROM threads WHERE thread_id = $thread_id”);
$thread_data = $get_thread->fetch_assoc();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title><?php echo $thread_data[‘thread_title’] ?></title>
</head>
<body>
<a href=”index.php”>Home</a> | <a href=”view-board.php?board_id=<?php echo $board_id ?>”><?php echo $board_data[‘board_name’] ?></a> | <b><?php echo $thread_data[‘thread_title’] ?></b><br><br>
Title: <b><?php echo $thread_data[‘thread_title’] ?></b><br><br>
<b>Content:</b><br>
<?php echo $thread_data[‘thread_content’] ?>
</body>
</html>
[/php]

Forum Using PHP/MYSQL Screenshots:

If you have questions about ” Simple Forum Using PHP/MYSQL” feel free to ask us by commenting below or just visit on our contact page. Thank You.

Related Article you may like:

3 thoughts on “Create a Simple Forum Using PHP/MYSQL”

Leave a Comment