/** * Find data on Relational Map table * * @param string $what * @return ActiveRecord Cursor * * columns: columnas a utilizar * conditions : condiciones de busqueda en WHERE * join: inclusion inner join o outer join * group : campo para grupo en GROUP BY * having : condicion para el grupo * order : campo para criterio de ordenamiento ORDER BY * distinct: campos para hacer select distinct */ public function find($what = '') { $what = Util::getParams(func_get_args()); $select = "SELECT "; if (isset($what['columns'])) { $select .= $what['columns'] ? ActiveRecord::sql_sanizite($what['columns']) : join(",", $this->fields); } elseif (isset($what['distinct'])) { $select .= 'DISTINCT '; $select .= $what['distinct'] ? ActiveRecord::sql_sanizite($what['distinct']) : join(",", $this->fields); } else { $select .= join(",", $this->fields); } if ($this->schema) { $select .= " FROM {$this->schema}.{$this->source}"; } else { $select .= " FROM {$this->source}"; } $select .= $this->convert_params_to_sql($what); $results = array(); $all_results = $this->db->in_query($select); foreach ($all_results as $result) { $results[] = $this->dump_result($result); } $this->count = count($results, COUNT_NORMAL); if (isset($what[0]) && is_numeric($what[0])) { if (!isset($results[0])) { $this->count = 0; return false; } else { $this->dump_result_self($all_results[0]); $this->count = 1; return $results[0]; } } else { $this->count = count($results, COUNT_NORMAL); return $results; } }