Really need helps regarding Pagination with Sort
Posted on
16th Feb 2014 07:03 pm by
admin
I need someone helps regarding pagination problem...i actually want to make my page limited to let say 50
so it will look like this
Did you know?Explore Trending and Topic pages for more stories like this.
page1=0-50
page2=51-100
Then i want to sort let say based on the name of a person by giving <a href> and ORDER i can do the sort, but the problem occurs when i want to sort records on page 2, everything got messed up
Can anyone help me..below is the code:
<?php
$var2 =$_GET['title'] ;
$var3 =$_GET['field'] ;
$var4 =$_GET['country'] ;
$orderby = $_GET['orderby'];
if(empty($_GET['orderby'])){
$orderby="firstname";}
$sort=$_GET['sort'];
if(empty($_GET['sort'])){
$sort="DESC";}
if($sort=="DESC"){
$sort="ASC";}else
if($sort=="ASC"){
$sort="DESC";}
$trimmed2 = trim($var2); //trim whitespace from the stored variable
$trimmed3 = trim($var3);
$trimmed4 = trim($var4);
$table = "members";
$field_to_search2 = "title";
$field_to_search3 = "field";
$field_to_search4 = "country";
$query = "SELECT COUNT(*)FROM $table WHERE $field_to_search2 LIKE '%$trimmed2%'AND $field_to_search3 LIKE '%$trimmed3%' AND $field_to_search LIKE '%$trimmed%' AND $field_to_search4 LIKE '%$trimmed4%' ORDER BY $orderby $sort";
$result = mysql_query($query) or trigger_error("SQL", E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrow = $r[0];
$rowsperpage = 100;
$totalpages = ceil($numrow / $rowsperpage);
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
$currentpage = (int) $_GET['currentpage'];
} else {
$currentpage = 1;
}
if ($currentpage > $totalpages) {
$currentpage = $totalpages;
}
if ($currentpage < 1) {
$currentpage = 1;
}
$offset = ($currentpage - 1) * $rowsperpage;
$query5 = "SELECT * FROM $table WHERE $field_to_search2 LIKE '%$trimmed2%'AND $field_to_search3 LIKE '%$trimmed3%' AND $field_to_search LIKE '%$trimmed%' AND $field_to_search4 LIKE '%$trimmed4%' AND $field_to_search5 LIKE '%$trimmed5%' ORDER BY $orderby $sort";
$result5 = mysql_query($query5);
$count5 = mysql_num_rows($result5);
$query = "SELECT * FROM $table WHERE $field_to_search2 LIKE '%$trimmed2%'AND $field_to_search3 LIKE '%$trimmed3%' AND $field_to_search4 LIKE '%$trimmed4%'ORDER BY $orderby $sort LIMIT $offset, $rowsperpage";
$result = mysql_query($query) or trigger_error("SQL", E_USER_ERROR);
$count = mysql_num_rows($result);
$info = mysql_fetch_array($result);
$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);
$mypage=$_SERVER['PHP_SELF'];
if ($numrows == 0 )
{
echo "<center><font face=arial size=2><p>Search </font>"."<font face=arial size=2> returned zero results</font></p></center>";
}
if (empty($s))
{
$s=0;
}
// get results
$result = mysql_query($query) or die("Couldn't execute query");
if($numrows > 1 ){$return = "results";}
else{ $return = "result"; }
echo "<center><table><tr><td><a href=page.php?title=$var2&field=$varx3&q=$var&country=$var4&campus=$var5&orderby=firstname&sort=$sort&search2=Find class=sort>Name</a></td><td width = 70 bgcolor=brown><a href=page.php?title=$var2&field=$var3&country=$var4&orderby=gender&sort=$sort&search2=Find class=sort>gender</a></td></tr></table></center>";
$count = $s + 1 ;
while ($r= mysql_fetch_array($result))
{
$gender = $r["gender"];
$firstname1 = $r["firstname"];
$field = $r["field"];
$country = $r["country"];
$count++ ;
echo "<center><table><tr><td>$firstname</td><td>$gender</td><td>$country</td></tr></table>";
}
$range = 5;
echo"<center>";
if ($currentpage > 1) {
$var2 =$_GET['title'] ;
$var3 =$_GET['field'] ;
$var4 =$_GET['country'] ;
echo " <a href='{$_SERVER['PHP_SELF']}?title=$var2&field=$var3&country=$var4&search2=Find¤tpage=1'><font face=verdana size=2>First</font></a><font face=verdana size=2> |</font>";
$prevpage = $currentpage - 1;
echo " <a href='{$_SERVER['PHP_SELF']}?title=$var2&field=$var3&country=$var4&search2=Find¤tpage=$prevpage'><font face=verdana size=2>Previous</font></a><font face=verdana size=2> | </font>";
}
for ($x = ($currentpage - $range); $x < ($currentpage + $range); $x++) {
if (($x > 0) && ($x <= $totalpages)) {
if ($x == $currentpage) {
echo "<font face=verdana size=2> [<b>$x</b>] </font>";
} else {
echo " <a href='{$_SERVER['PHP_SELF']}?title=$var2&field=$var3&country=$var4&search2=Find+resume¤tpage=$x'><font face=verdana size=2>$x</font></a> ";
}
}
}
if ($currentpage < $totalpages) {
$nextpage = $currentpage + 1;
echo "<font face=verdana size=2>|</font> <a href='{$_SERVER['PHP_SELF']}?title=$var2&field=$var3&country=$var4&search2=Find¤tpage=$nextpage'><font face=verdana size=2>Next</font></a><font face=verdana size=2> | </font>";
echo "<a href='{$_SERVER['PHP_SELF']}?title=$var2&field=$var3&country=$var4search2=Find¤tpage=$totalpages'><font face=verdana size=2>Last</font></a>";
}
echo"</center>";
?>
Thanks