Friday, May 20, 2011

Php Code: Forum

You can create a forum for your site. Where the users have the options to post. You need to have a my sql database to use this forum that you can set it up in your website control panel.


<!-- This Script is from www.phpfreecpde.com, Coded by: Krishna Eydatoula, Mahmood Bina-->

<?php

    $host="localhost"; // Host name
    $username="root"; // Mysql username
    $password="pass"; // Mysql password
    $db_name="test"; // Database name
    $tbl_name="forum_topics"; // Table name -- LEAVE THIS AS IT IS

    mysql_connect($host, "$username", "$password")or die("cannot connect");
    mysql_select_db($db_name)or die("cannot select DB");
    if (isset($_GET['type']) && $_GET['type'] == "setup") {

        $sql = "CREATE TABLE `forum_topics` (
        `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 ;";
        $sql2 = "CREATE TABLE `forum_replies` (
        `thread_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;";
        mysql_query($sql);
        mysql_query($sql2);
    }elseif (isset($_GET['type']) && $_GET['type'] == "create") {
        echo "<table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><form id=\"form1\" name=\"form1\" method=\"post\" action=\"".$PHP_SELF."?type=post\"><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>";
    }elseif (isset($_GET['type']) && $_GET['type'] == "post") {
        $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=\"".$PHP_SELF."\">View your topic</a>";
        }else {
            echo "Error Posting.";
        }
    }elseif (!isset($_GET['type'])) {
        $sql="SELECT * FROM $tbl_name ORDER BY id DESC";
        // OREDER BY id DESC is order result by descending
        $result=mysql_query($sql);
        echo "<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>";
        while($rows=mysql_fetch_array($result)){ // Start looping table row
            echo "<tr><td bgcolor=\"#FFFFFF\">".$rows['id']."</td><td bgcolor=\"#FFFFFF\"><a href=\"".$PHP_SELF."?type=view&id=".$rows['id']."\">".$rows['topic']."</a><BR></td><td align=\"center\" bgcolor=\"#FFFFFF\">".$rows['view']."</td><td align=\"center\" bgcolor=\"#FFFFFF\">".$rows['reply']."</td><td align=\"center\" bgcolor=\"#FFFFFF\">".$rows['datetime']."</td></tr>";
        }
        echo "<tr><td colspan=\"5\" align=\"right\" bgcolor=\"#E6E6E6\"><a href=\"".$PHP_SELF."?type=create\"><strong>Create New Topic</strong> </a></td></tr></table>";
    }elseif (isset($_GET['type']) && $_GET['type'] == 'view') {
        // get value of id that sent from address bar
        $id=$_GET['id'];
        $sql="SELECT * FROM $tbl_name WHERE id='$id'";
        $result=mysql_query($sql);
        $rows=mysql_fetch_array($result);
       
        echo "<table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><td><table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bordercolor=\"1\" bgcolor=\"#FFFFFF\"><tr><td bgcolor=\"#F8F7F1\"><strong>".$rows['topic']."></strong></td></tr><tr><td bgcolor=\"#F8F7F1\">".$rows['detail']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>By :</strong> ".$rows['name']." <strong>Email : </strong>".$rows['email']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>Date/time : </strong>".$rows['datetime']."</td></tr></table></td></tr></table><BR>";
        $tbl_name2="forum_replies"; // Switch to replies table
        $sql2="SELECT * FROM $tbl_name2 WHERE thread_id='$id'";
        $result2=mysql_query($sql2);
        while($rows=mysql_fetch_array($result2)){
            echo "<table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><td><table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#FFFFFF\"><tr><td bgcolor=\"#F8F7F1\"><strong>ID</strong></td><td bgcolor=\"#F8F7F1\">:</td><td bgcolor=\"#F8F7F1\">".$rows['a_id']."</td></tr><tr><td width=\"18%\" bgcolor=\"#F8F7F1\"><strong>Name</strong></td><td width=\"5%\" bgcolor=\"#F8F7F1\">:</td><td width=\"77%\" bgcolor=\"#F8F7F1\">".$rows['a_name']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>Email</strong></td><td bgcolor=\"#F8F7F1\">:</td><td bgcolor=\"#F8F7F1\">".$rows['a_email']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>Answer</strong></td><td bgcolor=\"#F8F7F1\">:</td><td bgcolor=\"#F8F7F1\">".$rows['a_answer']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>Date/Time</strong></td><td bgcolor=\"#F8F7F1\">:</td><td bgcolor=\"#F8F7F1\">".$rows['a_datetime']."</td></tr></table></td></tr></table><br>";
        }
        $sql3="SELECT view FROM $tbl_name WHERE id='$id'";
        $result3=mysql_query($sql3);
        $rows=mysql_fetch_array($result3);
        $view=$rows['view'];
        // if have no counter value set counter = 1
        if(empty($view)){
            $view=1;
            $sql4="INSERT INTO $tbl_name(view) VALUES('$view') WHERE id='$id'";
            $result4=mysql_query($sql4);
        }
        // count more value
        $addview=$view+1;
        $sql5="update $tbl_name set view='$addview' WHERE id='$id'";
        $result5=mysql_query($sql5);
       
        echo "<BR><table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><form name=\"form1\" method=\"post\" action=\"".$PHP_SELF."?type=reply\"><td><table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#FFFFFF\"><tr><td width=\"18%\"><strong>Name</strong></td><td width=\"3%\">:</td><td width=\"79%\"><input name=\"a_name\" type=\"text\" id=\"a_name\" size=\"45\"></td></tr><tr><td><strong>Email</strong></td><td>:</td><td><input name=\"a_email\" type=\"text\" id=\"a_email\" size=\"45\"></td></tr><tr><td valign=\"top\"><strong>Answer</strong></td><td valign=\"top\">:</td><td><textarea name=\"a_answer\" cols=\"45\" rows=\"3\" id=\"a_answer\"></textarea></td></tr><tr><td>&nbsp;</td><td><input name=\"id\" type=\"hidden\" value=\"".$id."\"></td><td><input type=\"submit\" name=\"Submit\" value=\"Submit\"> <input type=\"reset\" name=\"Submit2\" value=\"Reset\"></td></tr></table></td></form></tr></table>";
    }elseif (isset($_GET['type']) && $_GET['type'] == "reply") {
        // Get value of id that sent from hidden field
        $id=$_POST['id'];
        // Find highest answer number.
        $sql="SELECT MAX(a_id) AS Maxa_id FROM $tbl_name WHERE thread_id='$id'";
        $result=mysql_query($sql);
        $rows=mysql_fetch_array($result);
        // add + 1 to highest answer number and keep it in variable name "$Max_id". if there no answer yet set it = 1
        if ($rows) {
            $Max_id = $rows['Maxa_id']+1;
        }else {
            $Max_id = 1;
        }
        // get values that sent from form
        $a_name=$_POST['a_name'];
        $a_email=$_POST['a_email'];
        $a_answer=$_POST['a_answer'];
        $datetime=date("d/m/y H:i:s"); // create date and time
        // Insert answer
        $sql2="INSERT INTO $tbl_name(thread_id, a_id, a_name, a_email, a_answer, a_datetime)VALUES('$id', '$Max_id', '$a_name', '$a_email', '$a_answer', '$datetime')";
        $result2=mysql_query($sql2);
        if($result2){
            echo "Successful<BR>";
            echo "<a href='".$PHP_SELF."?type=view&id=".$id."'>View your answer</a>";
            // If added new answer, add value +1 in reply column
            $tbl_name2="forum_question";
            $sql3="UPDATE $tbl_name2 SET reply='$Max_id' WHERE id='$id'";
            $result3=mysql_query($sql3);
        }
        else {
            echo "ERROR";
        }
    }
?>

<font face="Tahoma"><a target="_blank" href="http://www.phpfreecode.com/"><span style="font-size: 8pt; text-decoration: none">PHP Free Code</span></a></font>

No comments:

Post a Comment