runnerjp Posted March 18, 2010 Share Posted March 18, 2010 Im tryign to number the posts on my forum. These numbers only refer to posts under a topic. Im not counting how many posts are under a topic but just giving them a number. At the moment i have this script in place: $counter2 = 1; $counter2++; The problem is when a go to page 2 it starts from 2 again. here is the full forum code so you can get an idea how it works <?php require_once '../settings.php'; checkLogin('1 2'); include "../info.php"; // sets username/id ect include "../getuser.php"; // records user view on page include "checkinfo.php"; //Your ip address is...; include "../BBClass.php"; //class for bbcode $gettopic3=mysql_fetch_assoc(mysql_query("SELECT * from forumtutorial_posts where postid='$forumpostid'")); include "forumnav.php"; // shows where you are on the forum $getuser = mysql_fetch_assoc(mysql_query("SELECT * from users where Username='$username'")); if ($notify == "yes") { $updateemail="DELETE FROM forum_email WHERE topic_id='$forumpostid' AND user_id = '$id'"; mysql_query($updateemail) or die(mysql_error()); } //Here we count the number of results //Edit $data to be your query $data =mysql_query("SELECT * from forumtutorial_posts where parentid='$forumpostid'") or die(mysql_error()); $rows =mysql_num_rows($data); //This is the number of results displayed per page $page_rows= 5; //This sets the range to display in our query if ($pagenum === "last") { $query ="Select COUNT(*) as C from forumtutorial_posts where parentid='$forumpostid'"; $result=mysql_query($query); $data =mysql_fetch_array($result); if ($data['C'] == 0) $pagenum=1; else $pagenum=ceil($data['C'] / $page_rows); } $pagenum =(is_numeric($pagenum) && $pagenum >= 1) ? (int)$pagenum : 1; $max ='limit ' . ($pagenum - 1) * $page_rows . ',' . $page_rows; //This is your query again, the same one... the only difference is we add $max into it $start = (($pagenum-1) * $page_rows)+1; { } ?> <table width = "80%" align="center"> <tr> <td width = "36%" height = "21"> <?php $getusersonline ="SELECT user_id,user FROM useronline WHERE (file LIKE 'http://www.runningprofiles.com/members/index.php?page=message&forum=$forum&id=$forumpostid' or file LIKE 'http://www.runningprofiles.com/members/index.php?page=message&forum=$forum&id=$forumpostid&forum=general' or file LIKE 'http://www.runningprofiles.com/members/index.php?page=message&forum=$forum&id=$forumpostid' or file LIKE 'http://www.runningprofiles.com/members/index.php?page=message&forum=$forum&id=$forumpostid&pagenum=$pagenum' or file LIKE 'http://www.runningprofiles.com/members/index.php?page=message&forum=$forum&id=$forumpostid¬ify=yes' or file LIKE 'http://www.runningprofiles.com/members/index.php?page=message&forum=$forum&id=$forumpostid&pagenum=last' ) AND timestamp > " . (time() - 900); //grab from sql users on in last 15 minutes $getusersonline2=mysql_query($getusersonline) or die("Could not get users"); $num =mysql_num_rows($getusersonline2); echo " <b>Currently Viewing: </b>"; $tmp=array(); while ($getusersonline3=mysql_fetch_array($getusersonline2)) { $tmp[]="<a href='$getusersonline3[user]'>$getusersonline3[user]</a>"; } echo implode(',', $tmp); ?> </td> <td width = "64%" align = "right" valign = "bottom"> <div align = "right"><a href = "index.php?page=mainforums"> <img src = "/images/homeforum.gif" alt = "home" border = "0"/></a> <?php echo ' <a href="index.php?page=forum&forum= $forum">' ?><img src = "/images/backforum.gif" border = "0" alt = "back"/> </a> <?php if ($gettopic3['forumlock'] == 0) { ?> <?php echo ' <a href="index.php?page=reply&id=$forumpostid&forum=$forum">' ?> <img src = "/images/post_reply.gif" border = "0" alt = "reply"/> </a> </div> <? } ?></td> </tr> <?php if ($pagenum == 1) { ?> </table> <table width = "90%" align="center" cellpadding = "0" cellspacing = "0" > <tr> <td> <table width = "100%" align = "center" cellpadding = "0" cellspacing = "0" class="loggedin"> <tr> <td colspan="3" align="right" class = 'border'><table width="100%" style = "height:auto" > <tr> <td width="15%" align="left"><font size="2" color="white"> <a name="<?php echo $gettopic3['postid'] ?>" href = 'http://www.runningprofiles.com/members/index.php?page=message&forum=<?php echo $forum ?>&id=<?php echo $forumpostid ?>#<?php echo $gettopic3['postid'] ?>'><strong>#1</strong></a></font></td> <td width="32%" align="left"></td> <td width="33%" align="right"><font size="2" color="white">» Posted <? $dbtime=$gettopic3['showtime']; $time =date("F j Y, g:i a", $dbtime); $time =date("F j, Y, g:i a", $dbtime); gettheTime($dbtime, $time); ?> « </font></td> </tr> </table></td> </tr> <tr> <td width = "20%" align = "center" valign = "middle" class = "forum_view_topic_header_2_b" ><a href = '/members/<? echo $getreplies3['author']; ?>'> <span class = "style5"><? echo "<b>". $gettopic3['author']." </b>" ?></span></a> <?php $result = mysql_query( "SELECT * FROM useronline WHERE(user='" . $gettopic3['author'] . "')"); while ($row=mysql_fetch_array($result)) { $last_active=time() - $row['timestamp']; } echo ($last_active < 300) ? '<img src="http://www.runningprofiles.com/images/useron.gif" width="12" height="11" alt= "usron" />' : '<img src="http://www.runningprofiles.com/images/useroff.gif" width="12" height="11" alt= "usroff" />'; ?> <br /> <? $query="SELECT * FROM users WHERE Username = '" . $gettopic3['author'] . "' LIMIT 1"; if ($result=mysql_query($query)) { if (mysql_num_rows($result)) { $array =mysql_fetch_assoc($result); $image =$array['image']; $postnum=$array['post_count']; echo "<img src=\"http://www.runningprofiles.com/members/images/mini/$image\" border=\"1\" alt =\"mini\" />"; ?> <br /> <span class = "style7"> Posts: <?php echo $postnum; ?> </span> <? } } ?> </td> <td width = "85%" colspan="2" style="background-color:white"> <table width = "100%" border = "0" cellpadding = "5" cellspacing = "0"> <tr> <td width="96%" valign = "top"><span class="style1"> <?php $message =nl2br($gettopic3['post']); $b =new BBCode(); $b->selection=nl2br($message); $b->parseCode(); echo nl2br($b->parsed); ?> </span></td> </tr> <tr> <td align = "left" valign = "top"></td> </tr> <tr> <td height = "27" colspan = "2" align = "right" > </td> </tr> <tr> <td height = "28" align = "right" valign = "top"> <a href = "index.php?page=reply&forum=<?php echo $forum; ?>&id=<? echo $forumpostid ?>&pid=<? echo $gettopic3['postid']; ?>"><img src = "/images/quote.gif" border = "0" height="16" width="16" alt = "Quote"/></a> <?php $dbtime =$gettopic3['showtime']; $intTime=time(); $intDiff=$intTime - $dbtime; if ($intDiff < 7200 && $gettopic3['author'] != $username) { ?> <?php include "include/editmessage.php"; // shows where you are on the forum ?> <a href = "index.php?page=editmessage&forum=<?php echo $forum; ?>&id=<? echo $forumpostid ?>&pid=<? echo $gettopic3['postid']; ?>"><img src = "/images/edit.bmp" border = "0" alt = "Edit"/></a> <?php } ?> <?php //Now increase it: $CONT_ID++; ; ?> </td> <td width = "4%" align = "right" valign = "bottom"> </td> </tr> </table></td> </tr> </table></td> </tr> </table> <?php } $getreplies = "Select * from forumtutorial_posts where parentid='$forumpostid' ORDER BY showtime $max"; //getting replies $getreplies2=mysql_query($getreplies) or die(mysql_error() . "Could not get replies"); $counter2 = 1; while ($getreplies3=mysql_fetch_array($getreplies2)) { ?><br /> <table width = "90%" align="center" cellpadding = "0" cellspacing = "0" > <tr> <td> <table width = "100%" align = "center" cellpadding = "0" cellspacing = "0" class="loggedin"> <tr> <td colspan="3" align="right" class = 'border'> <table width="100%"> <tr> <td width="15%" align="left"><font size="2" color="white"> <?php $counter2++; ?> <a name="<?php echo $getreplies3['postid'] ?>"> </a><a href ='http://www.runningprofiles.com/members/index.php?page=message&forum=<?php echo $forum ?>&id=<?php echo $forumpostid ?>#<?php echo $getreplies3['postid'] ?>'><strong>#<?php echo $counter2;?></strong></a></font></td> <td width="32%" align="left"> </td> <td width="33%" align="right"><font size="2" color="white">» Replied <? $dbtime=$getreplies3['showtime']; $time =date("F j Y, g:i a", $dbtime); $time =date("F j, Y, g:i a", $dbtime); gettheTime($dbtime, $time); ?> « </font></td> </tr> </table></td> </tr> <tr> <td class = "forum_view_topic_header_2_b" width = "20%" align = "center" valign = "middle" ><a href = '/members/<? echo $getreplies3['author']; ?>'> <span class = "style5"><? echo "<b>". $getreplies3['author']." </b>" ?></span></a> <?php $result = mysql_query( "SELECT * FROM useronline WHERE(user='" . $getreplies3['author'] . "')"); while ($row=mysql_fetch_array($result)) { $last_active=time() - $row['timestamp']; } echo ($last_active < 300) ? '<img src="http://www.runningprofiles.com/images/useron.gif" width="12" height="11" alt= "usron" />' : '<img src="http://www.runningprofiles.com/images/useroff.gif" width="12" height="11" alt= "usroff" />'; ?> <br /> <? $query="SELECT * FROM users WHERE Username = '" . $getreplies3['author'] . "' LIMIT 1"; if ($result=mysql_query($query)) { if (mysql_num_rows($result)) { $array =mysql_fetch_assoc($result); $image =$array['image']; $postnum=$array['post_count']; echo "<img src=\"http://www.runningprofiles.com/members/images/mini/$image\" border=\"1\" alt =\"mini\" />"; ?> <br /> <span class = "style7"> Posts: <?php echo $postnum; ?> </span> <? } } ?> </td> <td width = "85%" colspan="2" style="background-color:white"> <table width = "100%" border = "0" cellpadding = "5" cellspacing = "0"> <tr> <td width="96%" valign = "top"> <?php $message =nl2br($getreplies3['post']); $b =new BBCode(); $b->selection=nl2br($message); $b->parseCode(); echo nl2br($b->parsed); ?> </td> </tr> <tr> <td align = "left" valign = "top"></td> </tr> <tr> <td height = "27" colspan = "2" align = "right" > </td> </tr> <tr> <td height = "28" align = "right" valign = "top"> <a href = "index.php?page=reply&forum=<?php echo $forum; ?>&id=<? echo $forumpostid ?>&pid=<? echo $getreplies3['postid']; ?>"><img src = "/images/quote.gif" border = "0" height="16" width="16" alt = "Quote"/></a> <?php $dbtime =$getreplies3['showtime']; $intTime=time(); $intDiff=$intTime - $dbtime; if ($intDiff < 7200 && $getreply3['author'] != $username || $getuser = 'Admin') { include 'editmessage.php'; //Now increase it: $CONT_ID++; } ; ?> </td> <td width = "4%" align = "right" valign = "bottom"> </td> </tr> </table></td> </tr> </table></td> </tr> </table> <? } ?> <? echo "<br /><center>"; // Find out the total number of pages depending on the limit set $numofpages=$rows / $page_rows; $totalpages=ceil($numofpages); // Start links for pages $maxpage =$totalpages == 0 ? 1 : $totalpages; // add this line echo "Page " . $pagenum . " of " . $maxpage . "</center>"; // change this // Sets link for previous 25 and return to page 1 if ($pagenum != 1) { $pageprev=($pagenum - 1); echo "<center><a href=\"" . $_SERVER['PHP_SELF'] . "?page=message&forum=$forum&id=$forumpostid&pagenum=1\"><<</a> "; echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=message&forum=$forum&id=$forumpostid&pagenum=$pageprev\">PREV </a> "; } else { echo "<center>PREV "; } // Loop thru all the pages and echo out the links for ($i=1; $i <= $numofpages; $i++) { if ($i == $pagenum) { echo "[" . $i . "] "; } else { echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=message&forum=$forum&id=$forumpostid&pagenum=$i\">$i</a> "; } } // Check for straglers after the limit blocks if (($rows % $page_rows) != 0) { if ($i == $pagenum) { echo "[" . $i . "] "; } else { echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=message&forum=$forum&id=$forumpostid&pagenum=$i\">$i</a> "; } } // Print out the Next 25 and Goto Last page links if (($rows - ($page_rows * $pagenum)) > 0) { $pagenext=$pagenum++; echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=message&forum=$forum&id=$forumpostid&pagenum=$pagenext\">NEXT </a> "; echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=message&forum=$forum&id=$forumpostid&pagenum=$totalpages\">>></a> </center>"; } else { echo("NEXT </center> <br />"); } ?> As you can see if on pahe 1 it echos the topic starter.... anything more it doesnt and thats why i start it from number 2. Link to comment https://forums.phpfreaks.com/topic/195670-numbering-posts-dependign-on-page-number/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.