Gem Posted March 13, 2009 Share Posted March 13, 2009 Hiya ... I just got this code from the tutorials part of phpfreaks.com, and it works very well (thanks crayon violent!) Im having a problem with it though. I need the results the other way round ... i.e. the last entry in my database to be on page one, first entry on last page ... see what I mean?? Heres the code ... <?php // database connection info $conn = mysql_connect("=)") or trigger_error("SQL", E_USER_ERROR); $db = mysql_select_db('bssql',$conn) or trigger_error("SQL", E_USER_ERROR); // find out how many rows are in the table $sql = "SELECT COUNT(*) FROM articles"; $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); $r = mysql_fetch_row($result); $numrows = $r[0]; // number of rows to show per page $rowsperpage = 2; // find out total pages $totalpages = ceil($numrows / $rowsperpage); // get the current page or set a default if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) { // cast var as int $currentpage = (int) $_GET['currentpage']; } else { // default page num $currentpage = 1; } // end if // if current page is greater than total pages... if ($currentpage > $totalpages) { // set current page to last page $currentpage = $totalpages; } // end if // if current page is less than first page... if ($currentpage < 1) { // set current page to first page $currentpage = 1; } // end if // the offset of the list, based on current page $offset = ($currentpage - 1) * $rowsperpage; // get the info from the db $sql = "SELECT title, subtitle, article FROM articles LIMIT $offset, $rowsperpage"; $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); // while there are rows to be fetched... while ($list = mysql_fetch_assoc($result)) { // echo data echo $list['title'] . " : " . $list['subtitle'] . " : " . $list['article'] . "<br />"; } // end while /****** build the pagination links ******/ // range of num links to show $range = 3; // if not on page 1, don't show back links if ($currentpage > 1) { // show << link to go back to page 1 echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> "; // get previous page num $prevpage = $currentpage - 1; // show < link to go back to 1 page echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> "; } // end if // loop to show links to range of pages around current page for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) { // if it's a valid page number... if (($x > 0) && ($x <= $totalpages)) { // if we're on current page... if ($x == $currentpage) { // 'highlight' it but don't make a link echo " [<b>$x</b>] "; // if not current page... } else { // make it a link echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> "; } // end else } // end if } // end for // if not on last page, show forward and last page links if ($currentpage != $totalpages) { // get next page $nextpage = $currentpage + 1; // echo forward link for next page echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> "; // echo forward link for lastpage echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> "; } // end if /****** end build pagination links ******/ ?> Hope you can help ... Thanks in advance =) PS: If anyone know's an easy code to produce a "contents list" that will display just the titles, and when clicked goes to the right page ... that would be very helpful too =) Link to comment https://forums.phpfreaks.com/topic/149317-solved-basic-pagination-reverse-results/ Share on other sites More sharing options...
Mark Baker Posted March 13, 2009 Share Posted March 13, 2009 So you put an ORDER BY in your SELECT statement Link to comment https://forums.phpfreaks.com/topic/149317-solved-basic-pagination-reverse-results/#findComment-784154 Share on other sites More sharing options...
Gem Posted March 13, 2009 Author Share Posted March 13, 2009 // get the info from the db $sql = "SELECT title, subtitle, article FROM articles ORDER BY 'ID' DESC LIMIT $offset, $rowsperpage"; $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); Makes no difference ... ??? Link to comment https://forums.phpfreaks.com/topic/149317-solved-basic-pagination-reverse-results/#findComment-784165 Share on other sites More sharing options...
Gem Posted March 13, 2009 Author Share Posted March 13, 2009 Never mind .. fixed it ... needed ORDER BY ID ... no ORDER BY 'ID' Thanks though x Link to comment https://forums.phpfreaks.com/topic/149317-solved-basic-pagination-reverse-results/#findComment-784175 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.