estoy creando un portal inmobiliario a fuerza de equivocarme mucho, leer muchos foros y siendo paciente, puesto que no llevo mucho tiempo en el mundo del diseño y creación de sitios web. Pero ya no puedo más .....
El problema es el siguiente:
He creado un un formulario con las siguientes variables:
provinciaList;
localidadList;
tipoinmueblef;
habitacionesf;
dichas variables la envío mediante POST a consulta.php. La consulta la hago sobre una BD llamada unicajainmuebles que yo he creado y tengo todos los privilegios sobre ella. El código de consulta.php es el siguiente:
<?PHP
// Obtener valores introducidos en el formulario
$provinciaList = $_POST['provinciaList'];
$localidadList = $_POST['localidadList'];
$tipoinmueblef = $_POST['tipoinmueblef'];
$habitacionesf = $_POST['habitacionesf'];
$error = false;
// Conectar con la Base de Datos
$conexion = mysql_connect ("localhost", "consulta", "consulta")
or die ("No se puede conectar con el servidor");
mysql_select_db ("oteator")
or die ("No se puede seleccionar la base de datos");
// Corrige problemas con tildes
mysql_query("SET NAMES 'utf8'");
// Enviar consulta
$instruccion = "Select * FROM unicajainmuebles WHERE (provincia = '$provinciaList') AND (localidad = '$localidadList')";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas > 0)
{
print ("<TABLE align='center' border='2' weight='200'>\n");
print ("<TR>\n");
print ("<TH>Provincia</TH>\n");
print ("<TH>Localidad</TH>\n");
print ("<TH>Habitaciones</TH>\n");
print ("</TR>\n");
for ($i=0; $i<$nfilas; $i++)
{
$resultado = mysql_fetch_array ($consulta);
print ("<TR>\n");
print ("<TD>" . $resultado['provincia'] . "</TD>\n");
print ("<TD>" . $resultado['localidad'] . "</TD>\n");
print ("<TD>" . $resultado['habitaciones'] . "</TD>\n");
print ("</TR>\n");
}
print ("</TABLE>\n");
}
else
print ("No hay inmuebles disponibles en $localidadList/$provinciaList este momento con estas características,</br>");
print ("</br>");
// Cerrar conexión
mysql_close ($conexion);
?>
Hasta hay bien, el problema viene cuando introduzco un tercer elemento en la consulta:
$instruccion = "Select * FROM unicajainmuebles WHERE (provincia = '$provinciaList') AND (localidad = '$localidadList') AND (tipoInmueble = '$tipoinmueblef'";
Si existe un inmueble que contenga todas las características (misma provincia, localidad y tipo de inmueble) perfecto. El problema viene cuando por ejemplo no existe ningún inmueble dentro de la localidad que el usuario a indicado mediante el formulario, entonces aparecen todos los resultados de la BD y no todos los resultados en la provincia como a mi me gustaría.
La idea es que muestre resultados tanto si el usuario ha indicado provincia, localidad, tipo de inmueble y habitaciones, o en su defecto que muestre todos los resultados que coincidan con provincia y localidad si el usuario no ha indicado tipo de inmueble y habitaciones como "indiferente" o sea valor nulo.
No se si me he explicado bien, espero que sí. He probado ya por activa y por pasiva y nada.... Espero me podáis ayudar.
Un saludo a tod@s y gracias de antemano