mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-20 11:49:56 +09:00
Updated WHERE clause to ignore expressions when the argument value is not set.
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0-DB@8386 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
0f61e5d499
commit
520300fad1
6 changed files with 18 additions and 12 deletions
|
|
@ -666,7 +666,7 @@
|
|||
/**
|
||||
* @brief Paging is handled if navigation information exists in the query xml
|
||||
*
|
||||
* It is quite convenient although its structure is not good at all .. -_-;
|
||||
* It is quite convenient although its structure is not good at all .. -_-;
|
||||
**/
|
||||
function _getNavigationData($table_list, $columns, $left_join, $index_hint, $condition, $output) {
|
||||
require_once(_XE_PATH_.'classes/page/PageHandler.class.php');
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@
|
|||
return $this->pipe . ' ' . $this->getConditionPart($this->column_name, $this->value, $this->operation);
|
||||
}
|
||||
|
||||
function getConditionPart($name, $value, $operation) {
|
||||
switch($operation) {
|
||||
function show(){
|
||||
switch($this->operation) {
|
||||
case 'equal' :
|
||||
case 'more' :
|
||||
case 'excess' :
|
||||
|
|
@ -31,16 +31,19 @@
|
|||
case 'notin' :
|
||||
case 'notequal' :
|
||||
// if variable is not set or is not string or number, return
|
||||
if(!isset($value)) return;
|
||||
if($value === '') return;
|
||||
if(!in_array(gettype($value), array('string', 'integer'))) return;
|
||||
if(!isset($this->value)) return false;
|
||||
if($this->value === '') return false;
|
||||
if(!in_array(gettype($this->value), array('string', 'integer'))) return false;
|
||||
break;
|
||||
case 'between' :
|
||||
if(!is_array($value)) return;
|
||||
if(count($value)!=2) return;
|
||||
|
||||
}
|
||||
if(!is_array($this->value)) return false;
|
||||
if(count($this->value)!=2) return false;
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function getConditionPart($name, $value, $operation) {
|
||||
switch($operation) {
|
||||
case 'equal' :
|
||||
return $name.' = '.$value;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@
|
|||
else $group = '';
|
||||
|
||||
foreach($this->conditions as $condition){
|
||||
$group .= $condition->toString() . ' ';
|
||||
if($condition->show())
|
||||
$group .= $condition->toString() . ' ';
|
||||
}
|
||||
|
||||
if($this->pipe !== "")
|
||||
|
|
|
|||
|
|
@ -95,7 +95,6 @@ class QueryParser {
|
|||
}
|
||||
|
||||
function toString(){
|
||||
// TODO Add tags for update, insert ..
|
||||
if($this->action == 'select'){
|
||||
$columns = new SelectColumnsTag($this->query->columns->column, $this->dbParser);
|
||||
}else if($this->action == 'insert'){
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@
|
|||
}
|
||||
|
||||
function escapeValue($column_type){
|
||||
if(!isset($this->value)) return;
|
||||
if($column_type === '') $column_type = 'varchar';
|
||||
if(in_array($column_type, array('date', 'varchar', 'char')))
|
||||
$this->value = '\''.$this->value.'\'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
$xml_groups = $xml_conditions->group;
|
||||
if($xml_groups){
|
||||
if(!is_array($xml_groups)) $xml_groups = array($xml_groups);
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/condition/ConditionGroupTag.class.php');
|
||||
foreach($xml_groups as $group){
|
||||
$this->condition_groups[] = new ConditionGroupTag($group->condition, $this->dbParser, $group->pipe);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue