Foros del Web » Programando para Internet » PHP »

¿Cómo iniciar una busqueda mediante form con listas?

Estas en el tema de ¿Cómo iniciar una busqueda mediante form con listas? en el foro de PHP en Foros del Web. Hola FDW, ¿cómo puedo lograr hacer funcionar este buscador mediante un formulario con listas?. Este es el algoritmo, tengo por supuesto un select con cada ...
  #1 (permalink)  
Antiguo 04/05/2013, 19:01
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 12 años, 8 meses
Puntos: 29
Busqueda ¿Cómo iniciar una busqueda mediante form con listas?

Hola FDW, ¿cómo puedo lograr hacer funcionar este buscador mediante un formulario con listas?.


Este es el algoritmo, tengo por supuesto un select con cada uno de estos nombres en el formulario: Provincia, Día y Mes.

Código:
//Contenido
$provincia = htmlspecialchars($_GET['Provincia']);
$dia = htmlspecialchars($_GET['Dia']);
$mes = htmlspecialchars($_GET['Mes']);

//Sentencia Mysql
$BusqSql = $server_link->query("SELECT ByENombre, ByEDireccion, ByEProv, ByEFecha
                                FROM webs
								WHERE MATCH (ByENombre)
								AGAINST ('$provincia')
								
								UNION
								
								SELECT ByENombre, ByEDireccion, ByEProv, ByEFecha
                                FROM webs
								WHERE MATCH (ByEProv)
								AGAINST ('$dia')
								
								UNION
								
								SELECT ByENombre, ByEDireccion, ByEProv, ByEFecha
                                FROM webs
								WHERE MATCH (ByEFecha)
								AGAINST ('$mes')");
El código actual, realmente no me está funcionando, no me entrega ningún resultado, cree la BD, con sus correspondientes campos y añadí unos 14 registros a modo de prueba.

Un saludo, espero que puedan ayudarme!
  #2 (permalink)  
Antiguo 04/05/2013, 19:51
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 13 años, 10 meses
Puntos: 46
Respuesta: ¿Cómo iniciar una busqueda mediante form con listas?

¿Los 3 campos que buscas están en la misma tabla? Si es así, y las variables que recibes son numéricas no tendrías que complicarte tanto (creo, que me corrija alguien si me equivoco):

Código SQL:
Ver original
  1. SELECT campo FROM tabla WHERE provincia = '$provincia' AND mes = $mes AND dia = $dia

En caso de ser alfanumérico el campo provincia deberías usar LIKE:

Código SQL:
Ver original
  1. SELECT campo FROM tabla WHERE provincia LIKE '$provincia' AND mes = $mes AND dia = $dia

http://dev.mysql.com/doc/refman/5.0/...functions.html

Salu2.
  #3 (permalink)  
Antiguo 05/05/2013, 09:46
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 12 años, 8 meses
Puntos: 29
Respuesta: ¿Cómo iniciar una busqueda mediante form con listas?

Hola, gracias por responder, probé así:

Código:
//Contenido
$provincia = htmlspecialchars($_GET['Provincia']);
$dia = htmlspecialchars($_GET['Dia']);
$mes = htmlspecialchars($_GET['Mes']);

//Busqueda
$BusqSql = $server_link->query("SELECT ByENombre, ByEDireccion, ByEProv, ByEFecha 
                                FROM bolichesyeventos 
								WHERE ByEProv 
								LIKE '$provincia' AND ByEFecha = $mes AND ByEFecha = $dia");
Pero sigue sin mostrarme resultados, te muestro un ejemplo del formulario:

Código HTML:
<select name="Provincia" id="Provincia">
    <option value="0">Provincia</option>
<option  value="Capital Federal">Capital Federal</option>
</select>
<select name="Dia" id="Dia">
    <option value="0">Día</option>
<option  value="1">1</option>
</select>
<select name="Mes" id="Mes">
      <option value="0">Mes</option>
<option  value="Enero">Enero</option>
</select> 
Saludos
  #4 (permalink)  
Antiguo 05/05/2013, 18:41
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 13 años, 10 meses
Puntos: 46
Respuesta: ¿Cómo iniciar una busqueda mediante form con listas?

A simple vista no veo nada raro, lanza la consulta en phpMyAdmin sustituyendo las variables de php por valores existentes. Si te da un error ya tienes por donde empezar a trabajar. Si no te lo da sabemos que el problema está en el código php o el formulario.

Salu2.
  #5 (permalink)  
Antiguo 06/05/2013, 14:34
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 12 años, 8 meses
Puntos: 29
Respuesta: ¿Cómo iniciar una busqueda mediante form con listas?

Hola, cuando hago o no una consulta se activa esto:

Cita:
if($totalRows == 0){
echo stripslashes("No se encontraron resultados para la fecha indicada");
}
En vez de mostrar los resultados me aparece el texto que se indica ahí
  #6 (permalink)  
Antiguo 06/05/2013, 15:01
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 13 años, 10 meses
Puntos: 46
Respuesta: ¿Cómo iniciar una busqueda mediante form con listas?

La variable $mes también recibe una cadena de texto, ponlo con LIKE también. Si te muestra ese mensaje es que no hay registros coincidentes, pero claro puede que sea por la consulta, por eso te decía que probases con los mismos datos en phpMyAdmin.

Salu2.

Etiquetas: busqueda, form, formulario, html, mediante, mysql, registro, select, sql
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:18.