Ver Mensaje Individual
  #10 (permalink)  
Antiguo 04/11/2014, 15:20
slikp
 
Fecha de Ingreso: marzo-2013
Mensajes: 32
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Pasar un parametro o variable a una clase

- Hola hhs, gracias por el apoyo en ciertas cosas tienes razon realmente esto algo nuevo para mi y a decir verdad no tengo casi ni las bases, pero ya e indigado y reescrito en ciertas cosas mi codigo y he probado muchas cosas en el codigo.

- Ya decidi tener la conexion separa del crud. te espondre lo que llevo para ver si puedes ayudarme.

1- tengo este formulario.

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.     <title>Control de Equipos</title>
  4.     <meta charset="utf-8">
  5.     <link rel="stylesheet" type="text/css" href="css/style.css">
  6. </head>
  7.  <div id="login-form">    
  8.       <h3>Bases de Datos</h3>
  9.         <fieldset>
  10.             <form action="board_table.php" method="post">
  11.                 <center>
  12.                     <select name="cod_empresa">
  13.                         <option Value="HUYAP_N">Proyecto H</option>
  14.                         <option Value="Zuat">Proyecto Z</option>
  15.                         <option Value="Ricl">Proyecto C</option>
  16.                     </select>
  17.                 </center>    
  18.  
  19.                 <input type="hidden" name="session">
  20.                 <input id="sub" type="submit" value="Iniciar Conexión">
  21.             </form>
  22.         </fieldset>
  23. </div>
  24. </body>
  25. </html>


2- Ese formulario se viene aca.

Código PHP:
Ver original
  1. Código
  2. <?php
  3.     require_once 'conexion.table.php';
  4.     require_once 'crud.php';
  5.  
  6.         $cod_empresa = (isset($_POST['cod_empresa'])) ? $_POST['cod_empresa'] : "";
  7.         $Conexion = new Conexion();
  8.         $Conexion->conectar($cod_empresa);
  9.  
  10.     if(isset($_POST['session']))
  11.     {
  12.         header('location:ready.php');
  13.     }
  14. ?>


2.1 - Donde la clase conexion es la siguiente.

Código PHP:
Ver original
  1. Código
  2. <?php
  3. class Conexion
  4. {
  5.     public $ndatabase ="";
  6.  
  7.     public function conectar($cod_empresa="")
  8.        {
  9.             $this->ndatabase = $cod_empresa;
  10.             $server = 'sbvbieloven';
  11.             $database = $this->ndatabase;
  12.             $username = 'profit';
  13.             $password = 'profit';
  14.             return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
  15.         }
  16. }
  17. ?>


3- Seguidamente por la condicion del Punto 2 me redirecciona a esta pag.
Código HTML:
Ver original
  1. Código
  2. <?php
  3.     require_once "conexion.table.php";
  4.     require_once "crud.php";
  5.  
  6.     $model = new Crud;
  7.     $model->Read();
  8.     $filas = $model->rows;
  9.     $total = count($filas);
  10. ?>
  11.     <title></title>
  12.     <meta charset="UTF-8">
  13.     <link rel="stylesheet" type="text/css" href="css/style.css">
  14.     <script src="script/jquery-2.1.1.min.js"></script>
  15.     <script src="script/ajax.js"></script>
  16. </head>
  17. <body> 
  18.     <section class="criterio">
  19.         <div id="crit-form">
  20.             <h3>Criterio de Busquedas</h3>
  21.             <fieldset>
  22.             <form class="crit-form" name="search_form" id="search_form">
  23.                 <small> El Total de Filas en Base de Datos: <?php echo $total ?> </small>
  24.                         <select size="10">
  25.                         <option id="resultados"></option>
  26.                         </select>
  27.                     <small>Por Ficha</small>
  28.                     <input type="text" name="search" id="search_fi" placeholder="introduzca Codigo Ficha Ej: Ch001">
  29.                     <small>Por Cedula</small>
  30.                     <input type="text" name="search" id="search_ci" placeholder="Cedula Use Puntos Ej: 49.781.190">
  31.                     <small>Por Nombre</small>
  32.                     <input type="text" name="search" id="search" placeholder="introduzca un Nombre Ej: Antonio">
  33.                     <small>Por Estatus</small>
  34.                     <select >
  35.                         <option>Seleccione Estatus</option>
  36.                         <option selected>Activo</option>
  37.                         <option>Inactivo</option>
  38.                         <option>Por Liquidar</option>
  39.                         <option>Liquidado</option>
  40.                     </select>
  41.                     <input type="submit" Value="Procesar">
  42.                 </form>
  43.             </fieldset>
  44.         </div>
  45.     </section> 
  46. </body>
  47. </html>

4- Donde mi clase Crud es la siguiente.

Código PHP:
Ver original
  1. Código
  2. <?php
  3.     class Crud
  4. {
  5.         public $insertInto;
  6.         public $insertColumns;
  7.         public $insertValues;
  8.         public $mensaje;
  9.         public $rows;
  10.  
  11.     public function Create()
  12.     {
  13.         $model = new Conexion;
  14.         $conexion = $model->conectar();
  15.         $insertColumns = $this->insertColumns;
  16.         $insertValues = $this->$insertValues;
  17.         $sql = "INSERT INTO $insertInto ($insertColumns) VALUES ($insertValues)";
  18.         $consulta = $conexion->prepare($sql);
  19.         if (!$consulta)
  20.         {
  21.             $this->mensaje = "Error...";
  22.         }
  23.         else
  24.         {
  25.             $consulta->execute();
  26.             $this->mensaje = "Registro Creado";
  27.         }
  28.     }
  29.  
  30.     public function Read()
  31.     {
  32.         $model = new Conexion();
  33.         $conexion = $model->conectar();
  34.         $sql = "SELECT * FROM snemple";
  35.         $consulta = $conexion->prepare($sql);
  36.         $consulta->execute();
  37.  
  38.         while ($filas = $consulta->fetch())
  39.         {
  40.             $this->rows[] = $filas;
  41.         }
  42.     }
  43.     public function Searchi()
  44.     {
  45.         $model = new Conexion();
  46.         $conexion = $model->conectar($_POST['cod_empresa']);
  47.  
  48.             $search = $_POST['search'];
  49.  
  50.         $sql = "SELECT nombres, apellidos, ci, cod_emp FROM snemple WHERE nombres LIKE '%".$search."%' or ci LIKE '%".$search."%' or cod_emp LIKE '%".$search."%'";
  51.         $consulta = $conexion->prepare($sql);
  52.         $consulta->execute();
  53.  
  54.         while ($filas = $consulta->fetch())
  55.         {
  56.             $this->rows[] = $filas;
  57.         }
  58.     }
  59. }
  60. ?>


5- Ahora he añadido algunas cosas como Ajax de la siguiente forma. Ya inclui las etiquetas jquery y mi otro script ajax que es donde esta mi funcion de esta forma.

Código Javascript:
Ver original
  1. Código
  2. $(function(){
  3.     $('#search').focus();
  4.     $('#search_form').submit(function(e){
  5.         e.preventDefault();
  6.     })
  7.  
  8.     $('#search_form input[type=text]').keyup(function(){
  9.  
  10.         var envio = $(this).val();
  11.  
  12.         $('#resultados').html('<h2><img src="img/loadin.gif" width="20" /> Cargando...</h2>');
  13.         $.ajax({
  14.             type: 'POST',
  15.             url: 'search.php',
  16.             data: ('search='+envio),
  17.             success: function(resp){
  18.                 if (resp!="") {
  19.                     $('#resultados').html(resp);
  20.                 }
  21.             }
  22.         })
  23.     })
  24. })


6- Donde el Search.php es este.

Código PHP:
Ver original
  1. Código
  2. <?php
  3.     require_once "conexion.table.php";
  4.     require_once "crud.php";
  5.  
  6.     sleep(1);
  7.  
  8.         $search = '';
  9.         $nombres = '';
  10.         if (isset($_POST['search'])){
  11.             $search = $_POST['search'];
  12.         }
  13.  
  14.         $model = new Crud;
  15.         $model->Searchi($search);
  16.         $filas = $model->rows;
  17.         $total = count($filas);
  18.  
  19.   if ($total>0 && $search!='')
  20.   {
  21. ?>
  22.     <select class="selected" size="10">
  23.     <?php
  24.         foreach ($filas as $fila)
  25.         {
  26.     ?> <option id="resultados">
  27.     <?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos'];
  28.     ?> </option>
  29.     <?php
  30.         }
  31.     ?>
  32.         </select>
  33.     <?php
  34.   }
  35.  
  36.     else { if($total>0 && $search=='') {
  37.     ?>
  38.     <select size="10">
  39.     <?php  
  40.     foreach ($filas as $fila)
  41.         {
  42.     ?>
  43.     <option id="resultados">
  44.         <?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos']; ?>
  45.     </option>
  46.     <?php
  47.         }
  48.     ?>
  49.         </select>
  50.     <?php
  51.   }
  52. }
  53.     ?>


- Eso ultimo me actualiza el Option de mi html y me muestra los registros en mi Select por medio de la funcion Searchi.

- Ahora aclaro todo eso me funciona de 10 si dejo mi clase conexion asi y obviamente quitando los argumentos a los metodos del Crud

Código PHP:
Ver original
  1. Código
  2. <?php
  3. class Conexion
  4. {    
  5.     public function conectar()
  6.        {
  7.             $server = 'sbvbieloven';
  8.             $database = 'HUYAP_N';
  9.             $username = 'profit';
  10.             $password = 'profit';
  11.             return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
  12.         }
  13. }
  14. ?>


- Si la dejo asi funciona al pelo me muestra los registros de esta BD fino y como yo quiero, pero no es la idea porque en mi primer html tengo un select con 3 opciones que son 3 bd distintas en el mismo gestor de bd y bueno la idea principal es esa pues tener una funcion que me permita visualizar la informacion que yo quiera al selecionar cualquiera de esas 3 bd.