add "limit" navigation control to xml query and db classes

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0-DB@8395 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
mosmartin 2011-05-25 11:32:54 +00:00
parent 4d2d18b53b
commit 750733936b
6 changed files with 65 additions and 8 deletions

View file

@ -316,6 +316,7 @@
require_once(_XE_PATH_.'classes/xml/xmlquery/DBParser.class.php');
require_once(_XE_PATH_.'classes/xml/xmlquery/argument/Argument.class.php');
require_once(_XE_PATH_.'classes/xml/xmlquery/argument/ConditionArgument.class.php');
require_once(_XE_PATH_.'classes/db/queryparts/expression/Expression.class.php');
require_once(_XE_PATH_.'classes/db/queryparts/expression/SelectExpression.class.php');
require_once(_XE_PATH_.'classes/db/queryparts/expression/InsertExpression.class.php');
@ -326,6 +327,7 @@
require_once(_XE_PATH_.'classes/db/queryparts/condition/Condition.class.php');
require_once(_XE_PATH_.'classes/db/queryparts/expression/StarExpression.class.php');
require_once(_XE_PATH_.'classes/db/queryparts/order/OrderByColumn.class.php');
require_once(_XE_PATH_.'classes/db/queryparts/limit/Limit.class.php');
$output = include($cache_file);

View file

@ -795,9 +795,13 @@
}
$orderBy = substr($orderBy, 0, -2);
}
$query = $select . ' ' . $from . ' ' . $where . ' ' . $groupBy . ' ' . $orderBy;
$limit = '';
if(count($output->limit) > 0){
$limit = 'limit ';
$limit .= $output->limit->toString();
}
$query = $select . ' ' . $from . ' ' . $where . ' ' . $groupBy . ' ' . $orderBy . ' ' . $limit;
//$query = sprintf ("select %s from %s %s %s %s", $columns, implode (',',$table_list), implode (' ',$left_join), $condition, //$groupby_query.$orderby_query);
//$query .= (__DEBUG_QUERY__&1 && $output->query_id)?sprintf (' '.$this->comment_syntax, $this->query_id):'';

View file

@ -0,0 +1,16 @@
<?php
class Limit {
var $start;
var $end;
function Limit($page, $list_count){
$this->start = ($page-1)*$list_count;
$this->end = $list_count;
}
function toString(){
return $this->start . ' , ' . $this->end;
}
}
?>