Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/11/2012, 12:25
eldespertador
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Formulario de búsqueda

Ahora éste es el código que tengo en el html

Código:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<form action="busqueda.php" method="get">
   <p>Zona:<br /> 
     <select name="zona">    
       <option value="Bugibba" selected="selected">Bugibba</option>
       <option value="Gzira">Gzira</option>
       <option value="St Julian's">St Jualian's</option>
       <option value="Sliema">Sliema</option>
       <option value="Swiqi">Swiqi</option>
       <option value="Valleta">Valleta</option>
     </select>
   </p>
   <p>   Número de habitaciones: <br /> 
     <select name="habitaciones">    
       <option value="1" selected="selected">1 dormitorio</option>
       <option value="2">2 dormitorios</option>
       <option value="3">3 dormitorios</option>
       <option value="4">4 dormitorios</option>
       <option value="5">5 dormitorios</option>
     </select>
   </p>
    <p>   Precio máximo: <br /> 
     <select name="precio">    
       <option value="400" selected="selected">400</option>
       <option value="500">500</option>
       <option value="600">600</option>
       <option value="750">750</option>
       <option value="1000">1000</option>
       <option value="masde1000">Más de 1000</option>
     </select>
    </p>
    <input type="submit" value="Buscar" />
   
 

</form>

</body>
</html>
Y éste el que tengo en el PHP

Código:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>


<body>
<?php
$zona = $_POST["zona"];
$habitaciones = $_POST["habitaciones"];
$precio = $_POST["precio"];

// Se especifica la ubicación de la base de datos Access (directorio actual)
$db = getcwd() . "\\" . 'fervan.accdb';
// Se define la cadena de conexión
$dsn = "DRIVER={Microsoft Access Driver (*.accdb)};
DBQ=$db";

// Se realiza la conexón con los datos especificados anteriormente
$conn = odbc_connect( $dsn, '', '' );
if (!$conn) { exit( "Error al conectar: " . $conn);
}

$filtros = array();
if($zona != 0) {
    // Supongo que deberas verificar que el valor recibido es correcto y
    // corresponde a un registro en tu base de datos
    $filtros[] = "zona = $zona";
}
if($habitaciones != 0) {
    // Supongo que deberas verificar que el valor recibido es correcto y
    // corresponde a un registro en tu base de datos
    $filtros[] = "habitaciones = $habitaciones";
}
if($precio != 0) {
    // Supongo que deberas verificar que el valor recibido es correcto y
    // corresponde a un registro en tu base de datos
    $filtros[] = "precio <= $precio";
	
}
 
// Despues de agregar cada campo, complementas tu consulta:
if(count($filtros) > 0) {
    $filtro = ' WHERE ' . implode(' AND ', $filtros);
} else {
    $filtro = '';
}
$consulta = "SELECT * FROM pisos $filtro";

// Se ejecuta la consulta y se guardan los resultados en el recordset rs
$rs = odbc_exec( $conn, $consulta );
if ( !$rs ) { exit( "Error en la consulta SQL" );
}
// Se muestran los resultados
while ( odbc_fetch_row($rs) ) { $resultado=odbc_result($rs,"Campo"); echo $resultado; }
// Se cierra la conexión
odbc_close( $conn );


?>
</body>
</html>
No sé si lo estoy haciendo bien, cuando hago la búsqueda esto es lo que me sale en pantalla:

0) { $filtro = ' WHERE ' . implode(' AND ', $filtros); } else { $filtro = ''; } $consulta = "SELECT * FROM pisos $filtro"; // Se ejecuta la consulta y se guardan los resultados en el recordset rs $rs = odbc_exec( $conn, $consulta ); if ( !$rs ) { exit( "Error en la consulta SQL" ); } // Se muestran los resultados while ( odbc_fetch_row($rs) ) { $resultado=odbc_result($rs,"Campo"); echo $resultado; } // Se cierra la conexión odbc_close( $conn ); ?>