Foros del Web » Programando para Internet » PHP »

Usando el MVC, como se llena un select desde una BD

Estas en el tema de Usando el MVC, como se llena un select desde una BD en el foro de PHP en Foros del Web. Hola a todos, tengo la siguiente inquietud. Tengo en mi BD una tabla pais (por ejemplo, pero tengo muchas mas similares ) y en algunos ...
  #1 (permalink)  
Antiguo 15/07/2010, 03:43
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años
Puntos: 13
Pregunta Usando el MVC, como se llena un select desde una BD

Hola a todos, tengo la siguiente inquietud.

Tengo en mi BD una tabla pais (por ejemplo, pero tengo muchas mas similares ) y en algunos formularios de registro quiero que aparezca un select con con la lista de paises.

En programación estructurada yo hacia una funcion donde consultaba la lista de paises y los mostraba sin ningun problema.

Pero como estoy usando POO y MVC llegue a este punto y no tengo muy claro como hacer ese tipo de selects.

Sin embargo, pregunto: se crea una clase pais y uno de los metodos seria dicha funcion ??? es decir, un metodo por ejemplo listapaises() que muestre en la vista un select ???

Muchas gracias por la ayuda.
__________________
Juguetes Sexuales
  #2 (permalink)  
Antiguo 15/07/2010, 06:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Usando el MVC, como se llena un select desde una BD

Mira este material http://www.librosweb.es/symfony/capi...atron_mvc.html tienen un ejemplo usando foreach en la parte que se usa para la vista y cómo deberías hacerlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 15/07/2010, 17:59
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años
Puntos: 13
De acuerdo Respuesta: Usando el MVC, como se llena un select desde una BD

abimaelrc, revisare el link haber si logro lo que quiero. Muchas gracias.
__________________
Juguetes Sexuales
  #4 (permalink)  
Antiguo 16/07/2010, 13:56
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Usando el MVC, como se llena un select desde una BD

puedes hacerlo de muchas formas, lo que yo haría es crear un modelo para paises, en donde tenga los metodos para el ABM y las consultas por ejemplo:
Código PHP:
Ver original
  1. class paises extend model(){
  2. public function nuevoPais($data){
  3. }
  4. public function buscarPais($data){
  5. }
  6. public function editarPais($data){
  7. }
  8. public function borrarPais($data){
  9. }
  10. public function listaPaises(){
  11.    $sql="select * from paises";
  12.    $consulta = $this->db->queryArray($sql);
  13.    return consulta;
  14. }
  15. }

depues en tu controlador asignas a una variables que pases a la vista el resultado de listarPaises();
El metodo "queryArray()", te tiene que devolver un arreglo, y despues en la vista, lo corres con foreach o con un simple for.

salu2
  #5 (permalink)  
Antiguo 16/07/2010, 23:59
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años
Puntos: 13
De acuerdo Respuesta: Usando el MVC, como se llena un select desde una BD

Bueno, colocare la solución haber como la ves, Solo colocare lo necesario.
Advirtiendo que uso PDO con Singleton.

Pais.php
Código PHP:
<?php
    
class Pais extends ModelBase{
        
        
//ModelBase contiene la conexio  a la BD
        
public function lista()
        {
            
$this->consulta $this->db->prepare('SELECT * FROM paises');
            
$this->consulta->execute();
            return 
$this->consulta;
        }
        
    }
?>
InmuebleController.php
Código PHP:
<?php
    
class InmuebleController extends ControllerBase{

        public function 
nuevo(){
            require 
'models/Pais.php';
            require 
'models/Agente.php';
            require 
'models/Entidad.php';
            
            
//Instancio los objetos que necesito
            
$pais            = new pais();
            
$agente          = new agente();
            
$entidad         = new entidad();
            
            
//Obtengo la lista de los diferentes select que necesito
            
$listap          $pais->lista();
            
$listaa          $agente->lista();
            
$listae          $entidad->lista();
            
            
//Asigno a $datos los items consultaos
            
$datos['listap'] = $listap;
            
$datos['listam'] = $listam;
            
$datos['listae'] = $listae;
            
            
//Envio las listas en $datos a la plantilla
            
$this->view->show('inmueble/create.php',$datos);
        }
        
    }
?>
y la vista, obviamente no coloco todo lo del archivo, solamente la seccion donde saco la lista
create.php

Código PHP:
Ver original
  1. <table width="620" border="0" align="center" cellpadding="5" cellspacing="10">
  2.   <tr>
  3.     <td><div align="center">
  4.       <h1>Nuevo Inmueble </h1>
  5.     </div></td>
  6.   </tr>
  7.   <tr>
  8.     <td><table width="620" border="0" align="center" cellpadding="5" cellspacing="10">
  9.       <tr>
  10.         <td><label>Pais</label></td>
  11.         <td>
  12.         <select name="pais" id="pais">
  13.             <?php foreach ($listap as $p): ?>
  14.                 <option value="<?php echo $p['id']?>"><?php echo $p['nombre']?></option>
  15.             <?php endforeach; ?>
  16.         </select></td>
  17.         <td><label>Agente </label>
  18.         </td>
  19.         <td>
  20.             <select name="agente" id="agente">
  21.             <?php foreach ($listaa as $a): ?>
  22.                 <option value="<?php echo $a['id']?>"><?php echo $a['nombre']?></option>
  23.             <?php endforeach; ?>
  24.         </select>
  25.         </td>
  26.       </tr>
  27.    ..... resto del formulario
  28.      
  29.     </table></td>
  30.   </tr>
  31. </table>

Cualquier sugerencia o critica sera bien recibida, gracias a ambos por la ayuda.
__________________
Juguetes Sexuales

Etiquetas: bd, mvc, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:25.