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


    CREATE VIEW PRUEBA AS (
    select 
        `user_control`.`ld_nacional` AS `ld_nacional`,
        `user_control`.`cel_local` AS `cel_local`,
        `user_control`.`internacional` AS `internacional`,
        `user_control`.`cel_ld` AS `cel_ld`,
        `user_control`.`local` AS `local`,
        `user_control`.`nom_usu` AS `nom_usu`,
        `user_control`.`id_usu` AS `id_usu`,
       `user_control`.`login` AS `login`,
       `user_control`.`psw` AS `psw`,
       if((`user_control`.`acceso` = 0),'Normal','Administrador') AS `acceso`,
       if((`user_control`.`status` = 0),'Desactivado','Activado') AS `status` 
     from 
       `user_control` 
       )



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.



     CREATE TABLE `user_control` (
      `id_usu` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
      `status` int(1) unsigned NOT NULL DEFAULT '1',
      `nom_usu` varchar(25) NOT NULL,
      `login` varchar(4) NOT NULL DEFAULT '0000',
      `psw` varchar(40) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,
      `local` tinyint(4) NOT NULL DEFAULT '0',
      `ld_nacional` tinyint(4) NOT NULL DEFAULT '0',
      `cel_local` tinyint(4) NOT NULL DEFAULT '0',
     `cel_ld` tinyint(4) NOT NULL DEFAULT '0',
     `internacional` tinyint(4) NOT NULL DEFAULT '0',
     `acceso` tinyint(4) NOT NULL DEFAULT '0',
     PRIMARY KEY (`id_usu`),
     UNIQUE KEY `login` (`login`)
   ) 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


public function getUsers(){
 $data=$this->db->get('vista');
 
 if($data->num_rows() >0){
             return $data;
     }
}

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


DESCARGAR WELCOME.PHP
   1: public function getUsers(){

   3:         if(isset($_SESSION['usuario'])){
   4:         //GUARDA EN LA VARIABLE $USERS TODOS LOS USUARIOS
   5:         $data['users'] = $this->usersModel->getUsers();
   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




   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>



    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Usuarios ITLM</title>
        <?php $estilo = base_url()."css/estilo.css";
              $estiloMenu = base_url()."css/menu.css";
             $logo = base_url()."/imagenes/logo.jpg";
             $menu= base_url()."/js/menu.js";
             $jjq= base_url()."/js/jquery.js";
             echo "&lt;link rel='stylesheet' type='text/css' href='$estilo' media='all'>";
             echo "<link rel='stylesheet' type='text/css' href='$estiloMenu' media='all'>";
             echo "<script src='$jjq'></script> ";
              echo "<script src='$menu'></script>";

       ?>      
   </head>
   <body>
   <div align="center">
   <?php
   $this->load->view('encabezado');
   $this->load->view($principal);
   $this->load->view('pie.php');
   ?>

   </div>

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

Comentarios

Entradas populares