Pagination

This commit is contained in:
Latif Khalifa
2013-09-22 03:56:10 +00:00
parent d4dff48c29
commit e3d0785f8d
3 changed files with 33 additions and 13 deletions

View File

@@ -1,8 +1,12 @@
<?php <?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
define("SITE_ROOT", realpath(dirname(__file__))); define("SITE_ROOT", realpath(dirname(__file__)));
require_once SITE_ROOT . "/lib/init.php"; require_once SITE_ROOT . "/lib/init.php";
function parse_email($email) function parse_email($email)
{ {
$ret = array("name" => $email, "email" => ""); $ret = array("name" => $email, "email" => "");
@@ -174,7 +178,12 @@ if (isset($_GET["chan"]) && isset($CHANS[$_GET["chan"]])) {
$chan = "SingularityAlpha"; $chan = "SingularityAlpha";
} }
$pageSize = KEEP_BUILDS; $page = 0;
if (isset($_GET["page"])) {
$page = (int)$_GET["page"];
}
$pageSize = 25;
$builds = array(); $builds = array();
@@ -189,7 +198,7 @@ if (isset($_GET["build_id"])) {
chan_selector($chan); chan_selector($chan);
} }
if ($res = $DB->query(kl_str_sql("select * from builds where chan=!s $where order by nr desc limit !i", $chan, $pageSize + 1))) { if ($res = $DB->query(kl_str_sql("select * from builds where chan=!s $where order by nr desc limit !i offset !i", $chan, $pageSize, $page * $pageSize))) {
while ($row = $DB->fetchRow($res)) { while ($row = $DB->fetchRow($res)) {
$build = new stdClass; $build = new stdClass;
@@ -225,7 +234,17 @@ if ($nrBuilds) {
print '</table>'; print '</table>';
} }
print "<br/>\n";
if ($page > 0) {
print '<a href="?page=' . ($page - 1) . '">&lt;&lt; Previous</a>&nbsp&nbsp;';
}
print '<a href="?page=' . ($page + 1) . '">Next &gt;&gt;</a>';
Layout::footer(); Layout::footer();
/* /*

View File

@@ -12,6 +12,7 @@ class DBH
function log($line) function log($line)
{ {
return;
static $f = false; static $f = false;
static $failed = false; static $failed = false;
@@ -38,10 +39,10 @@ class DBH
$this->db_user = $db_user; $this->db_user = $db_user;
$this->db_host = $db_host; $this->db_host = $db_host;
$this->dbh = @sqlite_open($db_name, 0666, $error_msg); try {
$this->dbh = new SQLite3($db_name, SQLITE3_OPEN_READWRITE);
if (!$this->dbh) { } catch (Exception $e) {
DBH::log("[error] connection to database failed: $error_msg"); DBH::log("[error] connection to database failed: " . $e->getMessage());
return false; return false;
} }
@@ -50,11 +51,12 @@ class DBH
function query($q) function query($q)
{ {
$res = @sqlite_query($this->dbh, $q, SQLITE_BOTH, $error_msg); $res = $this->dbh->query($q);
if (!$res) { if (!$res) {
DBH::log("[error] ".$q); DBH::log("[error] ".$q);
DBH::log("[error_msg] " . $error_msg . " " . @sqlite_error_string(@sqlite_last_error(($this->dbh)))); $error_msg = $this->dbh->lastErrorMsg();
DBH::log("[error_msg] " . $error_msg);
$this->last_error = $error_msg; $this->last_error = $error_msg;
$e = debug_backtrace(); $e = debug_backtrace();
@@ -84,7 +86,7 @@ class DBH
function fetchRow($res) function fetchRow($res)
{ {
return @sqlite_fetch_array($res, SQLITE_ASSOC); return $res->fetchArray();
} }
} }

View File

@@ -4,7 +4,7 @@
$php_str_sql_options_array = array( $php_str_sql_options_array = array(
"str_sql_date_format" => "Y-m-d", "str_sql_date_format" => "Y-m-d",
"str_sql_datetime_format" => "Y-m-d H:i:s", "str_sql_datetime_format" => "Y-m-d H:i:s",
"str_sql_quote_func" => "sqlite_escape_string"); "str_sql_quote_func" => "SQLite3::escapeString");
/** /**
* This method validates the sql insert string must always be used in conjunction with an insert to the db * This method validates the sql insert string must always be used in conjunction with an insert to the db
* @return string * @return string
@@ -13,7 +13,6 @@ $php_str_sql_options_array = array(
function kl_str_sql() function kl_str_sql()
{ {
GLOBAL $php_str_sql_options_array; GLOBAL $php_str_sql_options_array;
$f = $php_str_sql_options_array['str_sql_quote_func'];
$narg = func_num_args(); $narg = func_num_args();
$args = func_get_args(); $args = func_get_args();
@@ -39,7 +38,7 @@ function kl_str_sql()
if (is_null($args[$narg])) { if (is_null($args[$narg])) {
$res .= 'NULL'; $res .= 'NULL';
} else { } else {
$res .= "'".$f($args[$narg])."'"; $res .= "'".SQLite3::escapeString($args[$narg])."'";
} }
$narg++; $narg++;
break; break;