rendered paste bodyfunction pager($query, $start = 0, $limit = 25) {
if (!is_numeric($start)) {
$start = 0;
}
if (!is_numeric($limit)) {
$limit = 25;
}
//SQL_CALC_FOUND_ROWS
if (strpos (strtoupper($query), 'SQL_CALC_FOUND_ROWS') === false) {
$pattern = '/^SELECT (.*?) FROM/i';
$replacement = 'SELECT SQL_CALC_FOUND_ROWS $1 FROM ';
$query = preg_replace($pattern, $replacement, $query);
}
$rows = $this->get_results_assoc($query." LIMIT $start,$limit");
$total = $this->get_var("SELECT FOUND_ROWS()");
$get = $_GET;
$pages = ceil($total / $limit);
if ($pages > 1) {
$next = '';
$prev = '';
ob_start();
?>Page:<select onChange="document.location=this.options[this.selectedIndex].value;"><?php
for ($i=0;$i<$pages;$i++) {
?><option value="<?php
$get['start'] = $i * $limit;
$get['limit'] = $limit;
echo $_SERVER['PHP_SELF'].'?'.http_build_query($get);
?>"<?php
if ($_GET['start'] == $get['start']) {
echo ' selected';
if ((($i+1) * $limit) < $total) {
$get['start'] = (($i+1) * $limit);
$next = '<a href="'.$_SERVER['PHP_SELF'].'?'.http_build_query($get).'">[next]</a>';
}
if (($i-1) * $limit >= 0) {
$get['start'] = (($i-1) * $limit);
$prev = '<a href="'.$_SERVER['PHP_SELF'].'?'.http_build_query($get).'">[prev]</a>';
}
}
?>><?php
echo ($i+1);
?></option><?php
}
?></select><br /><?php
if (!$prev) {
$prev = '<span style="color: #999;">[prev]</span>';
}
if (!$next) {
$next = '<span style="color: #999;">[next]</span>';
}
echo $prev.' '.$next.'<br />';
$nav = ob_get_clean();
}
return array('nav' => $nav, 'rows' => $rows);
/*
list($total) = $this->get_row("SELECT COUNT(*) FROM users");
$users = $this->get_results_assoc("SELECT * FROM users ORDER BY admin DESC, uname");
foreach ($users as $user) {
echo $user['uname'].'<br>';
}
*/
}