diff --git a/classes/db/DBFirebird.class.php b/classes/db/DBFirebird.class.php index 0bdf94e24..462ec175b 100644 --- a/classes/db/DBFirebird.class.php +++ b/classes/db/DBFirebird.class.php @@ -804,6 +804,7 @@ foreach($output->columns as $key => $val) { $name = $val['name']; $alias = $val['alias']; + if($val['click_count']) $click_count[] = $val['name']; if($alias == "") $column_list[] = $this->autoQuotes($name); @@ -861,6 +862,13 @@ $data = $this->_fetch($result, $output); if(!$this->transaction_started) @ibase_commit($this->fd); + if(count($click_count)>0 && count($output->conditions)>0){ + $_query = ''; + foreach($click_count as $k => $c) $_query .= sprintf(',%s=%s+1 ',$c,$c); + $_query = sprintf('update %s set %s %s',implode(',',$table_list), substr($_query,1), $condition); + $this->_query($_query); + } + $buff = new Object(); $buff->data = $data; return $buff; diff --git a/classes/db/DBMssql.class.php b/classes/db/DBMssql.class.php index b8e3b99fe..c42078980 100644 --- a/classes/db/DBMssql.class.php +++ b/classes/db/DBMssql.class.php @@ -645,6 +645,8 @@ $name = $val['name']; if(preg_match('/^substr\(/i',$name)) $name = preg_replace('/^substr\(/i','substring(',$name); $alias = $val['alias']; + if($val['click_count']) $click_count[] = $val['name']; + if(substr($name,-1) == '*') { $column_list[] = $name; } elseif(strpos($name,'.')===false && strpos($name,'(')===false) { @@ -701,6 +703,14 @@ $result = $this->_query($query); if($this->isError()) return; + + if(count($click_count)>0 && count($output->conditions)>0){ + $_query = ''; + foreach($click_count as $k => $c) $_query .= sprintf(',%s=%s+1 ',$c,$c); + $_query = sprintf('update %s set %s %s',implode(',',$table_list), substr($_query,1), $condition); + $this->_query($_query); + } + $data = $this->_fetch($result); $buff = new Object(); diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index fcbbae601..572cdc024 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -519,6 +519,7 @@ } } + $click_count = array(); if(!$output->columns) { $columns = '*'; } else { @@ -526,6 +527,8 @@ foreach($output->columns as $key => $val) { $name = $val['name']; $alias = $val['alias']; + if($val['click_count']) $click_count[] = $val['name']; + if(substr($name,-1) == '*') { $column_list[] = $name; } elseif(strpos($name,'.')===false && strpos($name,'(')===false) { @@ -572,6 +575,14 @@ $result = $this->_query($query); if($this->isError()) return; + + if(count($click_count)>0 && count($output->conditions)>0){ + $_query = ''; + foreach($click_count as $k => $c) $_query .= sprintf(',%s=%s+1 ',$c,$c); + $_query = sprintf('update %s set %s %s',implode(',',$table_list), substr($_query,1), $condition); + $this->_query($_query); + } + $data = $this->_fetch($result); $buff = new Object(); diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php index 71ad1a90e..62ef273d3 100644 --- a/classes/db/DBMysql_innodb.class.php +++ b/classes/db/DBMysql_innodb.class.php @@ -537,6 +537,8 @@ foreach($output->columns as $key => $val) { $name = $val['name']; $alias = $val['alias']; + if($val['click_count']) $click_count[] = $val['name']; + if(substr($name,-1) == '*') { $column_list[] = $name; } elseif(strpos($name,'.')===false && strpos($name,'(')===false) { @@ -584,6 +586,15 @@ $result = $this->_query($query); if($this->isError()) return; + + if(count($click_count)>0 && count($output->conditions)>0){ + $_query = ''; + foreach($click_count as $k => $c) $_query .= sprintf(',%s=%s+1 ',$c,$c); + $_query = sprintf('update %s set %s %s',implode(',',$table_list), substr($_query,1), $condition); + $this->_query($_query); + } + + $data = $this->_fetch($result); $buff = new Object(); diff --git a/classes/db/DBPostgresql.class.php b/classes/db/DBPostgresql.class.php index 2a96e9f3d..9b164b047 100644 --- a/classes/db/DBPostgresql.class.php +++ b/classes/db/DBPostgresql.class.php @@ -675,6 +675,8 @@ class DBPostgresql extends DB foreach ($output->columns as $key => $val) { $name = $val['name']; $alias = $val['alias']; + if($val['click_count']) $click_count[] = $val['name']; + if (substr($name, -1) == '*') { $column_list[] = $name; } elseif (strpos($name, '.') === false && strpos($name, '(') === false) { @@ -758,6 +760,15 @@ class DBPostgresql extends DB $result = $this->_query($query); if ($this->isError()) return; + + if(count($click_count)>0 && count($output->conditions)>0){ + $_query = ''; + foreach($click_count as $k => $c) $_query .= sprintf(',%s=%s+1 ',$c,$c); + $_query = sprintf('update %s set %s %s',implode(',',$table_list), substr($_query,1), $condition); + $this->_query($_query); + } + + $data = $this->_fetch($result); $buff = new Object(); diff --git a/classes/db/DBSqlite2.class.php b/classes/db/DBSqlite2.class.php index c84647254..e1d0b4bd6 100644 --- a/classes/db/DBSqlite2.class.php +++ b/classes/db/DBSqlite2.class.php @@ -544,6 +544,8 @@ foreach($output->columns as $key => $val) { $name = $val['name']; $alias = $val['alias']; + if($val['click_count']) $click_count[] = $val['name']; + if(substr($name,-1) == '*') { $column_list[] = $name; } elseif(strpos($name,'.')===false && strpos($name,'(')===false) { @@ -590,6 +592,14 @@ $result = $this->_query($query); if($this->isError()) return; + + if(count($click_count)>0 && count($output->conditions)>0){ + $_query = ''; + foreach($click_count as $k => $c) $_query .= sprintf(',%s=%s+1 ',$c,$c); + $_query = sprintf('update %s set %s %s',implode(',',$table_list), substr($_query,1), $condition); + $this->_query($_query); + } + $data = $this->_fetch($result); $buff = new Object(); diff --git a/classes/db/DBSqlite3_pdo.class.php b/classes/db/DBSqlite3_pdo.class.php index bf7caf22e..3c97682a9 100644 --- a/classes/db/DBSqlite3_pdo.class.php +++ b/classes/db/DBSqlite3_pdo.class.php @@ -587,6 +587,8 @@ foreach($output->columns as $key => $val) { $name = $val['name']; $alias = $val['alias']; + if($val['click_count']) $click_count[] = $val['name']; + if(substr($name,-1) == '*') { $column_list[] = $name; } elseif(strpos($name,'.')===false && strpos($name,'(')===false) { @@ -635,6 +637,13 @@ $data = $this->_execute(); if($this->isError()) return; + if(count($click_count)>0 && count($output->conditions)>0){ + $_query = ''; + foreach($click_count as $k => $c) $_query .= sprintf(',%s=%s+1 ',$c,$c); + $_query = sprintf('update %s set %s %s',implode(',',$table_list), substr($_query,1), $condition); + $this->_query($_query); + } + $buff = new Object(); $buff->data = $data; return $buff;