Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Autor: Ernesto Villarreal
- Fecha de creación: 09/07/2011
- Fecha de última actualización: 09/07/2011
- */
- include("dataAccess.php");
- class usuario
- {
- // nombre de la tabla en la base de datos
- private $nombre_tabla;
- // los campos de la tabla en la base de datos
- private $campos_bd;
- // string con los campos separados por coma (para usarlo en consultas)
- private $lista_campos;
- public function __construct()
- {
- $this->nombre_tabla = 'usuario';
- $this->campos_bd = array(
- 'id',
- 'nombre',
- 'apellido1',
- 'apellido2'
- );
- foreach($this->campos_bd as $campo)
- {
- // agregar el campo a la lista de campos
- $this->lista_campos .= ($this->lista_campos ? ', ' : '').$campo;
- }
- }
- // funcion para agregar un nuevo usuario
- // se envia un arreglo con todos los datos del nuevo usuario
- public function agregarUsuario($datos)
- {
- $data = new dataAccess();
- $lista_valores = '';
- foreach($this->campos_bd as $campo)
- {
- // agregar el valor a la lista de valores
- if($campo == 'id')
- {
- // el id es autoincrement, asi que la base de datos se encarga de generarlo
- $valor = 'NULL';
- }
- else
- {
- // filtrar el dato correspondiente y ponerlo entre comillas
- $valor = '"' . $data->escape($datos[$campo]) . '"';
- }
- $lista_valores .= ($lista_valores ? ', ' : '').$valor;
- }
- $sql = 'INSERT INTO '. $this->nombre_tabla .' ('. $this->lista_campos .')'
- .' VALUES ('. $lista_valores .')';
- //ejecutar la consulta
- $data->query($sql);
- }
- // funcion para actualizar datos de un usuario
- // se envia un arreglo con todos los datos del usuario
- public function actualizarUsuario($datos)
- {
- $data = new dataAccess();
- $lista_set = '';
- foreach($this->campos_bd as $campo)
- {
- // agregar campo si el valor correspondiente fue enviado
- // el id no se actualiza
- if($campo != 'id' && isset($datos[$campo]))
- {
- $valor = $data->escape($datos[$campo]);
- // agregar el campo y el valor a la lista del SET
- $lista_set .= ($lista_set ? ', ' : '').$campo .' = "' . $valor . '"';
- }
- }
- $sql = 'UPDATE '. $this->nombre_tabla
- .' SET ' . $lista_set
- .' WHERE id = '.$datos['id'];
- //ejecutar la consulta
- $data->query($sql);
- }
- // funcion que devuelve un arreglo con los datos del usuario especificado por ID
- public function getUsuarioPorId($id)
- {
- $data = new dataAccess();
- // asegurar que el ID del usuario sea un entero
- $id_usuario = (int) $id;
- $sql = 'SELECT '. $this->lista_campos
- .' FROM '. $this->nombre_tabla
- .' WHERE id = '. $id_usuario;
- // como la consulta solo devuelve una fila,
- // devolver el arreglo con los datos del usuario de una vez
- return $data->fetchq($sql);
- }
- // funcion que devuelve todos los usuarios
- // parametros $inicio y $cant restringen el numero de registros
- // $inicio indica el registro inicial (minimo 0)
- // $cant indica la cantidad de registros a mostrar a partir del inicial
- // esto es para hacer listas con paginas
- // -$inicio seria $registros_por_pagina*$num_pagina_actual
- // -$cant seria $num_pagina_actual
- public function getUsuarios($inicio = -1, $cant = 0)
- {
- $data = new dataAccess();
- $sql = 'SELECT '. $this->lista_campos
- .' FROM '. $this->nombre_tabla;
- // si se enviaron parametros $inicio y $cant, limitar los resultados
- if(is_numeric($inicio) && is_numeric($cant) && $inicio > -1 && $cant >= 1)
- {
- $sql .= ' LIMIT '. $inicio .', '. $cant;
- }
- return $data->query($sql);
- }
- // funcion que devuelve los usuarios en los que $campo se aproxime a $valor
- // ej: buscarUsuarios('apellido1', 'tor') => devuelve usuarios con apellido1 Torres, Torreja, etc
- // parametros $inicio y $cant restringen el numero de registros
- // $inicio indica el registro inicial (minimo 0)
- // $cant indica la cantidad de registros a mostrar a partir del inicial
- // esto es para hacer listas con paginas
- // -$inicio seria $registros_por_pagina*$num_pagina_actual
- // -$cant seria $num_pagina_actual
- public function buscarUsuarios($campo, $valor, $inicio = -1, $cant = 0)
- {
- $data = new dataAccess();
- $valor = $data->escape($valor);
- $sql = 'SELECT '. $this->lista_campos
- .' FROM '. $this->nombre_tabla
- .' WHERE '. $campo .' LIKE "%'. $valor .'%"';
- // si se enviaron parametros $inicio y $cant, limitar los resultados
- if(is_numeric($inicio) && is_numeric($cant) && $inicio > -1 && $cant >= 1)
- {
- $sql .= ' LIMIT '. $inicio .', '. $cant;
- }
- return $data->query($sql);
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement