mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-04 17:44:38 +09:00
add "click count -incr()" for Cubrid Xml Query
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6826 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
fb9f2dd4a4
commit
314700badd
2 changed files with 52 additions and 50 deletions
|
|
@ -582,21 +582,29 @@
|
||||||
$column_list = array();
|
$column_list = array();
|
||||||
foreach($output->columns as $key => $val) {
|
foreach($output->columns as $key => $val) {
|
||||||
$name = $val['name'];
|
$name = $val['name'];
|
||||||
$alias = $val['alias'];
|
|
||||||
|
$click_count = '%s';
|
||||||
|
if($val['click_count'] && count($output->conditions)>0){
|
||||||
|
$click_count = 'incr(%s)';
|
||||||
|
}
|
||||||
|
|
||||||
|
$alias = $val['alias'] ? sprintf('"%s"',$val['alias']) : null;
|
||||||
if(substr($name,-1) == '*') {
|
if(substr($name,-1) == '*') {
|
||||||
$column_list[] = $name;
|
$column_list[] = $name;
|
||||||
} elseif(strpos($name,'.')===false && strpos($name,'(')===false) {
|
} elseif(strpos($name,'.')===false && strpos($name,'(')===false) {
|
||||||
if($alias) $column_list[] = sprintf('"%s" as "%s"', $name, $alias);
|
$name = sprintf($click_count,$name);
|
||||||
else $column_list[] = sprintf('"%s"',$name);
|
if($alias) $column_list[] = sprintf('%s as %s', $name, $alias);
|
||||||
|
else $column_list[] = sprintf('%s',$name);
|
||||||
} else {
|
} else {
|
||||||
if(strpos($name,'.')!=false) {
|
if(strpos($name,'.')!=false) {
|
||||||
list($prefix, $name) = explode('.',$name);
|
list($prefix, $name) = explode('.',$name);
|
||||||
$deli=($name == '*') ? "" : "\"";
|
$prefix = sprintf('"%s"',$prefix);
|
||||||
if($alias) $column_list[] = sprintf("%s.$deli%s$deli as \"%s\"", $prefix, $name, $alias);
|
$name = ($name == '*') ? $name : sprintf('"%s"',$name);
|
||||||
else $column_list[] = sprintf("%s.$deli%s$deli",$prefix,$name);
|
|
||||||
|
$column_list[] = sprintf($click_count,sprintf('%s.%s', $prefix, $name)) . ($alias ? sprintf(' as %s',$alias) : '');
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if($alias) $column_list[] = sprintf('%s as "%s"', $name, $alias);
|
$column_list[] = sprintf($click_count,$name) . ($alias ? sprintf(' as %s',$alias) : '');
|
||||||
else $column_list[] = sprintf('%s',$name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,6 @@
|
||||||
$output->page_count = $out->page_count;
|
$output->page_count = $out->page_count;
|
||||||
$output->page = $out->page;
|
$output->page = $out->page;
|
||||||
|
|
||||||
|
|
||||||
$column_count = count($output->columns);
|
$column_count = count($output->columns);
|
||||||
$condition_count = count($output->conditions);
|
$condition_count = count($output->conditions);
|
||||||
|
|
||||||
|
|
@ -125,7 +124,6 @@
|
||||||
}
|
}
|
||||||
$buff .= ' );'."\n";
|
$buff .= ' );'."\n";
|
||||||
|
|
||||||
|
|
||||||
// php script 생성
|
// php script 생성
|
||||||
$buff .= '$output->_tables = array( ';
|
$buff .= '$output->_tables = array( ';
|
||||||
foreach($output->tables as $key => $val) {
|
foreach($output->tables as $key => $val) {
|
||||||
|
|
@ -133,8 +131,6 @@
|
||||||
}
|
}
|
||||||
$buff .= ' );'."\n";
|
$buff .= ' );'."\n";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(count($output->left_tables)){
|
if(count($output->left_tables)){
|
||||||
$buff .= '$output->left_tables = array( ';
|
$buff .= '$output->left_tables = array( ';
|
||||||
foreach($output->left_tables as $key => $val) {
|
foreach($output->left_tables as $key => $val) {
|
||||||
|
|
@ -143,7 +139,6 @@
|
||||||
$buff .= ' );'."\n";
|
$buff .= ' );'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// column 정리
|
// column 정리
|
||||||
if($column_count) {
|
if($column_count) {
|
||||||
$buff .= '$output->columns = array ( ';
|
$buff .= '$output->columns = array ( ';
|
||||||
|
|
@ -169,8 +164,6 @@
|
||||||
$buff .= ' );'."\n";
|
$buff .= ' );'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// order 정리
|
// order 정리
|
||||||
if($output->order) {
|
if($output->order) {
|
||||||
$buff .= '$output->order = array(';
|
$buff .= '$output->order = array(';
|
||||||
|
|
@ -247,11 +240,7 @@
|
||||||
FileHandler::writeFile($cache_file, $buff);
|
FileHandler::writeFile($cache_file, $buff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function _setColumn($columns){
|
function _setColumn($columns){
|
||||||
|
|
||||||
if(!$columns) {
|
if(!$columns) {
|
||||||
$output->column[] = array("*" => "*");
|
$output->column[] = array("*" => "*");
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -274,13 +263,13 @@
|
||||||
"minlength" => $val->attrs->minlength,
|
"minlength" => $val->attrs->minlength,
|
||||||
"maxlength" => $val->attrs->maxlength,
|
"maxlength" => $val->attrs->maxlength,
|
||||||
"alias" => $val->attrs->alias,
|
"alias" => $val->attrs->alias,
|
||||||
|
"click_count" => $val->attrs->click_count,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function _setConditions($conditions){
|
function _setConditions($conditions){
|
||||||
// 조건절 정리
|
// 조건절 정리
|
||||||
|
|
||||||
|
|
@ -359,35 +348,50 @@
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function _getColumn($columns){
|
function _getColumn($columns){
|
||||||
$buff = '';
|
$buff = '';
|
||||||
|
$str = '';
|
||||||
|
$print_vars = array();
|
||||||
|
|
||||||
foreach($columns as $key => $val) {
|
foreach($columns as $key => $val) {
|
||||||
|
$str = 'array("name"=>"%s","alias"=>"%s"';
|
||||||
|
$print_vars = array();
|
||||||
|
$print_vars[] = $val['name'];
|
||||||
|
$print_vars[] = $val['alias'];
|
||||||
|
|
||||||
$val['default'] = $this->getDefault($val['name'], $val['default']);
|
$val['default'] = $this->getDefault($val['name'], $val['default']);
|
||||||
if($val['var'] && strpos($val['var'],'.')===false) {
|
if($val['var'] && strpos($val['var'],'.')===false) {
|
||||||
|
|
||||||
if($val['default']) $buff .= sprintf('array("name"=>"%s", "alias"=>"%s", "value"=>$args->%s?$args->%s:%s),%s', $val['name'], $val['alias'], $val['var'], $val['var'], $val['default'] ,"\n");
|
if($val['default']){
|
||||||
else $buff .= sprintf('array("name"=>"%s", "alias"=>"%s", "value"=>$args->%s),%s', $val['name'], $val['alias'], $val['var'], "\n");
|
$str .= ',"value"=>$args->%s?$args->%s:%s';
|
||||||
|
$print_vars[] = $val['var'];
|
||||||
|
$print_vars[] = $val['var'];
|
||||||
|
$print_vars[] = $val['default'];
|
||||||
|
}else{
|
||||||
|
$str .= ',"value"=>$args->%s';
|
||||||
|
$print_vars[] = $val['var'];
|
||||||
|
}
|
||||||
|
|
||||||
if($val['default']) $default_list[$val['var']] = $val['default'];
|
|
||||||
if($val['notnull']) $notnull_list[] = $val['var'];
|
|
||||||
if($val['minlength']) $minlength_list[$val['var']] = $val['minlength'];
|
|
||||||
if($val['maxlength']) $maxlength_list[$val['var']] = $val['maxlength'];
|
|
||||||
} else {
|
} else {
|
||||||
if($val['default']) $buff .= sprintf('array("name"=>"%s", "alias"=>"%s", "value"=>%s),%s', $val['name'], $val['alias'], $val['default'] ,"\n");
|
if($val['default']){
|
||||||
else $buff .= sprintf('array("name"=>"%s", "alias"=>"%s",),%s', $val['name'], $val['alias'], "\n");
|
$str .= ',"value"=>%s';
|
||||||
|
$print_vars[] = $val['default'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($val['click_count']){
|
||||||
|
$str .= ',"click_count"=>$args->%s';
|
||||||
|
$print_vars[] = $val['click_count'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$str .= '),%s';
|
||||||
|
$print_vars[] = "\n";
|
||||||
|
|
||||||
|
$buff .= vsprintf($str, $print_vars);
|
||||||
}
|
}
|
||||||
return $buff;
|
return $buff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function _getConditions($conditions){
|
function _getConditions($conditions){
|
||||||
$buff = '';
|
$buff = '';
|
||||||
foreach($conditions as $key => $val) {
|
foreach($conditions as $key => $val) {
|
||||||
|
|
@ -414,12 +418,6 @@
|
||||||
return $buff;
|
return $buff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief column, condition등의 key에 default 값을 세팅
|
* @brief column, condition등의 key에 default 값을 세팅
|
||||||
**/
|
**/
|
||||||
|
|
@ -449,8 +447,7 @@
|
||||||
$args = abs($args);
|
$args = abs($args);
|
||||||
if ($db_info->db_type == 'cubrid') {
|
if ($db_info->db_type == 'cubrid') {
|
||||||
$val = sprintf ('"\\"%s\\"+%d"', $name, $args);
|
$val = sprintf ('"\\"%s\\"+%d"', $name, $args);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$val = sprintf('"%s+%d"', $name, $args);
|
$val = sprintf('"%s+%d"', $name, $args);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -458,17 +455,15 @@
|
||||||
$args = abs($args);
|
$args = abs($args);
|
||||||
if ($db_info->db_type == 'cubrid') {
|
if ($db_info->db_type == 'cubrid') {
|
||||||
$val = sprintf ('"\\"%s\\"-%d"', $name, $args);
|
$val = sprintf ('"\\"%s\\"-%d"', $name, $args);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$val = sprintf('"%s-%d"', $name, $args);
|
$val = sprintf('"%s-%d"', $name, $args);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'multiply' :
|
case 'multiply' :
|
||||||
$args = intval($args);
|
$args = intval($args);
|
||||||
if ($db_info->db_type == 'cubrid') {
|
if ($db_info->db_type == 'cubrid') {
|
||||||
$val = sprintf ('"\\"%s\\"*%d"', $name, $args);
|
$val = sprintf ('"\\"%s\\"*%d"', $name, $args);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$val = sprintf('"%s*%d"', $name, $args);
|
$val = sprintf('"%s*%d"', $name, $args);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -476,6 +471,5 @@
|
||||||
|
|
||||||
return $val;
|
return $val;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue