Foros del Web » Programando para Internet » PHP »

Formulario de búsqueda

Estas en el tema de Formulario de búsqueda en el foro de PHP en Foros del Web. Hola a tod@s. Estoy intentando hacer un formulario de búsqueda para una web de una inmobiliaria. Por una parte tengo un html con el formulario ...
  #1 (permalink)  
Antiguo 03/11/2012, 12:00
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Pregunta Formulario de búsqueda

Hola a tod@s. Estoy intentando hacer un formulario de búsqueda para una web de una inmobiliaria. Por una parte tengo un html con el formulario y por otra un php que quiero que me busque (según lo seleccionado en el formulario) en una base de datos de Access y que me muestre en pantalla los resultados.

Cuando le doy a buscar no me muestra nada en pantalla o me sale parte del código php.

¿Alguien me puede ayudar? Estoy un poco desesperado ya...


Mil gracias!!!!



É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>
  #2 (permalink)  
Antiguo 03/11/2012, 20:49
 
Fecha de Ingreso: noviembre-2010
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 11
Respuesta: Formulario de búsqueda

en el formulario empleas el metodo get, por lo tanto en el codigo php capturas los valores con GET no con POST, seria asi:

$zona= $_GET["zona"];
$habitaciones= $_GET["habitaciones"];
$precio= $_GET["precio"];
  #3 (permalink)  
Antiguo 04/11/2012, 08:01
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Pregunta Respuesta: Formulario de búsqueda

Ya lo he cambiado y sigue sin funcionar. Al final he utilizado el método POST, que me habían comentado que era más recomendable.

Gracias por contestar.
  #4 (permalink)  
Antiguo 04/11/2012, 10:09
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Formulario de búsqueda

Pero el que no te funciona? podrias darnos algo mas de informacion?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #5 (permalink)  
Antiguo 04/11/2012, 14:52
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Formulario de búsqueda

Pues que no me muestra nada en pantalla... No sé si lo estoy haciendo todo bien, si hay algún error en el código o qué pasa...
  #6 (permalink)  
Antiguo 04/11/2012, 15:27
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Formulario de búsqueda

has probado en el php antes de hacer todo hacer un simple:

echo=$_POST["zona"]; y demas campos haber si recibes bien los valores?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #7 (permalink)  
Antiguo 04/11/2012, 15:32
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Formulario de búsqueda

Lo acabo de probar y nada, en pantalla me sale lo mismo que antes, que es esto:

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 ); ?>


Debe ser algún error en la sintaxis o algo así, pero es que no encuentro dónde está el error.
  #8 (permalink)  
Antiguo 04/11/2012, 15:35
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Formulario de búsqueda

Si te muestra el codigo sin duda es error de sintaxis, ahora mismo no estoy en mi ordenador con lo que no tengo opcion a comprobartelo en mi editor de codigo, si en unas horas cuando vuelva no te han respondido te lo revisare ;)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #9 (permalink)  
Antiguo 04/11/2012, 15:40
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Formulario de búsqueda

Genial, muchas gracias. Creo que el problema está en el filtro y también creo que no recibe bien los valores del formulario.
  #10 (permalink)  
Antiguo 04/11/2012, 17:54
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Formulario de búsqueda

Acabo de comprobar tu codigo y no da ningun error.. creo que el problema puede estar en la conexion con el access revisalo bien
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #11 (permalink)  
Antiguo 05/11/2012, 04:52
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Formulario de búsqueda

¿Para comprobar que funciona tengo que subirlo todo a internet? Gracias.
  #12 (permalink)  
Antiguo 05/11/2012, 04:59
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Formulario de búsqueda

Pues si no tienes el servidor local preparado y instalado, si deberias de subirlo a un hosting, si lo estabas haciendo en local deberias de poder hacerlo como normalmente ;)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #13 (permalink)  
Antiguo 05/11/2012, 05:01
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Formulario de búsqueda

Ok! ya me imaginaba... ¿Y la base de datos la puedo subir como un archivo dentro del mismo directorio o tengo que alojarla con un servicio de base de datos?
  #14 (permalink)  
Antiguo 05/11/2012, 05:06
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Formulario de búsqueda

pues la verdad.. no e programado nunca utilizando base de datos access, con lo que no sabria decirte :D, pero prueba a subirlo juntos.. :D, por cierto.. si vas a subirlo a la web, porque no usas mysql en lugar de access?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #15 (permalink)  
Antiguo 05/11/2012, 07:13
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Formulario de búsqueda

Pues prefiero Access porque es una base de datos que luego hay que modificar y para la persona que luego lo tiene que ir actualizando es más fácil.

Además creo que para MySQL hay que tener un programa específico de Oracle, ¿no?
  #16 (permalink)  
Antiguo 05/11/2012, 07:20
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 2 meses
Puntos: 14
Respuesta: Formulario de búsqueda

En la pantalla te muestra tu código php? estas seguro que el server esta interpretando Php?

Cita:
Iniciado por eldespertador Ver Mensaje
Lo acabo de probar y nada, en pantalla me sale lo mismo que antes, que es esto:

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 ); ?>


Debe ser algún error en la sintaxis o algo así, pero es que no encuentro dónde está el error.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #17 (permalink)  
Antiguo 05/11/2012, 07:24
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Formulario de búsqueda

Pues yo de momento me he quedado fuera de juego.. :P jajaj asi a simple vista no podria decirte que esta pasando, si quieres pasame tus archivos por email, lo pruebo, veo los errores y luego publicas la solucion o el problema ;)

que te parece?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #18 (permalink)  
Antiguo 05/11/2012, 07:55
 
Fecha de Ingreso: agosto-2012
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Formulario de búsqueda

Me parece genial, si me dices tu e-mail te lo mando encantado. Muchísimas gracias, de verdad.

Etiquetas: access, desplegables, formulario, listas, busquedas
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 17:04.