Vistas MySQL y Funciones en CodeIgniter

Vistas

¿Para que sirven?

Una vista en la base de datos MySQL Sirve para representar o interpretar los datos que se encuentran en las filas de las tablas.

Por ejemplo:

Cuando una columna guarda puros datos booleanos de ceros y unos al momento de realizar la consulta el usuario tiene que saber que significa estos valores, como cuando se guarda el tipo de usuario de un sistema que son “Administrador y Normal”, al administrador en la tabla se guarda como 1 y al usuario con el 0.

Código para crear la vista

 
   1: CREATE VIEW PRUEBA AS (
   2: select 
   3:     `user_control`.`ld_nacional` AS `ld_nacional`,
   4:     `user_control`.`cel_local` AS `cel_local`,
   5:     `user_control`.`internacional` AS `internacional`,
   6:     `user_control`.`cel_ld` AS `cel_ld`,
   7:     `user_control`.`local` AS `local`,
   8:     `user_control`.`nom_usu` AS `nom_usu`,
   9:     `user_control`.`id_usu` AS `id_usu`,
  10:     `user_control`.`login` AS `login`,
  11:     `user_control`.`psw` AS `psw`,
  12:     if((`user_control`.`acceso` = 0),'Normal','Administrador') AS `acceso`,
  13:     if((`user_control`.`status` = 0),'Desactivado','Activado') AS `status` 
  14:   from 
  15:     `user_control` 
  16:     )

Como pueden ver en los campos “acceso y status” hay un IF donde dice que si es igual a 0 mandara el valor de Normal y si es 1 mandara Administrador, en caso de status, si es igual a 0 pintara como Desactivado y si no es igual a 0 pintara como Activado.


Código tabla original




   1: CREATE TABLE `user_control` (
   2:   `id_usu` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
   3:   `status` int(1) unsigned NOT NULL DEFAULT '1',
   4:   `nom_usu` varchar(25) NOT NULL,
   5:   `login` varchar(4) NOT NULL DEFAULT '0000',
   6:   `psw` varchar(40) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,
   7:   `local` tinyint(4) NOT NULL DEFAULT '0',
   8:   `ld_nacional` tinyint(4) NOT NULL DEFAULT '0',
   9:   `cel_local` tinyint(4) NOT NULL DEFAULT '0',
  10:   `cel_ld` tinyint(4) NOT NULL DEFAULT '0',
  11:   `internacional` tinyint(4) NOT NULL DEFAULT '0',
  12:   `acceso` tinyint(4) NOT NULL DEFAULT '0',
  13:   PRIMARY KEY (`id_usu`),
  14:   UNIQUE KEY `login` (`login`)
  15: ) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;

 

 

Ahora la función en el modelo para cargar los datos, el archivo se llama usersModel.php



   1: public function getUsers(){
   2:         $data=$this->db->get('vista');
   3:         if($data->num_rows() >0){
   4:             return $data;
   5:         }else{
   6:             return false;
   7:             }
   8:     }

 

Ahora se manda llamar la función del modelo con la función getUsers desde el controlador, el archivo se llama Welcome.php



   1: public function getUsers(){
   2:         
   3:         if(isset($_SESSION['usuario'])){
   4:         //GUARDA EN LA VARIABLE $USERS TODOS LOS USUARIOS
   5:         $data['users'] = $this->usersModel->getUsers();
   6:     
   7:         $data['principal']="listusers.php";
   8:         
   9:                 //SE ASIGNA QUE PAGINA SE CARGAR PARA VISUALIZAR LOS DATOS
  10:                 $this->load->vars($data);
  11:                 $this->load->view('plantilla');
  12:         }else{
  13:         echo "<script> alert('Acceso restringido')</script>";
  14:         $data['principal']="acceso.php";
  15:         
  16:                 $this->load->vars($data);
  17:                 $this->load->view('plantilla');
  18:         }
  19:     }

 

Les dejo las vistas de la plantilla y la lista de usuarios por si la necesitan

 

 


listuser.php



   1:  
   2: <?php
   3:  
   4:  
   5: $eliminar = base_url()."imagenes/eliminar.fw.png";
   6: $actualizar = base_url()."imagenes/modificar.png";
   7:     
   8: function estadoImg($edo){
   9:     $palomita = base_url()."imagenes/v.fw.png";
  10:     $x = base_url()."imagenes/eliminar.png";
  11:     if($edo==1){
  12:         return "<img src=".$palomita.">";
  13:     }
  14:     else{
  15:         return "<img src=".$x.">";
  16:     }
  17: }
  18:  
  19:  
  20:  
  21: ?>
  22:         <script type="text/javascript">
   1:  
   2:         <!--
   3:         
   4:         function confirmacion(id) {
   5:         var answer = confirm("Esta seguro que desea eliminar")
   6:         if (answer){
   7:         alert("Ha confirmado eliminar")
   8:         location.href="deleteUserId/"+id
   9:         }
  10:         else{
  11:         alert("Cancelado")
  12:         }
  13:     }
  14:     
  15:     function actualizar(id) {
  16:         
  17:         location.href="updateUserId/"+id
  18:         
  19:     }
  20: //-->
</script>
  23:  
  24: <body>
  25:     
  26: <div id="container">
  27:  
  28:     <div id="body" align="center">
  29:         <h3>Mis Usuarios son</h3>
  30:         <p>hola</P>
  31:         <?php echo $_SESSION['usuario'];?>
  32:         
  33:         <div id="tabla">
  34:          
  35:             <table border="0" align="left">
  36:             
  37:             <form id="b" name="b" action="&lt;?=base_url()?>index.php/welcome/buscarUsuarios" method="POST">
  38:             <td><input type= "text" id="buscar" name="buscar" ></td>
  39:             
  40:             <td><input type="submit" id="arre" name="arre" value="buscar"&lt;/td></tr>
  41:             </form>
  42:             
  43:             
  44:             
  45:             
  46:             </table>
  47:             
  48:             <table border="0" align="center">
  49:             <tr bgcolor="#7362ec" align="center" onfocus="<?php echo "HOLA";?>">
  50:             
  51:             <td><b>Nombre</b></td>
  52:             <td><b>Usuario </b></td> 
  53:             <td><b>Estado de usuario </b></td> 
  54:             <td><b>Nivel de acceso</b></td>
  55:             <td><b>Llamadas locales permitidas</b></td>
  56:             <td><b>Llamadas celular local permitidas</b></td>
  57:             <td><b>Llamadas a celular  permitidas</b></td>
  58:             <td><b>Llamadas nacionales permitidas</b></td>
  59:             <td><b>Llamadas internacionales permitidas</b></td>
  60:             <td><b>Eliminar usuario</b></td>
  61:             <td><b>Modifiacar usuario</b></td>
  62:             </tr>
  63:             <tr>
  64:         
  65:             <?php
  66:             $colorfila=0;
  67:             
  68:             
  69:             if($users!=false){
  70:                foreach($users->result() as $row){
  71:                    if ($colorfila==0){ 
  72:                    $color= "#b5b5b5"; 
  73:                    $colorfila=1; 
  74:                     }else{ 
  75:                    $color="#f7f7f7"; 
  76:                    $colorfila=0; 
  77:                 }    
  78:                 echo "<tr bgcolor='".$color."' align='center'>";
  79:                 echo "<td>";
  80:                 echo "<a href=".base_url()."index.php/welcome/getUserId/".$row->id_usu.">";
  81:                 echo $row->nom_usu."</a> </td> <td>". $row->login."</td>
  82:                 <td> ".$row->status."</td>
  83:                 <td > ".$row->acceso."</td> 
  84:                 
  85:                 <td>". estadoImg($row->local)."</td>
  86:                 <td>". estadoImg($row->cel_local)."</td>
  87:                 <td>". estadoImg($row->cel_ld)."</td>
  88:                 <td>". estadoImg($row->ld_nacional)."</td>
  89:                 <td>". estadoImg($row->internacional)."</td>
  90:                 <td><a href=javascript:confirmacion($row->id_usu)><img src=$eliminar></a></td>
  91:                 <td><a href=javascript:actualizar($row->id_usu)><img src=$actualizar></a></td>";
  92:                 echo "</tr>";
  93:             }
  94:             
  95:         }
  96:         ?>
  97:         
  98:         </table>
  99:         </div>
 100:  
 101:     </div>
 102:  
 103:  
 104: </div>
 105:  
 106: </body>

plantilla.php



   1: <!DOCTYPE html>
   2: <html lang="en">
   3: <head>
   4:     
   5:     
   6:     <meta charset="utf-8">
   7:     <title>Usuarios ITLM</title>
   8:     <?php $estilo = base_url()."css/estilo.css";
   9:           $estiloMenu = base_url()."css/menu.css";
  10:     
  11:     
  12:           $logo = base_url()."/imagenes/logo.jpg";
  13:           $menu= base_url()."/js/menu.js";
  14:           $jjq= base_url()."/js/jquery.js";
  15:           
  16:       
  17:           echo "&lt;link rel='stylesheet' type='text/css' href='$estilo' media='all'>";
  18:           echo "<link rel='stylesheet' type='text/css' href='$estiloMenu' media='all'>";
  19:           echo "<script src='$jjq'></script>
   1: ";
   2:           echo "<script src='$menu'>
</script>";
  20:          
  21:           
  22:          
  23:     ?>
  24:            
  25: </head>
  26:  
  27: <body>
  28: <div align="center">
  29: <?php
  30:  
  31: $this->load->view('encabezado');
  32: $this->load->view($principal);
  33: $this->load->view('pie.php');
  34:  
  35: ?>
  36: </div>

 



Les dejo un video que vi por si se van iniciando al Framework  de CodeIgniter


0