IlaminiAyebatonyeDagogo Posted November 9, 2013 Share Posted November 9, 2013 Am still a baby so please forgive me for too many Question. I have a simple forum Script. That is working very fine the problem is with viewing the posted topic I have 3 major file that anchor the forum my create_topic.php, add_topic.php and main_forum.php. All of them seem fine to except the main_forum.php for it is suppose to display the forum post but when ever i post a topic and try to view it i only get a blank table. The Post are stored in my local host database. These are the Scripts create_topic.php <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> </td> <td> </td> <td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td> </tr> </table> </td> </form> </tr> </table> Next is add_topic.php <?php $host="localhost"; // Host name $username="root"; // Mysql username $password=""; // Mysql password $db_name="online"; // 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(); ?> and finally main_forum.php <?php $host="localhost"; // Host name $username="root"; // Mysql username $password=""; // Mysql password $db_name="online"; // 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 // Start looping table row while($rows=mysql_fetch_array($result)){ ?> <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> mysql script 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; Please My magic Programmers Help me out.Thanks In advance Quote Link to comment Share on other sites More sharing options...
Ch0cu3r Posted November 9, 2013 Share Posted November 9, 2013 (edited) You need to also check that the query actually added a row to the table using mysql_affected_rows. In add_topic.php use this code when checking the query has added the topic to the table. $sql="INSERT INTO $tbl_name(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')"; $result=mysql_query($sql); if($result){ if(mysql_affected_rows($result)) { echo "Successful<BR>"; echo "<a href=main_forum.php>View your topic</a>"; } else { echo 'Topic not added to table'; } } else { echo "ERROR"; } You will also want to be santizing your user input before your use it in your queries. Using raw $_POST data in your SQL queries will lead to SQL injection vulnerabilities either use mysql_real_escape_string or upgrade your code to use the MySQL Improved function library and use prepared queries to help prevent SQL injection attacks. Also note the standard mysql function library is deprecated and could soon be removed, so I recommend you change to mysqli now. Edited November 9, 2013 by Ch0cu3r Quote Link to comment Share on other sites More sharing options...
IlaminiAyebatonyeDagogo Posted November 9, 2013 Author Share Posted November 9, 2013 actually, sorry I left that out, the topic is added successfully to the data base. When i preview it in phpmyadmin portal i can see the post there but to view it is now the problem. But I will still check your script out. Thanks for more help. Quote Link to comment Share on other sites More sharing options...
IlaminiAyebatonyeDagogo Posted November 9, 2013 Author Share Posted November 9, 2013 I tried out the code it gave an error Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\forum\add_topic.php on line 25 Topic not added to table Quote Link to comment Share on other sites More sharing options...
IlaminiAyebatonyeDagogo Posted November 9, 2013 Author Share Posted November 9, 2013 Ch0cu3r You have always been Helping Me, am very great full thanks a lot and for more because I know am still a baby. Thanks once again. Quote Link to comment Share on other sites More sharing options...
Solution Ch0cu3r Posted November 9, 2013 Solution Share Posted November 9, 2013 (edited) I tried out the code it gave an error Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\forum\add_topic.php on line 25 Topic not added to table Remove $result from mysql_affected_rows($result) I always forget it requires the link resource not the result resource. When i preview it in phpmyadmin portal i can see the post there but to view it is now the problem. Try changing <? echo to <?php echo The <? ?> tags may not work if a setting called short_open_tag is enabled in the php.ini Edited November 9, 2013 by Ch0cu3r Quote Link to comment Share on other sites More sharing options...
IlaminiAyebatonyeDagogo Posted November 9, 2013 Author Share Posted November 9, 2013 Remove $result from mysql_affected_rows($result) I always forget it requires the link resource not the result resource. Try changing <? echo to <?php echo The <? ?> tags may not work if a setting called short_open_tag is enabled in the php.ini i remove d result resouc it b4 using bt d same thing it shows blank and i fix it back it gave the error i want to try changing the ? to php Quote Link to comment Share on other sites More sharing options...
IlaminiAyebatonyeDagogo Posted November 9, 2013 Author Share Posted November 9, 2013 YOU ARE THE BOSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS IT WORKS LIKE MAGIC Please can i be your friend maybe on facebook or 2go Quote Link to comment Share on other sites More sharing options...
IlaminiAyebatonyeDagogo Posted November 9, 2013 Author Share Posted November 9, 2013 It Works And i av add the view forum post ie view_topic.php and and add_answer.php and they all work perfectly well Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.