Exemple #1
0
 /**
  * Performs a merged query between this object and an additional object $addXmlSql :
  * the fields are taken from $addXmlSql, while the joins, where and groupby are merged.
  *
  * @param  XmlQuery $addXmlSql
  * @return object               with ->_tbl set properly.
  */
 protected function &queryObjectMergedXmlSql($addXmlSql)
 {
     $sql = "SELECT " . implode(', ', $addXmlSql->fieldsArray) . " FROM `" . $this->_db->getEscaped($this->_table) . "` AS " . $this->maintableAs . (count($this->leftJoinArray) + count($addXmlSql->leftJoinArray) > 0 ? "\n " . implode("\n ", array_merge($this->leftJoinArray, $addXmlSql->leftJoinArray)) : '') . (count($this->where) + count($addXmlSql->where) > 0 ? "\n WHERE ( " . implode(' ) AND ( ', array_merge($this->where, $addXmlSql->where)) . " )" : '') . (count($addXmlSql->groupByArray) > 0 ? "\n GROUP BY " . implode(', ', $addXmlSql->groupByArray) : '') . (count($this->having) + count($addXmlSql->having) > 0 ? "\n HAVING ( " . implode(' ) AND ( ', array_merge($this->having, $addXmlSql->having)) . " )" : '');
     $this->_db->setQuery($sql);
     $array = $this->_db->loadAssoc();
     $statisticObj = new CheckedOrderedTable($this->_db, $this->_table, 'id');
     foreach ($array as $k => $v) {
         $statisticObj->{$k} = $v;
     }
     return $statisticObj;
 }