• home
  • forum
  • my
  • kt
  • download
  • Creating simple PHP forum tutorial

    Author: 2007-08-11 13:41:08 From:

    Overview

    In this tutorial create 5 files
    1. create_topic.php
    2. add_topic.php
    3. main_forum.php
    4. view_topic.php
    5. add_answer.php

    Steps
    1. Create table name "forum_question" and "forum_answer" in database "test".
    2. Create file create_topic.php.
    3. Create file add_topic. php.
    4. Create file main_forum.php
    5. Create file view_topic.php
    6. Create file add_answer.php

    If you don't know how to create database and table read this tutorial


    Set up database

     


    Table forum_question
    CREATE TABLE `forum_question` (
    `id` int(4) NOT NULL auto_increment,
    `topic` varchar(255) NOT NULL default '',
    `detail` longtext NOT NULL,
    `name` varchar(65) NOT NULL default '',
    `email` varchar(65) NOT NULL default '',
    `datetime` varchar(25) NOT NULL default '',
    `view` int(4) NOT NULL default '0',
    `reply` int(4) NOT NULL default '0',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=1 ;

    Table forum_answer
    CREATE TABLE `forum_answer` (
    `question_id` int(4) NOT NULL default '0',
    `a_id` int(4) NOT NULL default '0',
    `a_name` varchar(65) NOT NULL default '',
    `a_email` varchar(65) NOT NULL default '',
    `a_answer` longtext NOT NULL,
    `a_datetime` varchar(25) NOT NULL default '',
    KEY `a_id` (`a_id`)
    ) TYPE=MyISAM;


    Create file create_topic.php

    View in Browser

    create php forum topic

    ############### Code

    <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
    <tr>
    <form id="form1" name="form1" method="post" action="add_topic.php">
    <td>
    <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
    <tr>
    <td colspan="3" bgcolor="#E6E6E6"><strong>Create New Topic</strong> </td>
    </tr>
    <tr>
    <td width="14%"><strong>Topic</strong></td>
    <td width="2%">:</td>
    <td width="84%"><input name="topic" type="text" id="topic" size="50" /></td>
    </tr>
    <tr>
    <td valign="top"><strong>Detail</strong></td>
    <td valign="top">:</td>
    <td><textarea name="detail" cols="50" rows="3" id="detail"></textarea></td>
    </tr>
    <tr>
    <td><strong>Name</strong></td>
    <td>:</td>
    <td><input name="name" type="text" id="name" size="50" /></td>
    </tr>
    <tr>
    <td><strong>Email</strong></td>
    <td>:</td>
    <td><input name="email" type="text" id="email" size="50" /></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td>
    </tr>
    </table>
    </td>
    </form>
    </tr>
    </table>


    Create file add_topic.php
     

    ############### Code

    <?php
    $host="localhost";
    // Host name
    $username=""; // Mysql username
    $password=""; // Mysql password
    $db_name="test"; // Database name
    $tbl_name="forum_question"; // Table name

    // Connect to server and select database.
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");

    // get data that sent from form
    $topic=$_POST['topic'];
    $detail=$_POST['detail'];
    $name=$_POST['name'];
    $email=$_POST['email'];

    $datetime=date("d/m/y h:i:s"); //create date time

    $sql="INSERT INTO $tbl_name(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')";
    $result=mysql_query($sql);

    if($result){
    echo "Successful<BR>";
    echo "<a href=main_forum.php>View your topic</a>";
    }
    else {
    echo "ERROR";
    }
    mysql_close();
    ?>


    Create file main_forum.php

    View in dreamweaver / diagram


    create php forum topic

    ############### Code

    <?php
    $host="localhost";
    // Host name
    $username=""; // Mysql username
    $password=""; // Mysql password
    $db_name="test"; // Database name
    $tbl_name="forum_question"; // Table name

    // Connect to server and select databse.
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");

    $sql="SELECT * FROM $tbl_name ORDER BY id DESC";
    // OREDER BY id DESC is order result by descending
    $result=mysql_query($sql);
    ?>

    <table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
    <tr>
    <td width="6%" align="center" bgcolor="#E6E6E6"><strong>#</strong></td>
    <td width="53%" align="center" bgcolor="#E6E6E6"><strong>Topic</strong></td>
    <td width="15%" align="center" bgcolor="#E6E6E6"><strong>Views</strong></td>
    <td width="13%" align="center" bgcolor="#E6E6E6"><strong>Replies</strong></td>
    <td width="13%" align="center" bgcolor="#E6E6E6"><strong>Date/Time</strong></td>
    </tr>

    <?php
    while($rows=mysql_fetch_array($result)){ // Start looping table row
    ?>

    <tr>
    <td bgcolor="#FFFFFF">
    <? echo $rows['id']; ?></td>
    <td bgcolor="#FFFFFF"><a href="view_topic.php?id=
    <? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><BR></td>
    <td align="center" bgcolor="#FFFFFF">
    <? echo $rows['view']; ?></td>
    <td align="center" bgcolor="#FFFFFF">
    <? echo $rows['reply']; ?></td>
    <td align="center" bgcolor="#FFFFFF">
    <? echo $rows['datetime']; ?></td>
    </tr>


    <?php
    // Exit looping and close connection
    }
    mysql_close();
    ?>

    <tr>
    <td colspan="5" align="right" bgcolor="#E6E6E6"><a href="create_topic.php"><strong>Create New Topic</strong> </a></td>
    </tr>
    </table>