mforan Posted October 29, 2010 Share Posted October 29, 2010 im building a forum and i was wondering how to make page numbers work, so only 10 or 20 posts show up, then it shows page 2, etc. like. 1, 2, 3, 4, 5 even better would be something like phpbb: 1 ... 6, 7, 8 im assuming this is some pretty advanced coding involved.... <?php $query = "SELECT * FROM forum_posts WHERE topic_no='".$_REQUEST['topic_no']."' ORDER BY date ASC"; $result = mysql_query($query) or die("Error: ".mysql_error()); $fnames = array(); while ($row = mysql_fetch_array($result, MYSQL_NUM)) { $fnames[] = $row; } for ($i = 0; $i < count($fnames); $i++) { $query = "SELECT views FROM forum_posts WHERE topic_no='".$fnames[$i][8]."' AND author='1'"; $result = mysql_query($query) or die("Error: ".mysql_error()); $views = array(); $views = mysql_fetch_array($result, MYSQL_NUM); $query = "SELECT createdate,alliance,rank,country,username FROM users WHERE username='".$fnames[$i][1]."'"; $result = mysql_query($query) or die("Error: ".mysql_error()); $user = array(); while ($row = mysql_fetch_array($result, MYSQL_NUM)) {$data = $row;} $query = "SELECT logo FROM udata WHERE username='".$fnames[$i][1]."'"; $result = mysql_query($query) or die("Error: ".mysql_error()); $logo = array(); while ($row = mysql_fetch_array($result, MYSQL_NUM)) {$logo = $row;} $query = "SELECT COUNT(username) FROM forum_posts WHERE username='$data[4]'"; $result = mysql_query($query) or die("Error: ".mysql_error()); $postc = mysql_fetch_array($result, MYSQL_NUM); $logoi = '<img src="'.$logo[0].'" width="100" height="100" /><br><br>'; $query = "SELECT admin FROM users WHERE username='".$fnames[$i][1]."'"; $result = mysql_query($query) or die("Error: ".mysql_error()); while ($row = mysql_fetch_array($result, MYSQL_NUM)) {$acount = $row;} if ($acount[0] == 1) { $mod[$i] = '<font color="lightgreen">ADMINISTRATOR</font><br>'; } else { $query = "SELECT mteam FROM users WHERE username='".$fnames[$i][1]."'"; $result = mysql_query($query) or die("Error: ".mysql_error()); while ($row = mysql_fetch_array($result, MYSQL_NUM)) {$mcount = $row;} if ($mcount[0] == 1) { $mod[$i] = '<font color="lightgreen">MODERATOR</font><br>'; } } if ($fnames[$i][1] == $info[3]) { $buttons[$i] = ' <div class="forumbuttons"> <form action="forums_edit.php" method="post" class="lineup"> <input type="hidden" name="postid" value="'.$fnames[$i][0].'"> <input type="submit" name="edit" class="submit" value="Edit" /> </form> <form action="forums_topic.php" method="post" class="lineup"> <input type="submit" name="delete" class="submit" value="Delete" /> <input type="hidden" name="postid" value="'.$fnames[$i][0].'"> <input type="hidden" name="username" value="'.$fnames[$i][1].'"> <input type="hidden" name="topicname" value="'.$fnames[$i][2].'"> <input type="hidden" name="forumid" value="'.$fnames[$i][6].'"> <input type="hidden" name="topic_no" value="'.$fnames[$i][8].'"> <input type="hidden" name="author" value="'.$fnames[$i][5].'"> </form> </div> '; } else { $buttons[$i] = ' '; } echo ' <tr> <td class="variable" align="center" valign="top"><a class="variable" href="browse.php?name='.$fnames[$i][1].'">'.$fnames[$i][1].'</a></td> <td class="variable" align="left">Post Subject: <a class="noline">'.$fnames[$i][2].'</a></td> </tr> <tr> <td align="left" valign="top" class="variable"> <div style="margin-left:10px"> '.$mod[$i].' '.$logoi.' Joined: <a class="noline">'.date('d-m-Y', $data[0]).'</a><br> Posts: <a class="noline">'.$postc[0].'</a><br> Alliance: <a class="noline">'.$data[1].'</a><br> Rank: <a class="noline">'.$data[2].'</a><br> From: <a class="noline">'.$data[3].'</a><br> </div></td> <td align="left" valign="top" class="variable"><a class="noline">'.$fnames[$i][4].'</a> </td> </tr> <tr> <td align="left" valign="center" class="variable"><div style="margin-left:10px"><a href="#top">Top</a></div></td> <td class="variable" align="right" valign="top"><div class="forumbuttons">'.$buttons[$i].'</div></td> </tr> '; } ?> </table> <br> <form action="forums_topic.php" method="post"> <table width="540" class="metal" cellpadding="1" cellspacing="1"> <tr> <td colspan="2" class="head">Reply</td> </tr> <tr> <td width="108" height="19" valign="top" class="variable"><div align="left">Message body:<br> <a class="noline">Enter your message here, it may contain no more than <STRONG>60000</STRONG> characters.</a></div></td> <td width="381" class="variable"><textarea name="message" id="message" cols="60" rows="8"></textarea></td> </tr> <tr> <td height="19" colspan="2" valign="top" class="variable"><div align="center"> <input type="hidden" value="<?php echo $forumid;?>" name="forumid"> <input type="hidden" value="<?php echo $_REQUEST['topic_no'];?>" name="topic_no"> <input type="hidden" value="<?php echo $tname;?>" name="topicname"> <input name="posted_reply" type="submit" class="submit" id="button" value="Submit"> </div></td></tr> </table> </form> <?php } ?> the code above is the output for the posts. help would muchly be appreciated! Link to comment https://forums.phpfreaks.com/topic/217251-page-numbering/ Share on other sites More sharing options...
Yucky Posted October 29, 2010 Share Posted October 29, 2010 A simple solution is to do something like this: $displayLimit = 10; $startFrom = $_GET['page'] * $displayLimit; $query = mysql_query("SELECT * FROM `posts` LIMIT $startFrom, $displayLimit"); The numbering shouldn't give you any problems. Just have a next button that increments the current page ID value. Example: 1) mypage.php?page=2 2) $_GET['page'] has the current page number. $_GET['page'] +/-1 for going back/forwards. 3) Query sent: "SELECT * FROM `posts` LIMIT 20, 10" - selects 10 posts starting from record 20. Obviously this is a basic example and you'd need to expand upon it but it should give you a good starting point. Link to comment https://forums.phpfreaks.com/topic/217251-page-numbering/#findComment-1128214 Share on other sites More sharing options...
Pikachu2000 Posted October 30, 2010 Share Posted October 30, 2010 There's a tutorial on the main part of this site on the subject, pagination. Link to comment https://forums.phpfreaks.com/topic/217251-page-numbering/#findComment-1128216 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.