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