Hi Guys,

iv made a fairly basic forum type script , it works great apart from 1 thing, whenever a user posts a reply to a topic that topic stays exactly where it was posted , it doesnt move to the top (like when you post a message in these forums)

PHP Code:
<?php
     
// grab the nzb id...///////////////////////////////////////////////////////////////
     
$forum_id $_GET['id'];
     
     
## deal with the reply #############################################################
     
if ($_GET['action'] == "replied") {
     
     
## grab the data ###################################################################
     
$the_replier $_POST['repliedby'];
     
$the_top_id $_POST['topicid'];
     
$the_body CleanPosts($_POST['body'], 1);
     
$the_fid $_POST['fid'];
          
     
## error check #####################################################################
     
if(empty($the_body)) {
     
     
stderr("Error""You never entered anything in the reply field.");
     include(
"includes/footer.php");
     exit;
     
     }
          
     
####################################################################################
     # insertion
     ####################################################################################
     
     
$q2 "INSERT INTO `forum_posts` (`id`,`topic_id`,`user_id`,`date`,`post_body`) VALUES ('','$the_top_id','$the_replier',now(),'$the_body')";
     
$r2 mysql_query($q2) or die (mysql_error());
     
     
## update the post count ###########################################################
     
$q_sections2 "UPDATE `forum_sections` SET `post_count`=post_count+1 WHERE `id`='$the_fid'";
     
$r_sections2 mysql_query($q_sections2) or die (mysql_error());
     
     
$q_sections3 "UPDATE `forum_topics` SET `replies`=replies+1 WHERE `id`='$the_top_id'";
     
$r_sections3 mysql_query($q_sections3) or die (mysql_error());         
     
     
####################################################################################
     # insertion
     ####################################################################################
     
     ## update this topic as the last post read #########################################
     
mysql_query("UPDATE `forum_topics` SET `last_post`='$the_top_id' WHERE `id`='$the_top_id'");
   
     
stderr("Success""Stand by....");
     echo 
"<meta http-equiv=\"refresh\" content=\"0;URL=viewforum.php?action=viewtopic&topicid=$the_top_id\">";
     include(
"includes/footer.php");
     exit;
     
     }
     
     
## reply topic #####################################################################
     
if ($_GET['action'] == "reply") {
     
     
## grab the get data ###############################################################
     
$reply_topic_id $_GET['topicid'];
     
     
## GET TOPIC NAME ##################################################################
     
$q4 "SELECT * FROM `forum_topics` WHERE `id`='$reply_topic_id'";
     
$r4 mysql_query($q4) or die (mysql_error());
     
$r mysql_fetch_array($r4) or die (mysql_error());
     
$subj $r['subject'];
     
$fid $r['forum_id'];
     
     
## get the logged in users details #################################################
     
$q_uid "SELECT `id` FROM `membership` WHERE `username`='$member'";
     
$r_uid mysql_query($q_uid) or die (mysql_error());
     
$liuid mysql_fetch_array($r_uid);
     
$u_id $liuid['id'];
     
     
## make the reply box ##############################################################
     
echo '<br />';
     echo 
'<b>Your about to reply to the topic: <a href="viewforum.php?action=viewtopic&topicid='.$reply_topic_id.'">'.$subj.'</a></b>';
     echo 
'<br /><br />
           <table width="80%" border="1" cellspacing="0" cellpadding="10"><tr><td align="center">
           <form method="POST" action="?action=replied">
           <input type="hidden" name="forumid" value='
.$forumid.'>
           <br />
           <table class="forum_border" border="1" cellspacing="0" cellpadding="5">
           <tr>
           <td class="forum_border" align="right" valign="top"><b>Body</b></td><td class="forum_border" align=left style=\'padding: 0px\'><textarea name="body" cols="100" rows="20" style=\'border: 0px\'></textarea></td>
           </tr>
           <tr>
           <td class="forum_border" colspan="2" align="center"><input type=submit class="btn" value=\'Submit Reply\'>                                                               
                                                               <input type="hidden" name="topicid" value="'
.$reply_topic_id.'">
                                                               <input type="hidden" name="fid" value="'
.$fid.'">
                                                               <input type="hidden" name="repliedby" value="'
.$u_id.'">
           </td>
           </tr>
           </td>
           </tr>
           </table>
           </form>    
           </table><br />'
;
           
     
## update last poster ##############################################################
           
     
include("includes/footer.php");
     exit;
     
     }
     
     
## view topic ######################################################################
     
if ($_GET['action'] == "viewtopic") {
     
     
## grab the post data ##############################################################
     
$the_topic_id $_GET['topicid'];
     
     
## ERROR ###########################################################################
     
if(empty($the_topic_id)) {
     
     
stderr("Error""Bad ID, or the topic no longer exhists.");
     include(
"includes/footer.php");
     exit;
     
     }
     
     
## also update the views ###########################################################
     
$query_update_views "UPDATE `forum_topics` SET `views`=views+1 WHERE `id`='$the_topic_id'";
     
$result_update_views mysql_query($query_update_views) or die (mysql_error());
     
     
## get and display the topic and relevant data #####################################
     
$query_db1 "SELECT * FROM `forum_topics` WHERE `id`='$the_topic_id'";
     
$result_db1 mysql_query($query_db1) or die (mysql_error());
     
$row mysql_fetch_array($result_db1) or die (mysql_error());
     
$subject $row['subject'];
     
$user_id $row['user_id'];
     
$forum_id $row['forum_id'];
     
     
## get the posters details #########################################################
     
$query_poster "SELECT * FROM `membership` WHERE `id`='$user_id'";
     
$result_poster mysql_query($query_poster) or die (mysql_error()); 
     
$rows mysql_fetch_array($result_poster) or die (mysql_error()); 
     
$poster_id $rows['id'];
     
$poster_name $rows['username'];
     
$avatar $rows['avatar'];
     
$user_class $rows['user_class'];
     
     
## more info date etc ##############################################################
     
$query_top "SELECT * FROM `forum_posts` WHERE `topic_id`='$the_topic_id'";
     
$result_top mysql_query($query_top) or die (mysql_error());
     
$top mysql_fetch_array($result_top);
     
$post_topic_id $top['id'];
     
$post_body $top['post_body'];
     
$post_date $top['date'];
     
     
## 1 more ##########################################################################
     
$q "SELECT * FROM `forum_sections` WHERE `id`='$forum_id'";
     
$r mysql_query($q) or die (mysql_error());
     
$row3 mysql_fetch_array($r) or die (mysql_error()); 
     
$f_name $row3['forum_name'];
     
     
//$query_again_top = "SELECT * FROM `forum_posts` WHERE `topic_id`='$post_topic_id'";
     //$result_again_top = mysql_query($query_again_top) or die (mysql_error());
     //$t = mysql_fetch_array($result_again_top) or die (mysql_error()); 
     //$t_date = $t['date'];
     
     
echo "<br /><b><a href=\"viewforum.php?id=$forum_id\">$f_name</a> >>> $subject</b><br /><br />";
          
     
####################################################################################
     
$query_replies "SELECT * FROM `forum_posts` WHERE `topic_id`='$the_topic_id'";
     
$result_replies mysql_query($query_replies) or die (mysql_error());
     
     while(
$row_replies mysql_fetch_array($result_replies)) {
     
     
## VARS
     
     
$fp_id $row_replies['id'];
     
$ft_uid $row_replies['user_id'];
     
$ft_date $row_replies['date'];
     
$post_body $row_replies['post_body'];
     
     
$q3 "SELECT * FROM `membership` WHERE `id`='$ft_uid'";
     
$r3 mysql_query($q3) or die (mysql_error());
     
$qr mysql_fetch_array($r3) or die (mysql_error());
     
$replier_id $qr['id'];
     
$replier_name $qr['username'];
     
$replier_user_class $qr['user_class'];
     
$avatar $qr['avatar'];
     
     
####################################################################################
     
echo '<table width="750" border="20" bordercolor="#8f0002" cellpadding="5" cellspacing="0"> 
           <tr> 
           <td bgcolor="#0055A4" class="details" valign="top"><table width="100%" border="1" cellpadding="5" cellspacing="0"> 
           </tr> 
           <tr>
           <td bgcolor="#EEEEEE" class="forum_border" class="forum_border" colspan="2" align="left" class="details">By <a href="userdetails.php?id='
.$replier_id.'">'.$replier_name.'</a> (<b>'.$replier_user_class.'</b>)<br />Posted on '.$ft_date.'</td><td bgcolor="#EEEEEE" class="forum_border" align="right">[<a href="">EDIT</a>]-[<a href="">DELETE</a>]</td>
           </tr>
           <tr>
           <td class="forum_border" colspan="2" width="30%" align="center" valign="top">'
;
           if(empty(
$avatar)) {
           
           echo 
"<img src=\"images/default_avatar.gif\" />";  
           
           } else {
           
           echo 
"<img src=\"avatars/$avatar\" />";
           
           } 
     echo 
'</td><td class="forum_border" width="70%" align="left" valign="top">'.$post_body.'</td>
           </tr>
           </table></table><br />'
;
                
     
####################################################################################
     
}
     
     
## reply button ####################################################################
     
echo '<form method="get" action="?">
           <input type="hidden" name="action" value="reply">
           <input type="hidden" name="topicid" value='
.$the_topic_id.'>
           <input type="submit" value=\'Add Reply\' class=btn>
           </form>'
;
           
     
## update this topic as the last post read #########################################
     
mysql_query("UPDATE `forum_topics` SET `last_post`='$the_topic_id' WHERE `id`='$the_topic_id'");
     
     
####################################################################################
     # we really need the latest post id so while loop it
     ####################################################################################
     
$query_the_post_id "SELECT `id` FROM `forum_posts`";
     
$result_the_post_id mysql_query($query_the_post_id) or die (mysql_error());
     while(
$rowid mysql_fetch_array($result_the_post_id)) {
     
     
$new_id $rowid['id'];
     
     }
     
     
## last read post ##################################################################
     
mysql_query("INSERT INTO `forum_last_post` (`id`,`user_id`,`topic_id`,`last_read_post`) values ('','$replier_id','$the_topic_id','$new_id')");

     include(
"includes/footer.php");
     exit; 
     
     }
     
     if (
$_GET['action'] == "post") {
     
     
$subject CleanPosts($_POST['subject'], 1);
     
$body CleanPosts($_POST['body'], 1);
     
$poster $_POST['poster'];
     
$for_id $_POST['forums_id'];
     
$topical_id $_POST['topic_id'];
     
     
## error check #####################################################################
     
if(empty($subject)) {
     
     
stderr("Error""You never entered a subject.");
     include(
"includes/footer.php");
     exit;
     
     }
     
     if(empty(
$body)) {
     
     
stderr("Error""You never entered anything in the message body.");
     include(
"includes/footer.php");
     exit;
     
     }
     
     
## cap the subject length ##########################################################
     
if(strlen($subject) > 50) {
     
     
stderr("Error""Sorry, the subject can't be any longer that 50 characters.");
     include(
"includes/footer.php");
     exit;     
     
     }
     
     
####################################################################################
     # insertions
     ####################################################################################
     
     ## more insertion ##################################################################
     
     
$query_insert "INSERT INTO `forum_topics` (`id`,`user_id`,`subject`,`forum_id`) VALUES ('','$poster','$subject','$for_id')";
     
$result_insert mysql_query($query_insert) or die (mysql_error());
     
     
## need the topic id :) ############################################################
     
$query "SELECT `id` FROM `forum_topics`";
     
$result mysql_query($query) or die (mysql_error());
     
     while(
$row mysql_fetch_array($result)) {
     
     
$id2 $row['id']; 
     
     }
     
     
$query_insert_2 "INSERT INTO `forum_posts` (`id`,`topic_id`,`user_id`,`date`,`post_body`) VALUES ('','$id2','$poster',now(),'$body')";
     
$result_insert_2 mysql_query($query_insert_2) or die (mysql_error());
     
     
$q_sections "UPDATE `forum_sections` SET `topic_count`=topic_count+1 WHERE `id`='$for_id'";
     
$r_sections mysql_query($q_sections) or die (mysql_error());
     
     
## all good then do the insertion ##################################################
     
     ####################################################################################
     # insertions
     ####################################################################################
     
stderr("Success""Stand by....");
     echo 
"<meta http-equiv=\"refresh\" content=\"0;URL=viewforum.php?id=$for_id\">";
     include(
"includes/footer.php");
     exit;
     
     }
     
     
## the gets ########################################################################
     
if ($_GET['action'] == "newtopic") {
     
     
## forum id ########################################################################
     
$forumid $_GET['forumid'];
     
$topicid $_GET['topicid'];
     
     
## ERROR ###########################################################################
     
if(empty($forumid)) {
     
     
stderr("Error""Bad ID :(");
     include(
"includes/footer.php");
     exit;
     
     }
     
     
## get the forum name ##############################################################
     
get_forum_name($forumid);
     
     
## get the posters id ##############################################################
     
$query_poster "SELECT `id` FROM `membership` WHERE `username`='$member'";
     
$result_poster mysql_query($query_poster) or die (mysql_error());
     
$user_id mysql_fetch_array($result_poster) or die (mysql_error());
     
$poster_id $user_id['id'];
     
     
## make the new topic box ##########################################################
     
echo '<br />';
     echo 
'<b>Adding a new topic in the forum: <a href="viewforum.php?id='.$forumid.'">'.get_forum_name($forumid).'</a></b>';
     echo 
'<br /><br />
           <table width="80%" border="1" cellspacing="0" cellpadding="10"><tr><td align="center">
           <form method="POST" action="?action=post">
           <input type="hidden" name="forumid" value='
.$forumid.'>
           <br />
           <table class="forum_border" border=1 cellspacing=0 cellpadding=5>
           <tr>
           <td class="forum_border"><b>Subject</b></td><td class="forum_border" align=left style=\'padding: 0px\'><input type=text size="100" maxlength="60" name="subject" style=\'border: 0px; height: 19px\'></td>
           </tr>
           <tr>
           <td class="forum_border" align="right" valign="top"><b>Body</b></td><td class="forum_border" align=left style=\'padding: 0px\'><textarea name="body" cols="100" rows="20" style=\'border: 0px\'></textarea></td>
           </tr>
           <tr>
           <td class="forum_border" colspan="2" align="center"><input type="submit" class="btn" value=\'Submit Topic\'>
                                                               <input type="hidden" name="poster" value="'
.$poster_id.'">
                                                               <input type="hidden" name="forums_id" value="'
.$forumid.'">
           </td>
           </tr>
           </td>
           </tr>
           </table>
           </form>    
           </table><br />'
;
     
     include(
"includes/footer.php");
     exit;
     
     }
     
     
## forum name ######################################################################
     
$forum_query "SELECT * FROM `forum_sections` WHERE `id`='$forum_id'";
     
$forum_result mysql_query($forum_query) or die (mysql_error());
     
$row mysql_fetch_array($forum_result) or die (mysql_error());
     
     
## vars ############################################################################
     
$forum_name $row['forum_name'];
     
     
## echo ############################################################################
     
echo "<br /><h4>$forum_name</h4>";
     
        
## Pagination start #############################################################
        
echo "<center>";
        
// If current page number, use it 
        // if not, set one! 
        
        
if(!isset($_GET['page'])){ 
            
$page 1
        } else { 
            
$page $_GET['page']; 
        } 
        
        
// Define the number of results per page 
        
$max_results 25;         
        
        
// Figure out the limit for the query based 
        // on the current page number. 
        
$from = (($page $max_results) - $max_results);  
        
        
// Perform MySQL query on only the current page number's results 
        
        
$sql mysql_query("SELECT * FROM `forum_topics` WHERE `forum_id`='$forum_id' ORDER BY `id` DESC LIMIT $from$max_results"); 
        
        
## Pagination start #############################################################
     
     ####################################################################################
     
echo '<table border="1" cellspacing="0" cellpadding="5">
           <tr>
           <td colspan="2" class="colhead" align="left">Topic</td><td class="colhead">Replies</td><td class="colhead">Views</td><td class="colhead" align="center">Author</td><td class="colhead" align="center">Date Posted</td>
           </tr>'
;
                    
     while(
$row mysql_fetch_array($sql)) {
     
     
## vars 
     
$for_subj $row['subject'];
     
$for_ti $row['id'];
     
$for_views $row['views'];
     
$for_user_id $row['user_id'];
     
     
## post user details ###############################################################
     
$q6 "SELECT * FROM `membership` WHERE `id`='$for_user_id'";
     
$r6 mysql_query($q6) or die (mysql_error());
     
$r2 mysql_fetch_array($r6) or die (mysql_error());
     
$postid $r2['id'];
     
$postname $r2['username'];
     
     
## post count ######################################################################
     
$q5 "SELECT * FROM `forum_posts` WHERE `topic_id`='$for_ti'";
     
$r5 mysql_query($q5) or die (mysql_error());
     
$date mysql_fetch_array($r5);
     
$postdate $date['date'];
     
$postcount mysql_num_rows($r5);
     
     
## grab the user_id ################################################################
     
$q8 "SELECT * FROM `membership` WHERE `id`='$need_user_id'";
     
$r8 mysql_query($q8) or die (mysql_error());
     
$r4 mysql_fetch_array($r8);
     
$last_post_id $r4['id'];
     
$last_post_name $r4['username'];
     
     
## replies #########################################################################
     
$q12 "SELECT `replies` FROM `forum_topics` WHERE `id`='$for_ti'";
     
$r12 mysql_query($q12) or die (mysql_error());
     
$rep_count mysql_fetch_array($r12);
     
$replies $rep_count['replies'];
     
     echo 
'<tr><td class="forum_border" align="center"><img src=images/forum_1337.gif></td><td align="left" class="forum_border"><a href=?action=viewtopic&topicid='.$for_ti.'><b>'.$for_subj.'</b></a></td><td align="center" class="forum_border">'.$replies.'</td><td align="center" class="forum_border">'.$for_views.'</td><td align="center" class="forum_border"><a href="userdetails.php?id='.$postid.'"><b>'.$postname.'</b></a></td><td align="center" class="forum_border"><font size="1">'.$postdate.'</font></td></tr>';
     
     }     
     echo 
'</table>';
     
####################################################################################
     
echo '<br />
           <table class="details" border="0" cellspacing="0" cellpadding="5">
           <tr>
           <td><img src=images/1337(b).gif style=\'margin-right: 5px\'></td><td>New Posts</td><td><img src=images/locked.gif style=\'margin-left: 10px; margin-right: 5px\'></td><td>Locked Topic</td>
           </tr>
           </table><br />'
;
     
         
## Pagination end ###############################################################
        
        // Figure out the total number of results in DB: 
        
$total_results mysql_result(mysql_query("SELECT COUNT(*) as Num FROM `forum_topics` WHERE `forum_id`='$forum_id'"),0); 
        
        
// Figure out the total number of pages. Always round up using ceil() 
        
$total_pages ceil($total_results $max_results); 
        
        
// Build Previous Link 
        
if($page 1){ 
            
$prev = ($page 1); 
            echo 
" <a href=\"".$_SERVER['PHP_SELF']."?id=$forum_id&amp;page=$prev\"><<<&nbsp;</a> "
        } 
        
        for(
$i 1$i <= $total_pages$i++){ 
            if((
$page) == $i){ 
                echo 
"[<b>$i</b>] "
                } else { 
                    echo 
"<a href=\"".$_SERVER['PHP_SELF']."?id=$forum_id&amp;page=$i\">$i</a> "
            } 
        } 
        
        
// Build Next Link 
        
if($page $total_pages){ 
            
$next = ($page 1); 
            echo 
"<a href=\"".$_SERVER['PHP_SELF']."?id=$forum_id&amp;page=$next\"> >>></a>"
        } 
        echo 
"<br /><br />"
        
        
## Pagination end ###############################################################
     ## buttons #########################################################################
     
echo '<form method="get" action=?><input type="hidden" name="action" value="newtopic"><input type="hidden" name="forumid" value="'.$forum_id.'"><input type=submit value=\'New Topic\' class=btn style=\'margin-left: 10px\'></form>';
?>
the VERY bottom part of the code echoes out the forum tables etc im not sure what i should be doing to make the posted in topic jump to the top, any ideas would be great

cheers

Graham