Пример #1
0
function etoms_select_data_bypage($dbLink, $strTable, $strColumns, $strWhere = NULL, $strGroupBy = NULL, $strOrder = NULL, $strOrderKey = NULL, $nPage = 1, $nMaxRecordPerPage = 20)
{
    if ($nPage <= 0 || $nMaxRecordPerPage <= 0) {
        set_db_error(NULL, "Invalid page values [pg={$nPage},maxrec={$nMaxRecordPerPage}]");
        return ERROR_DB_FUNCS_SELECTFAILED;
    }
    // build select sql
    $sqlArray = etoms_select_data($dbLink, $strTable, $strColumns, $strWhere, $strGroupBy, $strOrder, $strOrderKey, 1, 1, true);
    $sqlCount = $sqlArray["count_sql"];
    $sqlSelect = $sqlArray["select_sql"];
    $res = @mysql_query($sqlCount, $dbLink);
    // count number of pages
    if ($res && ($row = mysql_fetch_array($res))) {
        $nTotalRecords = $row[0];
        $nPageCount = floor($row[0] / $nMaxRecordPerPage);
        if ($row[0] % $nMaxRecordPerPage > 0) {
            $nPageCount++;
        }
    }
    // get offset using page number
    if ($nPage == 1) {
        $pgOffset = 0;
    } else {
        $pgOffset = ($nPage - 1) * $nMaxRecordPerPage;
    }
    $res = etoms_select_data($dbLink, $strTable, $strColumns, $strWhere, $strGroupBy, $strOrder, $strOrderKey, $nMaxRecordPerPage, $pgOffset);
    if ($res < 0) {
        set_db_error($dbLink);
        return $res;
    } else {
        $page_record["total"] = $nTotalRecords;
        $page_record["count"] = count($res);
        $page_record["page"] = $nPage;
        $page_record["max_pages"] = $nPageCount;
        $page_record["page_count"] = $nPageCount;
        return array("result" => $res, "page_info" => $page_record);
    }
}
Пример #2
0
 function pagesearch($page = 1, $maxrec = 1000000000, $orderkey = PAYEE_CODE, $is_desc = true)
 {
     // select all columns
     $strValues1[] = "*";
     $strValues2[] = "count(*)";
     if ($orderkey != NULL) {
         $strOrder[$orderkey] = $orderkey;
     } else {
         $strOrder = $orderkey;
     }
     $result = etoms_select_data($this->m_dbLink, ETOMS_PAYEE_TABLE, $strValues1, $strWhere, NULL, $strOrder, $is_desc ? "DESC" : "ASC", $maxrec, $page);
     $rowcount = etoms_select_data($this->m_dbLink, ETOMS_PAYEE_TABLE, $strValues2, $strWhere, NULL, $strOrder, $is_desc ? "DESC" : "ASC", NULL, NULL);
     $sqlCount = $rowcount["count_sql"];
     $this->out = $result;
     $this->rcount = $sqlCount;
     //echo $rowcount."VooDoo";
 }