php - How to force pagination to page one when filters are used? -
i have page displays records mysql database in table. on page multiple filters users can click show desired results. have added pagination works fine.
when page first loaded display results. right displays 9 results. testing purposes allowing 6 results per page. problem lets user first loads page , clicks on page 2 of pagination. while on page 2 decide add filter. have filters set php if statements change query. if click on first option should allow 2 results, does, doesn't automatically take me page 1 show results. stays on page 2 , user have click on page 1 proper results.
how change pagination script go page 1 if filter clicked?
// pagination function function pagination($query,$per_page=6,$page=1,$url='?'){ global $condb; $query = "select count(*) `num` {$query}"; $row = mysqli_fetch_array(mysqli_query($condb,$query)); $total = $row['num']; $adjacents = "2"; $prevlabel = "‹ prev"; $nextlabel = "next ›"; $lastlabel = "last ››"; $page = ($page == 0 ? 1 : $page); $start = ($page - 1) * $per_page; $prev = $page - 1; $next = $page + 1; $lastpage = ceil($total/$per_page); $lpm1 = $lastpage - 1; // //last page minus 1 $pagination = ""; if($lastpage > 1){ $pagination .= "<ul class='pagination'>"; $pagination .= "<li class='page_info'>page {$page} of {$lastpage}</li>"; if ($page > 1) $pagination.= "<li><a href='{$url}page={$prev}'>{$prevlabel}</a></li>"; if ($lastpage < 7 + ($adjacents * 2)){ ($counter = 1; $counter <= $lastpage; $counter++){ if ($counter == $page) $pagination.= "<li><a class='current'>{$counter}</a></li>"; else $pagination.= "<li><a href='{$url}page={$counter}'>{$counter}</a></li>"; } } elseif($lastpage > 5 + ($adjacents * 2)){ if($page < 1 + ($adjacents * 2)) { ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++){ if ($counter == $page) $pagination.= "<li><a class='current'>{$counter}</a></li>"; else $pagination.= "<li><a href='{$url}page={$counter}'>{$counter}</a></li>"; } $pagination.= "<li class='dot'>...</li>"; $pagination.= "<li><a href='{$url}page={$lpm1}'>{$lpm1}</a></li>"; $pagination.= "<li><a href='{$url}page={$lastpage}'>{$lastpage}</a></li>"; } elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<li><a href='{$url}page=1'>1</a></li>"; $pagination.= "<li><a href='{$url}page=2'>2</a></li>"; $pagination.= "<li class='dot'>...</li>"; ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<li><a class='current'>{$counter}</a></li>"; else $pagination.= "<li><a href='{$url}page={$counter}'>{$counter}</a></li>"; } $pagination.= "<li class='dot'>..</li>"; $pagination.= "<li><a href='{$url}page={$lpm1}'>{$lpm1}</a></li>"; $pagination.= "<li><a href='{$url}page={$lastpage}'>{$lastpage}</a></li>"; } else { $pagination.= "<li><a href='{$url}page=1'>1</a></li>"; $pagination.= "<li><a href='{$url}page=2'>2</a></li>"; $pagination.= "<li class='dot'>..</li>"; ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<li><a class='current'>{$counter}</a></li>"; else $pagination.= "<li><a href='{$url}page={$counter}'>{$counter}</a></li>"; } } } if ($page < $counter - 1) { $pagination.= "<li><a href='{$url}page={$next}'>{$nextlabel}</a></li>"; $pagination.= "<li><a href='{$url}page=$lastpage'>{$lastlabel}</a></li>"; } $pagination.= "</ul>"; } return $pagination; } ?> <?php $page = (int)(!isset($_get["page"]) ? 1 : $_get["page"]); if ($page <= 0) $page = 1; $per_page = 6; // set how many records want display per page. $startpoint = ($page * $per_page) - $per_page; $statement = "`vendor_ads` `showingads` = 'yes' , `admin` = 'enabled' , `vendortype` = 'venue' , (" . $str . ") order cpc desc"; // change `records` according table name. $results = mysqli_query($condb,"select * {$statement} limit {$startpoint} , {$per_page}"); if (mysqli_num_rows($results) != 0) { // displaying records. while ($row = mysqli_fetch_array($results)) { echo "<table class='tablebox' width='1000' border='0' cellspacing='0'> <tr><td><a href='post_click.php?url=".$row["url"]."&username=".$row["username"]."&id=".$row["id"]."&cpc=".$row["cpc"]."'> <img src='".$row["imageurl"]."'></a> <a href='favorite_upload_script.php?favoriteid=".$row["favorite_id"]."&vendorname=".$row["vendorname"]."&imageurl=".$row["imageurl"]."&urlmainpage=".$row["url"]."&redirecturl=http://www.mybudgetbride.com/ad-display-template.php'><img src='/images/favorite_button.jpg' /></a> </td> </tr> <tr> <td><center><strong>".$row["vendorname"]."</strong></center></td> </tr> </table>"; } } else { $statement = "`vendor_ads` `showingads` = 'yes' , `admin` = 'enabled' , `vendortype` = 'venue' order cpc desc"; // change `records` according table name. $results = mysqli_query($condb,"select * {$statement} limit {$startpoint} , {$per_page}"); if (mysqli_num_rows($results) != 0) { // displaying records. while ($row = mysqli_fetch_array($results)) { echo "<table class='tablebox' width='1000' border='0' cellspacing='0'> <tr><td><a href='post_click.php?url=".$row["url"]."&username=".$row["username"]."&id=".$row["id"]."&cpc=".$row["cpc"]."'> <img src='".$row["imageurl"]."'></a> <a href='favorite_upload_script.php?favoriteid=".$row["favorite_id"]."&vendorname=".$row["vendorname"]."&imageurl=".$row["imageurl"]."&urlmainpage=".$row["url"]."&redirecturl=http://www.mybudgetbride.com/ad-display-template.php'><img src='/images/favorite_button.jpg' /></a> </td> </tr> <tr> <td><center><strong>".$row["vendorname"]."</strong></center></td> </tr> </table>"; } } } ?> </td> </tr> <tr> <td><?php echo pagination($statement,$per_page,$page,$url='?');?></td> </tr> </table> </div><!-- .wrap -->
Comments
Post a Comment