Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/05/2016, 04:14
elpre
 
Fecha de Ingreso: junio-2011
Mensajes: 151
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: varios combobox desde mysql

Buenas de nuevo,
no sabía que se podían utilizar clases en php también. He estado leyendo y cogiendo información de diferentes sitios y he hecho esto:

ClaseComarca.php
Código PHP:
<?php
class comarca{
    private 
$idComarca;
    private 
$nombreComarca;
    private 
$idZona;
    
    private 
$conexion;
    
    
//CONSTRUCTOR
    
public function modelo_comarca() {
        
$this->conexion = new mysqli("localhost""root""""plugin_dome");
         
        if (
mysqli_connect_errno()) {
            echo 
"Error al establecer la conexión con la base de datos: " mysqli_connect_error();
            exit();
        }
    }
    
    
//GETERS AND SETTERS
    
public function getIdComarca() {
        return 
$this->idComarca;
    }
    public function 
setIdComarca($idComarca) {
        
$this->idComarca $idComarca;
        return 
$this;
    }
    public function 
getNombreComarca() {
        return 
$this->nombreComarca;
    }
    public function 
setNombreComarca($nombreComarca) {
        
$this->nombreComarca $nombreComarca;
        return 
$this;
    }
    public function 
getIdZona() {
        return 
$this->idZona;
    }
    public function 
setIdZona($idZona) {
        
$this->idZona $idZona;
        return 
$this;
    }
    public function 
getConexion() {
        return 
$this->conexion;
    }
    public function 
setConexion($conexion) {
        
$this->conexion $conexion;
        return 
$this;
    }
    
    
//FUNCIONES
    
public function listar_comarca(){
        
$consulta="SELECT * from comarca";
        
$resultado=mysqli_query($this->conexion$consulta);
    
        return 
$resultado;
    }
}
Por no poner todo y que quede algo grande, no voy a poner las otras 3 clases, pero de momento sería lo mismo, pero con pubelo, zona e inmobiliaria.

Luego con el tema de mvc, he creado otra clase que se llama
vista.php
Código PHP:
<?php

class Vista{
    
//Creamos los diferentes combobox
    
public function selectInmobiliaria($resultados) {
        echo 
"<form method='post' action=''>";
        
        
//Falta hacer un FOR para que coja todos los valores, porque así solo va  sacar un valor 
        
echo "<select name='seleccionarInmobiliaria' size='1'>"
                
."<option value='1'>inmobiliaaria1</option>"
              
."</select>";
    }
    
    public function 
selectComarca($resultados) {
        echo 
"<form method='post' action=''>";
    
        echo 
"<select name='seleccionarComarca' size='1'>"
                
."<option value='1'>comarca1</option>"
              
."</select>";
    }
    
    public function 
selectPueblo($resultados) {
        echo 
"<form method='post' action=''>";
    
        echo 
"<select name='seleccionarPueblo' size='1'>"
                
."<option value='1'>pueblo1</option>"
              
."</select>";
    }
    
    public function 
selectZona($resultados) {
        echo 
"<form method='post' action=''>";
    
        echo 
"<select name='seleccionarZona' size='1'>"
                
."<option value='1'>zona1</option>"
              
."</select>";
    }
}

?>
De momento, para ver que va funcionando, he metido las opciones del select a mano en vez de que coja las opciones desde la base de datos porque tengo que hacer un for que de momento no sé cómo hacerlo.

Finalmente tengo el controlador
controlador.php
Código PHP:
<html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="x-ua-compatible" content="ie=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />

        <title></title>
        <link rel="stylesheet" href="css/*.css" />
        <title></title>
    </head>
    <body>

<?php

include_once 'Vista.php';
include_once 
'ClaseComarca.php';
include_once 
'ClaseInmobiliaria.php';
include_once 
'ClasePueblo.php';
include_once 
'ClaseZona.php';

session_start();

$vista=new Vista();

$inmobiliaria=new inmobiliaria();
$pueblo=new pueblo();
$comarca=new comarca();
$zona=new zona();

$vista->selectInmobiliaria($inmobiliaria->listar_inmobiliaria());
$vista->selectPueblo($pueblo->listar_pueblo());
$vista->selectComarca($comarca->listar_comarca());
$vista->selectZona($zona->listar_zona());

?>

    </body>
</html>
El problema es que al ejecutar me sale esto:
Código HTML:
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\PruebaPHP\ClaseComarca.php on line 52
[I][B]Aquí sale bien el combobox[/B][/I]
Ese mismo mensaje con las 4 clases