martes, 21 de octubre de 2014

Como cargar un ComboBox desde una Base de Datos con PHP


En este tutorial les mostraré como cargar un COMBOBOX desde una base de datos utilizando PHP con implementación de MVC.


Se crea un archivo conexion.php que va a guardar la conexión a la base de datos, se crean las variables de conexión y las funciones que ejecutan el query, se utilizó en este caso odbc_connect.

Conexion.php
class Conexion
{
  var $conn;

  var $connection_string  = 'localhost';
  var $user ='root';
  var $pass = '';
  var $bdd = 'bdd_local';

//Conecta con la base de datos
function conectar(){
 if (!($this->conn = odbc_connect($this->connection_string, $this->user, $this->pass))){
  echo 'error al conectarse con la Base de Datos' ;
 }else{
        //echo ' Conexion exitosa';
 }
}

// consultar la base de datos se utiliza odbc
function ejecutar($query){
 return odbc_exec($this->conn, $query);
 $this->cerrarConexion() ;
}

// cierra una conexion 
function cerrarConexion(){
 odbc_close($this->conn) ;
}

}


Luego se crea un archivo donde  se llamara al archivo de conexión  con un require y se crea la consulta que traerá en este caso a todos los paises, instanciando la clase conexión y llamando al objeto.

MConsultas.php
require_once('Conexion.php');

//clase de conexion 
class Consulta{
 private $objeto = NULL;
  

//instancio la calse de conexion y la llamo this para poderla utilizar en este archivo  
public function __construct(){ //ceo un cosnturctor para preparar la consulta
 $this->objeto = new Conexion();
 $this->objeto->conectar();    
}

public function ObtenerTodosPaises(){
 $sql = "SELECT CodigoPais, NombrePais  FROM Pais ORDER BY NombrePais";
 $result = $this->objeto->ejecutar($sql);
 return $result;
}

}


Para finalizar se crea el archivo de visualización  VCombobox.php  el cual permitirá que este se llene dinámicamente a partir de los datos existentes en la en la tabla pais de la base de datos correspondiente. llamamos el archivo de consulta con un include, e icorporamos una etiqueta de php, donde se instancia el objeto y la clase consulta, y dentro de un while se llama un array que permitirá recorrer toda la tabla trayendo los datos de código y nombre, paso seguido se llaman la fila en el <option>, código para el value y nombre para los datos del combo.

VCombobox.php
 
<form id="fm" method="post" novalidate autocomplete="off">              
   <label for="TipoActivoCuenta">Tipo Activo - Cuenta <br>
   <select class="select-style gender"  name="TipoActivoCuenta"  style="width:515px" required>
   <option value="" selected>Selecione</option> 
     <?php
 include('MConsultas.php');
    
 $Objeto = new Consulta();
 $Rset = $Objeto->ObtenerTodosPaises();
    
 while($row = odbc_fetch_array($Rset)){
      ?>
   <option value="<?php echo $row['CodigoPais']; ?>"><?php echo utf8_encode($row['NombrePais']); ?></option>
     <?php
     }
     <?
   </select>
   </label>
 </form> 

Como pueden ver es muy sencillo de hacerlo, solo es cuestión de práctica.

No hay comentarios:

Publicar un comentario