I-AM-OBODO Posted June 23, 2015 Share Posted June 23, 2015 Hi all. my pagination does not show the info on next page? believe the problem is that the value of my $_GET[id] is not parse to the next page. but i dont know how to solve it. the error is unidentified id thanks my code $agent= $_GET['id']; $stmt = $pdo->prepare("SELECT surname, firstname FROM confirmed WHERE username = '$agent'"); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); $_SESSION['ref_agent'] = $row['surname'] . " ". $row['firstname']; error_reporting(E_ALL & ~E_NOTICE); /* Place code to connect to your DB here. */ // include your code to connect to DB. $tbl_name="processed"; //your table name // How many adjacent pages should be shown on each side? $adjacents = 5; /* First get total number of rows in data table. If you have a WHERE clause in your query, make sure you mirror it here. */ $stmt = $pdo->prepare("SELECT COUNT(*) as num FROM $tbl_name WHERE invitee = '$agent'"); $stmt->execute(); $total_pages = $stmt->fetch(PDO::FETCH_ASSOC); $total_pages = $total_pages['num']; /* Setup vars for query. */ $targetpage = "view-commission.php"; //your file name (the name of this file) $limit = 3; //how many items to show per page $page = $_GET['page']; if($page) $start = ($page - 1) * $limit; //first item to display on this page else $start = 0; //if no page var is given, set start to 0 /* Get data. */ $stmt = $pdo->prepare("SELECT * FROM $tbl_name WHERE invitee = '$agent' ORDER BY date_processed DESC LIMIT $start, $limit"); $stmt->execute(); //$num_rows = $stmt->rowCount(); //print "<p>$num_rows Record(s) Found.</p>"; /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. $prev = $page - 1; //previous page is page - 1 $next = $page + 1; //next page is page + 1 $lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up. $lpm1 = $lastpage - 1; //last page minus 1 /* Now we apply our rules and draw the pagination object. We're actually saving the code to a variable in case we want to draw it more than once. */ $pagination = ""; if($lastpage > 1) { $pagination .= "<div class=\"pagination\">"; //previous button if ($page > 1) $pagination.= "<a href=\"$targetpage?page=$prev\">« previous</a>"; else $pagination.= "<span class=\"disabled\">« previous</span>"; //pages if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>"; $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; $pagination.= "..."; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>"; $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>"; } //close to end; only hide early pages else { $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; $pagination.= "..."; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>"; } } } //next button if ($page < $counter - 1) $pagination.= "<a href=\"$targetpage?page=$next\">next »</a>"; else $pagination.= "<span class=\"disabled\">next »</span>"; $pagination.= "</div>\n"; } echo "<table width='100%' class='table table-striped'>"; echo "<tr> <th bgcolor='#444444' align='center'><font color='#fff'> one</th> <th bgcolor='#444444' align='center'><font color='#fff'> two</font></th> <th bgcolor='#444444' align='center'><font color='#fff'> three</font></th> </tr>"; // keeps getting the next row until there are no more to get while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { // Print out the contents of each row into a table echo "<tr><td>"; echo $row['trans_ref']; echo "</td><td>"; echo ucwords($row['payee']); echo "</td><td>"; echo number_format($row['amount'],2); echo "</tr></td>"; } echo "</table>"; <?php echo $pagination ?> thanks Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/ Share on other sites More sharing options...
fastsol Posted June 23, 2015 Share Posted June 23, 2015 Looks like you should be using $_GET['page'] instead of id. You're setting the get var to page through the rest of the code, so why are you trying to get it from id? Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/#findComment-1514660 Share on other sites More sharing options...
mac_gyver Posted June 23, 2015 Share Posted June 23, 2015 (edited) your pagination links need to include the $_GET['id'] value (and any future possible items you add to links.) if you build the query string part of the pagination links using http_build_query(), this will happen 'automatically'. if you do an advanced search on the forum for http_build_query() and my user name, you will find a page worth of examples showing how to use http_build_query() to combine any existing $_GET variables with your pagination values when you build the links. edit: here's one showing the phpfreaks pagination script, modified to use http_build_query() - http://forums.phpfreaks.com/topic/291074-php-mysli-pagination-with-items-per-page-select-option/?hl=%2Bhttp_build_query&do=findComment&comment=1491152 Edited June 23, 2015 by mac_gyver Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/#findComment-1514663 Share on other sites More sharing options...
I-AM-OBODO Posted June 23, 2015 Author Share Posted June 23, 2015 thanks all. i knw where the problem is, the thing is i do not know how to fix it. mac_givers, thanks for the link, will study it but for now, it wont solve my situation or ut will take some time. thanks anyway Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/#findComment-1514667 Share on other sites More sharing options...
I-AM-OBODO Posted June 24, 2015 Author Share Posted June 24, 2015 still couldnt get it to work pls Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/#findComment-1514764 Share on other sites More sharing options...
mac_gyver Posted June 24, 2015 Share Posted June 24, 2015 we cannot help you with what you tried unless you post what you tried. your task is simple, change each place that is producing a pagination link, of which there are several, so writing a user function may be helpful, so that it also has the id=value in the link. the method i suggested makes this general purpose and future proof. it also url-encodes the values for you in case they have any characters that are not allowed in links. the code in the linked to forum reply shows how to do this. Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/#findComment-1514765 Share on other sites More sharing options...
I-AM-OBODO Posted June 24, 2015 Author Share Posted June 24, 2015 we cannot help you with what you tried unless you post what you tried. your task is simple, change each place that is producing a pagination link, of which there are several, so writing a user function may be helpful, so that it also has the id=value in the link. the method i suggested makes this general purpose and future proof. it also url-encodes the values for you in case they have any characters that are not allowed in links. the code in the linked to forum reply shows how to do this. thanks. will give it another shot and see. Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/#findComment-1514768 Share on other sites More sharing options...
I-AM-OBODO Posted June 28, 2015 Author Share Posted June 28, 2015 still no head way Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/#findComment-1515142 Share on other sites More sharing options...
Ch0cu3r Posted June 28, 2015 Share Posted June 28, 2015 mac_gver has explained why the id is not being passed and what changes you need to do your code to fix your issue. If you are stuck I suggest you study the code he linked to, look at line 110 onward to see how he is processing the pagination links. Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/#findComment-1515143 Share on other sites More sharing options...
mac_gyver Posted June 28, 2015 Share Posted June 28, 2015 (edited) and again - we cannot help you with what you tried unless you post what you tried. just posting that you cannot get something to work is pointless, because we are not going to write or fix your code for you. also, the link i posted above in this thread HIGHLIGHTS the http_build_query() statements in the code, you cannot miss where they are being used at in the code. Edited June 28, 2015 by mac_gyver Quote Link to comment https://forums.phpfreaks.com/topic/296975-pagination-not-showing-nextpage/#findComment-1515155 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.