protected function _processSearch()
 {
     $class = $this->_getSearchClass();
     $table = DBObject::stGetTableName($class);
     $fieldId = $class::stGetFieldConfigFiltered(array("identifier" => true));
     $select = "SELECT {$this->fields} FROM {$table}";
     $where = "";
     foreach ($this->filters as $field => $filter) {
         $field = DBObject::stObjFieldToDBField($field);
         $op = $filter[0];
         if (is_array($filter[1])) {
             $whereField = "(";
             foreach ($filter[1] as $value) {
                 // TODO soporte para OR ?
                 $whereField = $whereField . "'" . $value . "'" . " AND ";
             }
             $whereField = substr($whereField, 0, -5) . ")";
         } else {
             $whereField = "'" . $filter[1] . "'";
         }
         $where = $where . $field . " " . $op . " " . $whereField . " AND ";
     }
     if ($where != "") {
         $select = $select . " WHERE " . substr($where, 0, -5);
     }
     $offset = ($this->page - 1) * $this->limit;
     $select = $select . " LIMIT {$offset},{$this->limit}";
     $mysqlParams = static::_stGetMySQLParams();
     $search = DBMySQLConnection::stVirtualConstructor($mysqlParams)->query($select);
     // Anotamos los resultados
     $this->count = $search->num_rows;
     // Guardamos la búsqueda
     $this->search = $search;
 }
Example #2
0
 /**
  * Es publica porque también lo usan clases "hermanas" como DBObjectSearch
  */
 static function _stGetMySQLParams()
 {
     $class = get_called_class();
     $fieldId = $class::stGetFieldConfigFiltered(array("identifier" => true));
     $table = DBObject::stGetTableName($class);
     return array("table" => $table, "fieldId" => $fieldId);
 }
 private function _getTableSchema($config, $class)
 {
     $table = "CREATE TABLE `" . DBObject::stGetTableName($class) . "` ( \n";
     $DBColumns = $this->_getColumnsSchema($config);
     // Añadimos la clave primaria
     $DBColumns[] = $this->_getPrimaryKey($config);
     $table = $table . implode(",\n", $DBColumns);
     $table = $table . "\n ) ENGINE=InnoDB DEFAULT CHARSET=latin1";
     return $table;
 }