Advertisement
KaeruCT

usuario 0.6

Jul 10th, 2011
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.69 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4.     Autor: Ernesto Villarreal
  5.     Fecha de creación: 09/07/2011
  6.     Fecha de última actualización: 09/07/2011
  7. */
  8.  
  9.     include("dataAccess.php");
  10.    
  11.     class usuario
  12.     {
  13.         // nombre de la tabla en la base de datos
  14.         private $nombre_tabla;
  15.         // los campos de la tabla en la base de datos
  16.         private $campos_bd;
  17.         // string con los campos separados por coma (para usarlo en consultas)
  18.         private $lista_campos;
  19.        
  20.         public function __construct()
  21.         {
  22.             $this->nombre_tabla = 'usuario';
  23.            
  24.             $this->campos_bd = array(
  25.                 'id',
  26.                 'nombre',
  27.                 'apellido1',
  28.                 'apellido2'
  29.             );
  30.            
  31.             foreach($this->campos_bd as $campo)
  32.             {
  33.                 // agregar el campo a la lista de campos
  34.                 $this->lista_campos .= ($this->lista_campos ? ', ' : '').$campo;
  35.             }
  36.         }
  37.        
  38.         // funcion para agregar un nuevo usuario
  39.         // se envia un arreglo con todos los datos del nuevo usuario
  40.         public function agregarUsuario($datos)
  41.         {
  42.             $data = new dataAccess();
  43.             $lista_valores = '';
  44.            
  45.             foreach($this->campos_bd as $campo)
  46.             {
  47.                 // agregar el valor a la lista de valores
  48.                 if($campo == 'id')
  49.                 {
  50.                     // el id es autoincrement, asi que la base de datos se encarga de generarlo
  51.                     $valor = 'NULL';
  52.                 }
  53.                 else
  54.                 {
  55.                     // filtrar el dato correspondiente y ponerlo entre comillas
  56.                     $valor = '"' . $data->escape($datos[$campo]) . '"';
  57.                 }
  58.                
  59.                 $lista_valores .= ($lista_valores ? ', ' : '').$valor;
  60.             }
  61.  
  62.             $sql = 'INSERT INTO '. $this->nombre_tabla .' ('. $this->lista_campos .')'
  63.             .' VALUES ('. $lista_valores .')';
  64.  
  65.             //ejecutar la consulta
  66.             $data->query($sql);
  67.         }
  68.        
  69.         // funcion para actualizar datos de un usuario
  70.         // se envia un arreglo con todos los datos del usuario
  71.         public function actualizarUsuario($datos)
  72.         {
  73.             $data = new dataAccess();
  74.             $lista_set = '';
  75.            
  76.             foreach($this->campos_bd as $campo)
  77.             {
  78.                
  79.                 // agregar campo si el valor correspondiente fue enviado
  80.                 // el id no se actualiza
  81.                 if($campo != 'id' && isset($datos[$campo]))
  82.                 {
  83.                     $valor = $data->escape($datos[$campo]);
  84.                     // agregar el campo y el valor a la lista del SET
  85.                     $lista_set .= ($lista_set ? ', ' : '').$campo .' = "' . $valor . '"';
  86.                 }
  87.             }
  88.  
  89.             $sql = 'UPDATE '. $this->nombre_tabla
  90.             .' SET ' . $lista_set
  91.             .' WHERE id = '.$datos['id'];
  92.  
  93.             //ejecutar la consulta
  94.             $data->query($sql);
  95.         }
  96.        
  97.         // funcion que devuelve un arreglo con los datos del usuario especificado por ID
  98.         public function getUsuarioPorId($id)
  99.         {
  100.             $data = new dataAccess();
  101.            
  102.             // asegurar que el ID del usuario sea un entero
  103.             $id_usuario = (int) $id;
  104.  
  105.             $sql = 'SELECT '. $this->lista_campos
  106.             .' FROM '. $this->nombre_tabla
  107.             .' WHERE id = '. $id_usuario;
  108.  
  109.             // como la consulta solo devuelve una fila,
  110.             // devolver el arreglo con los datos del usuario de una vez
  111.             return $data->fetchq($sql);
  112.         }
  113.        
  114.         // funcion que devuelve todos los usuarios
  115.        
  116.         // parametros $inicio y $cant restringen el numero de registros
  117.         // $inicio indica el registro inicial (minimo 0)
  118.         // $cant indica la cantidad de registros a mostrar a partir del inicial
  119.         // esto es para hacer listas con paginas
  120.         // -$inicio seria $registros_por_pagina*$num_pagina_actual
  121.         // -$cant seria $num_pagina_actual
  122.        
  123.         public function getUsuarios($inicio = -1, $cant = 0)
  124.         {
  125.             $data = new dataAccess();
  126.  
  127.             $sql = 'SELECT '. $this->lista_campos
  128.             .' FROM '. $this->nombre_tabla;
  129.  
  130.             // si se enviaron parametros $inicio y $cant, limitar los resultados
  131.             if(is_numeric($inicio) && is_numeric($cant) && $inicio > -1 && $cant >= 1)
  132.             {
  133.                 $sql .= ' LIMIT '. $inicio .', '. $cant;
  134.             }
  135.  
  136.             return $data->query($sql);
  137.         }
  138.        
  139.         // funcion que devuelve los usuarios en los que $campo se aproxime a $valor
  140.         // ej: buscarUsuarios('apellido1', 'tor') => devuelve usuarios con apellido1 Torres, Torreja, etc
  141.        
  142.         // parametros $inicio y $cant restringen el numero de registros
  143.         // $inicio indica el registro inicial (minimo 0)
  144.         // $cant indica la cantidad de registros a mostrar a partir del inicial
  145.         // esto es para hacer listas con paginas
  146.         // -$inicio seria $registros_por_pagina*$num_pagina_actual
  147.         // -$cant seria $num_pagina_actual
  148.        
  149.         public function buscarUsuarios($campo, $valor, $inicio = -1, $cant = 0)
  150.         {
  151.             $data = new dataAccess();
  152.            
  153.             $valor = $data->escape($valor);
  154.  
  155.             $sql = 'SELECT '. $this->lista_campos
  156.             .' FROM '. $this->nombre_tabla
  157.             .' WHERE '. $campo .' LIKE "%'. $valor .'%"';
  158.            
  159.             // si se enviaron parametros $inicio y $cant, limitar los resultados
  160.             if(is_numeric($inicio) && is_numeric($cant) && $inicio > -1 && $cant >= 1)
  161.             {
  162.                 $sql .= ' LIMIT '. $inicio .', '. $cant;
  163.             }
  164.  
  165.             return $data->query($sql);
  166.         }
  167.     }
  168. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement