dni = $dni; } function limpiar() { $this->dni = null; $this->nombre = null; $this->dep = null; $this->nac = null; } function cargar($db = null) { // Si no me pasan la DB, creo una. if (is_null($db)) { $db = DB::connect($this->dsn); // Si hay error lo devuelve. if (DB::isError($db)) { return $db; } } // Si es un resultado, obtengo los elemento. if (is_a($db, 'db_result')) { $res = $db->fetchRow(DB_FETCHMODE_ASSOC); // Si hay error lo devuelve. if (DB::isError($res)) { return $res; } // Si no es un resultado, obtengo el elemento. } else { $res = $db->getRow( 'SELECT nrodoc, nombre, dependencia, fecha_nac FROM novedades.web003 WHERE nrodoc = ' . $db->quote($this->dni), null, DB_FETCHMODE_ASSOC ); // Si hay error lo devuelve. if (DB::isError($res)) { return $res; } } // Si no hay resultados devuelve false. if (!$res) { return false; } // Si tenemos resultados, cargamos los datos. $this->dni = $res['nrodoc']; $this->nombre = ucwords(strtolower($res['nombre'])); $this->dep = ucwords(strtolower($res['dependencia'])); preg_match('/(\d{2})(\d{2})(\d{4})/', $res['fecha_nac'], $m); $this->nac = new Date("$m[3]-$m[2]-$m[1] 00:00:00"); return true; } function buscar($db = null, $operador = MECON_DBO_OR, $orden = 'nombre ASC') { // Si no me pasan la DB, creo una. if (is_null($db)) { $db = DB::connect($this->dsn); // Si hay error lo devuelve. if (DB::isError($db)) { return $db; } } // Armo el WHERE. $where = array(); // Si tiene nombre, agrego a la búsqueda. if (!is_null($this->nombre)) { $where[] = 'W.nombre LIKE ' . $db->quote("%$this->nombre%"); } // Si tiene dep, agrego a la búsqueda. if (!is_null($this->dep)) { $where[] = 'W.dependencia LIKE ' . $db->quote("%$this->dep%"); } // Si tiene nac, agrego a la búsqueda. if (!is_null($this->nac)) { $where[] = 'W.fecha_nac LIKE ' . $db->quote('%' . $this->nac->format('%d%m%Y') . '%'); } if ($where) { $where = 'WHERE ' . join (" $operador ", $where); } else { $where = ''; } // Armo el ORDER BY. if (is_string($orden)) { $orden = array($orden); } if ($orden) { $orden = 'ORDER BY ' . join(', ', $orden); } return $db->query( "SELECT nrodoc, nombre, dependencia, fecha_nac FROM novedades.web003 as W $where $orden"); } } $agente = new Agente(27215947); echo 'Carga: '; var_dump($e = $agente->cargar()); echo "\n"; if (PEAR::isError($e)) { die('Error: ' . $e->getMessage() . "\n"); } echo ' '; var_dump($agente); echo "\n"; $agente->limpiar(); $agente->nombre = 'sklar'; echo 'Búsqueda: '; var_dump(is_a($res = $agente->buscar(), 'db_result')); echo "\n"; if (PEAR::isError($res)) { die('Error: ' . $res->getMessage() . "\n"); } while ($e = $agente->cargar($res)) { if (PEAR::isError($e)) { die('Error: ' . $e->getMessage() . "\n"); } echo ' Agente: '; var_dump($agente); echo "\n"; } ?>