php paginate code


#1

pls any one knows tell php paginate coding understanding easily


#2

This is one I used a while back which is well commented:

[php]// grab the search terms and put them in an array
$terms = explode(" ", urldecode($_GET[‘searchterms’]));

// run the seach query. First line builds the query, the for loops through the remaining entries adding each one in turn. Final executes query & counts lines returned.
$statement = $dbconn->prepare("
SELECT stories.id, stories.dateposted, stories.subject, stories.body, images.name
FROM stories

	INNER JOIN images ON stories.id = images.story_id
	WHERE body LIKE :terms
	GROUP BY images.story_id
	ORDER BY dateposted DESC
");

$statement->execute([
“:terms” => “%” . $_GET[‘searchterms’] . “%”
]);

for($i=1; $i<count($terms); $i++) {
$query = $query." AND body LIKE ‘%". $terms[$i] . "%’";
}
$searchresult = $statement->fetchAll();
$searchnumrows = $statement->rowCount();

// number of rows to show per page
$rowsperpage = 20;
// find out total pages
$totalpages = ceil($searchnumrows / $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

// Output page number and amount of results
echo “Page " . $currentpage . " of " . $searchnumrows.” results for ‘" . $_GET[‘searchterms’] . "’";

// the offset of the list, based on current page
$offset = ($currentpage - 1) * $rowsperpage;

// get the info from the db
$statement = $dbconn->prepare("
SELECT stories.id, stories.dateposted, stories.subject, stories.body, images.name
FROM stories
INNER JOIN images ON stories.id = images.story_id
WHERE body LIKE :terms
GROUP BY images.story_id
ORDER BY dateposted DESC
LIMIT $offset, $rowsperpage
");
$statement->execute([
“:terms” => “%” . $_GET[‘searchterms’] . “%”
]);
while ($list = $statement->fetch()){
echo “

”;
echo “<img class=‘main_image’ src=’” . $config_basedir . “images/” . $list[‘name’] . “’ width=‘70’ height=‘70’>”;
// echo data
 //Title for friendly urls
      $title = preg_replace('/[^A-Za-z0-9-]+/', '-', ucwords($list['subject']));

      //echo "<h2><a href='/$papername/$row[id]/$title.html' title='" . $row['subject'] . "'>" . $row['subject'] . "</a></h2>";
      echo "<h2><a href='/$list[id]/$title.html' title='" . ucwords($list['subject']) . "'>" . htmlallentities($list['subject']) . "</a></h2>";
      echo "<p class='date'>";
      echo date("D jS F Y g.iA", strtotime($list['dateposted']));

      // short_description() (found in functions.php takes the text and provides a summary.)
      echo "" . htmlallentities(short_description($list['body'] . ""));
      echo "</p></div><div style=\"clear:both;\"></div>";

} // 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&searchterms=" . $_GET[‘searchterms’] . "’><< “;
// get previous page num
$prevpage = $currentpage - 1;
// show < link to go back to 1 page
echo " <a href=’{$_SERVER[‘PHP_SELF’]}?currentpage=$prevpage&searchterms=” . $_GET[‘searchterms’] . "’>< ";
} // 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 " [$x] “;
// if not current page…
} else {
// make it a link
echo " <a href=’{$_SERVER[‘PHP_SELF’]}?currentpage=$x&searchterms=” . $_GET[‘searchterms’] . "’>$x ";
} // 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&searchterms=" . $_GET[‘searchterms’] . "’>> “;
// echo forward link for lastpage
echo " <a href=’{$_SERVER[‘PHP_SELF’]}?currentpage=$totalpages&searchterms=” . $_GET[‘searchterms’] . "’>>> ";
} // end if
/****** end build pagination links ******/[/php]


#3

thanks dude