eaglelegend Posted May 18, 2008 Share Posted May 18, 2008 Hey, urrm, I startest to notice that my forums are getting quite big, hehe, now how could I make the ltest reply, or topic automatically "float to the top" of the list of topics? also, how would I be able to make it show whose replied and time? I know it sounds like alot of work, well to me it does but help is much appreciated! heres the code: <?php session_start(); include("header.php"); include("members.php"); $a = $_GET['action']; if($a == '') { print "<h2>Forum</h2><p>"; ?> <input type='button' value='New Topic!' onClick='parent.location="/forum.php?action=new_topic"' class='text_box' style='width: 200px' alt='Create a new topic!' title='Create a new topic!'> <?php if($message) { print "$message<p>"; } print "<table border=0 cellpadding=2 cellspacing=0 width=100%> <tr> <td class=text_box alt='The name of the topic!' title='The name of the topic!'><b>Topic</b></td> <td class=text_box align=center alt='The author of the topic!' title='The author of the topic!'><b>Author</b></td> <td class=text_box align=center alt='The date the topic was made!' title='The date the topic was made!'><b>Date</b></td> <td class=text_box align=center alt='How many replys the topic has had!' title='How many replys the topic has had!'><b>Replies</b></td>";?> <?php $ch = mysql_num_rows(mysql_query("SELECT * FROM `members` WHERE `username`='{$_SESSION['ELv2']}' AND `admin`='1'")); if($ch == 1) { ?> <td class=text_box align=center alt='Action, how you can mod this forum!' title='Action, how you can mod this forum!'><b>Action</b></td> <?php } ?> <?php print "</tr>"; $sql = mysql_query("SELECT * FROM `forum` WHERE `threadID`='0' AND `site`=\"$Z\" ORDER BY `id` DESC"); while($row = mysql_fetch_array($sql)) { extract($row); $x=$x+1; if($x%2==0) { $one = "forumone"; } else { $one = "forumtwo"; } $replies = mysql_num_rows(mysql_query("SELECT * FROM `forum` WHERE `threadID`='$id' AND `site`=\"$Z\"")); print "<tr> <td class='$one' width=40%><a href='/forum.php?action=view&topicID=$id'>$title</a></td> <td class='$one' align=center width=20%>$user</td> <td class='$one' align=center width=20%>$date</td> <td class='$one' align=center width=20%>$replies</td>";?> <?php $ch = mysql_num_rows(mysql_query("SELECT * FROM `members` WHERE `username`='{$_session['ELv2']}' AND `admin`='1'")); if($ch == 1) { ?> <?php print"<td class='$one' align=center width=20%>$action</td>";?> <?php } ?> <?php print "</tr>"; } print "</table>"; } else { if($a == 'view') { $topicID = $_GET['topicID']; if($topicID == '') { Header("Location: /forum.php"); } else { $sql = mysql_query("SELECT * FROM `forum` WHERE `id`='$topicID' AND `site`=\"$Z\""); while($row = mysql_fetch_array($sql)) { extract($row); print "<h2>Viewing Topic: $title</h2>"; ?> <input type='button' value='Back!' onClick='parent.location="/forum.php"' class='text_box' style='width: 200px' alt='Back to Forum' title='Back to Forum'> <?php print "<table border=0 cellpadding=3 cellspacing=0 width=100%> <tr> <td valign=top width=20% class='forumone'><b>$user</b><p> posted on: $date</td> <td valign=top width=80% class='forumtwo'>$text</td> </tr> </table><p>"; } $text = ""; $user = ""; $date = ""; print "<h2>Replies</h2><p>"; $sql = mysql_query("SELECT * FROM `forum` WHERE `threadID`='$topicID' AND `site`=\"$Z\""); $num = mysql_num_rows($sql); if($num > 0) { while($row = mysql_fetch_array($sql)) { extract($row); $x=$x+1; print "<table border=0 cellpadding=3 cellspacing=0 width=100%> <tr> <td valign=top class='forumone' width=5%><h2>$x</h2></td> <td valign=top class='forumone' width=15%><b>$user</b><p> posted on: $date</td> <td valign=top class='forumtwo' width=80%>$text</td> </tr> </table><br>"; } } else { print "<i>No replies yet!</i>"; } print "<h2>Add a Reply</h2>"; print "<form action='/forum.php?action=reply&topicID=$topicID' method='post'> <textarea rows=5 cols=50 nowrap name='reply' class='text_box' alt='Please enter your replay!' title='Please enter your reply!'></textarea><p> <input type='submit' value=' Add Reply ' class='text_box' alt='Post your reply!' title='Post your reply!'></form>"; } } if($a == 'reply') { $reply = $_POST['reply']; $date = date("m/d/y g:i A"); $user = $_SESSION['ELv2']; $id = $_GET['topicID']; if($reply && $id) { $reply = str_replace("<","<",$reply); $insert = mysql_query("INSERT INTO `forum` (`site`, `threadID`, `date`, `user`, `text`) VALUES(\"$Z\", '$id', '$date', \"$user\", \"$reply\")"); if($insert) { Header("Location: /forum.php?action=view&topicID=$id"); } else { print mysql_error(); } } else { print "Reply and ID required!"; } } if($a == 'new_topic') { print "<h2>New Topic</h2><p> <form action='/forum.php?action=post_topic' method='post'> <b>Title</b><br> <input type='text' name='title' size='50' class='text_box' alt='Please enter a title!' title='Please enter a title!'><p> <b>Post</b><br> <textarea rows=10 cols=60 nowrap name='text' class='text_box' alt='Now enter your message!' title='Now enter your message!'></textarea><p> <input type='submit' value=' Post Topic ' class='text_box' alt='Post your topic' title='Post your topic!'></form>"; } if($a == 'post_topic') { $title = $_POST['title']; $text = $_POST['text']; $text = str_replace("<","<",$text); $title = str_replace("<","<",$title); if($text && $title) { $user = $_SESSION['ELv2']; $date = date("m/d/y g:i A"); $insert = mysql_query("INSERT INTO `forum` (`site`, `user`, `title`, `date`, `text`) VALUES(\"$Z\", \"$user\", \"$title\", '$date', \"$text\")"); if($insert) { Header("Location: /forum.php?message=Your topic has been posted!"); } else { print mysql_error(); } } else { print "Title and Post are required"; } } } include("footer.php"); ?> Quote Link to comment https://forums.phpfreaks.com/topic/106203-newest-topicreply-float-to-top/ Share on other sites More sharing options...
eaglelegend Posted May 18, 2008 Author Share Posted May 18, 2008 No one knows how? ??? Quote Link to comment https://forums.phpfreaks.com/topic/106203-newest-topicreply-float-to-top/#findComment-544347 Share on other sites More sharing options...
eaglelegend Posted May 18, 2008 Author Share Posted May 18, 2008 ??? Quote Link to comment https://forums.phpfreaks.com/topic/106203-newest-topicreply-float-to-top/#findComment-544377 Share on other sites More sharing options...
DeanWhitehouse Posted May 18, 2008 Share Posted May 18, 2008 if they have id's just ORDER BY that Quote Link to comment https://forums.phpfreaks.com/topic/106203-newest-topicreply-float-to-top/#findComment-544381 Share on other sites More sharing options...
eaglelegend Posted May 18, 2008 Author Share Posted May 18, 2008 ok sure, but still, how do I have the "ids" float to the top? Quote Link to comment https://forums.phpfreaks.com/topic/106203-newest-topicreply-float-to-top/#findComment-544383 Share on other sites More sharing options...
BlueSkyIS Posted May 18, 2008 Share Posted May 18, 2008 each time a topic is posted to, update a datetime or timestamp field on that topic, then sort all topics by that date field, in descending order. Quote Link to comment https://forums.phpfreaks.com/topic/106203-newest-topicreply-float-to-top/#findComment-544385 Share on other sites More sharing options...
eaglelegend Posted May 18, 2008 Author Share Posted May 18, 2008 BlueSkyIS, is there any way/where I can learn to do what you just said? >_< Quote Link to comment https://forums.phpfreaks.com/topic/106203-newest-topicreply-float-to-top/#findComment-544387 Share on other sites More sharing options...
BlueSkyIS Posted May 18, 2008 Share Posted May 18, 2008 you need to: 1. add a timestamp field to your forums table 2. in SQL, "ORDER BY timestamp DESC" to order the records from latest to oldest. if either of these two items are a challenge, you might want to back up to some basic PHP/MySQL tutorials. Quote Link to comment https://forums.phpfreaks.com/topic/106203-newest-topicreply-float-to-top/#findComment-544389 Share on other sites More sharing options...
LooieENG Posted May 18, 2008 Share Posted May 18, 2008 Add a column to "posts" or whatever called last_post, then when someone posts, add a timestamp to it. Then use something like $result = mysql_query("SELECT * FROM posts ORDER BY last_post DESC"); I Think that should work Quote Link to comment https://forums.phpfreaks.com/topic/106203-newest-topicreply-float-to-top/#findComment-544390 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.