php - Sorting back to default value whenever I click on next page -
i'm new php. in scenario have 2 select options,category,level user able select on either option filter list. paging fine when click on second page, sorting reverts default value. please help
subjectlevelfee
act parent table store id
each child table, while subject
,level
,category
child table consist of own name such subjectname
,levelname
, categoryname
.
<form method="post"> <div class="shortbar"> <div class="sdetails" style="width:200px"><p>filter     <span>by</span></p></div> <label class="shortlist"> <select name="category"> <option value="">category</option> <?php $category=mysqli_query($conn,"select * category"); while($row = mysqli_fetch_assoc($category)){?> <option value="<?php echo $row['categoryid']; ?>"> <?php echo $row['categoryname'];?></option> <?php } ?> </select> </label> <div class="sdetails" style="margin-right:-30px;margin-left:-30px;"><p><span>by</span></p></div> <label class="shortlist"> <select name="edulevel"> <option value="">education level</option> <?php $level=mysqli_query($conn,"select * level"); while($row = mysqli_fetch_assoc($level)){?> <option value="<?php echo $row['levelid']; ?>"> <?php echo $row['levelname'];?></option> <?php } ?> </select> </label> <div class="shortlist"><input type="submit" name="sortbtn" value="search" style="padding-bottom:5px;text-align:center;"/></div> </div> </form> <div class="container-fluid inner"> <table class="tableizer-table"> <tr class="tableizer-firstrow"> <th>category</th> <th>level</th> <th>subject name</th> <th>fees</th> </tr> <?php if(isset($_post["sortbtn"])) { $category = $_post['category']; $lvl = $_post['edulevel']; $sql="select * category categoryid = '$category'"; $cresult = mysqli_query($conn, $sql); $c=mysqli_num_rows($cresult); $sql2="select * level levelid = '$lvl'"; $lresult = mysqli_query($conn, $sql2); $l=mysqli_num_rows($lresult); if($c==1 && $l==0) { $statement="category,level,subject,subjectlevelfee category.categoryid = '$category' , category.categoryid=subjectlevelfee.categoryid , level.levelid=subjectlevelfee.levelid and subject.subjectid=subjectlevelfee.subjectid"; $statement2="select category.categoryname cname,level.levelname lname,subject.subjectname sname, subjectlevelfee.subjectfee fee category,level,subject,subjectlevelfee category.categoryid = '$category' , category.categoryid=subjectlevelfee.categoryid , level.levelid=subjectlevelfee.levelid , subject.subjectid=subjectlevelfee.subjectid and subjectlevelfee.subjectfee !=0 order cname asc"; } elseif($l==1 && $c==0) { $statement="category,level,subject,subjectlevelfee level.levelid = '$lvl' , category.categoryid=subjectlevelfee.categoryid , level.levelid=subjectlevelfee.levelid , subject.subjectid=subjectlevelfee.subjectid and subjectlevelfee.subjectfee !=0 "; $statement="select category.categoryname cname,level.levelname lname,subject.subjectname sname, subjectlevelfee.subjectfee fee category,level,subject,subjectlevelfee level.levelid = '$lvl' , category.categoryid=subjectlevelfee.categoryid , level.levelid=subjectlevelfee.levelid , subject.subjectid=subjectlevelfee.subjectid and subjectlevelfee.subjectfee !=0 order cname asc "; } elseif($c==1 && $l==1) { $statement="category,level,subject,subjectlevelfee category.categoryid = '$category' , level.levelid = '$lvl' , category.categoryid=subjectlevelfee.categoryid , level.levelid=subjectlevelfee.levelid , subject.subjectid=subjectlevelfee.subjectid , subjectlevelfee.subjectfee !=0"; $statement2="select category.categoryname cname,level.levelname lname,subject.subjectname sname, subjectlevelfee.subjectfee fee category,level,subject,subjectlevelfee category.categoryid = '$category' , level.levelid = '$lvl' , category.categoryid=subjectlevelfee.categoryid , level.levelid=subjectlevelfee.levelid , subject.subjectid=subjectlevelfee.subjectid , subjectlevelfee.subjectfee !=0 order cname asc"; } else { echo 'no result matched !! please select option.'; $statement="category,level,subject,subjectlevelfee category.categoryid=subjectlevelfee.categoryid and level.levelid=subjectlevelfee.levelid , subject.subjectid=subjectlevelfee.subjectid , subjectlevelfee.subjectfee !=0"; $statement2="select category.categoryname cname,level.levelname lname,subject.subjectname sname, subjectlevelfee.subjectfee fee category,level,subject,subjectlevelfee category.categoryid=subjectlevelfee.categoryid and level.levelid=subjectlevelfee.levelid , subject.subjectid=subjectlevelfee.subjectid , subjectlevelfee.subjectfee !=0 order cname asc "; } include('paging.php'); echo $list; ?> </table> <div id="pagination_controls"><?php echo $paginationctrls; ?></div> <?php } else { $statement="category,level,subject,subjectlevelfee category.categoryid=subjectlevelfee.categoryid and level.levelid=subjectlevelfee.levelid , subject.subjectid=subjectlevelfee.subjectid , subjectlevelfee.subjectfee !=0"; $statement2="select category.categoryname cname,level.levelname lname,subject.subjectname sname, subjectlevelfee.subjectfee fee category,level,subject,subjectlevelfee category.categoryid=subjectlevelfee.categoryid and level.levelid=subjectlevelfee.levelid , subject.subjectid=subjectlevelfee.subjectid , subjectlevelfee.subjectfee !=0 order cname asc "; include('paging.php'); echo $list; ?> </table> <div id="pagination_controls"><?php echo $paginationctrls; ?></div> <?php } ?>
the code paging function. paging.php <?php $sql = "select count(subjectlevelfee.subjectfeeid) sbid $statement"; $query = mysqli_query($conn, $sql); $row = mysqli_fetch_row($query); // here have total row count $rows = $row[0]; // number of results want displayed per page $page_rows = 1; // tells page number of our last page $last = ceil($rows/$page_rows); // makes sure $last cannot less 1 if($last < 1){ $last = 1; } // establish $pagenum variable $pagenum = 1; // pagenum url vars if present, else = 1 if(isset($_get['pn'])){ $pagenum = preg_replace('#[^0-9]#', '', $_get['pn']); } // makes sure page number isn't below 1, or more our $last page if ($pagenum < 1) { $pagenum = 1; } else if ($pagenum > $last) { $pagenum = $last; } // sets range of rows query chosen $pagenum $limit = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; // query again, grabbing 1 page worth of rows applying $limit $sql = "$statement2 $limit"; $query = mysqli_query($conn, $sql); // shows user page on, , total number of pages $textline1 = "subjects (<b>$rows</b>)"; $textline2 = "page <b>$pagenum</b> of <b>$last</b>"; // establish $paginationctrls variable $paginationctrls = ''; // if there more 1 page worth of results if($last != 1){ /* first check if on page one. if don't need link previous page or first page nothing. if aren't generate links first page, , previous page. */ if ($pagenum > 1) { $previous = $pagenum - 1; $paginationctrls .= '<a href="'.$_server['php_self'].'?pn='.$previous.'">previous</a> '; // render clickable number links should appear on left of target page number for($i = $pagenum-4; $i < $pagenum; $i++){ if($i > 0){ $paginationctrls .= '<a href="'.$_server['php_self'].'?pn='.$i.'">'.$i.'</a> '; } } } // render target page number, without being link $paginationctrls .= ''.$pagenum.' '; // render clickable number links should appear on right of target page number for($i = $pagenum+1; $i <= $last; $i++){ $paginationctrls .= '<a href="'.$_server['php_self'].'?pn='.$i.'">'.$i.'</a> '; if($i >= $pagenum+4){ break; } } // same above, checking if on last page, , generating "next" if ($pagenum != $last) { $next = $pagenum + 1; $paginationctrls .= ' <a href="'.$_server['php_self'].'?pn='.$next.'">next</a> '; } } $list = ''; while($row = mysqli_fetch_array($query, mysqli_assoc)){ $ct = $row['cname']; $lv = $row['lname']; $sb = $row['sname']; $fe = $row['fee']; $list .= '<tr class="c"><td>'.$ct.'</td><td>'.$lv.'</td><td>'.$sb.'</td><td>'.$fe.'</td></tr>'; } // close database connection mysqli_close($conn); ?>
Comments
Post a Comment