Simple function for returning paged result sets.
<?php
// use: pagedQuery($link, $sql, $rows_per_page, $current_page)
function pagedQuery($link, $sql, $nrows = 10, $page = 1) {
$handle = dbx_query($link, $sql, DBX_RESULT_UNBUFFERED);
$result = new stdClass;
$result->link = $this->link;
$result->page = $page;
$result->data = array();
$result->info['name'] = array();
$start = ($page - 1) * $nrows;
$end = $start + $nrows;
$result->rows = 0;
while ($row = dbx_fetch_row($handle)) {
$result->rows++;
if (($result->rows > $start) && ($result->rows <= $end)) {
$result->data[] = $row;
}
}
if ($result->data[0]) {
$result->cols = count($result->data[0]) / 2;
$result->info['name'] = array_slice(array_keys($result->data[0]), $result->cols, $result->cols);
$result->lastPage = ceil($result->rows / $nrows);
}
return $result;
}
?>