Foros del Web » Programando para Internet » PHP »

Ayuda con consulta

Estas en el tema de Ayuda con consulta en el foro de PHP en Foros del Web. Hola me han enviado del foro Mysql aquí: Tengo una bd con los siguientes campos que me gustaría incluir en una única búsqueda en un ...
  #1 (permalink)  
Antiguo 10/08/2009, 09:39
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 5 meses
Puntos: 0
Ayuda con consulta

Hola me han enviado del foro Mysql aquí:

Tengo una bd con los siguientes campos que me gustaría incluir en una única búsqueda en un formulario PHP:

PROVINCIA, POBLACION, DIRECCION, DIA,

Los registros están indexados en el campo id (Clave primaria)

Podrían quedar inputs en blanco en el formulario.

Las búsquedas devolvería los registros que coincidiesen con los inputs de la búsqueda:

1) Población: Madrid hora: 20:00
2) Provincia: Barcelona Día: Viernes Hora: 19:30
ects.

¿Me pueden ayudar?

Gracias.
  #2 (permalink)  
Antiguo 10/08/2009, 09:54
 
Fecha de Ingreso: octubre-2008
Mensajes: 42
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda con consulta

hola, podrías dar más detalles, como por ejemplo: que ingreso para buscar, o es elegir de una lista o puede buscar por dirección.
Saludos
  #3 (permalink)  
Antiguo 10/08/2009, 09:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Ayuda con consulta

Verifica si este tutorial te puede ayudar.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 10/08/2009, 10:01
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Ayuda con consulta

primero que todo cuáles son los inputs de la búsqueda?

la consulta seria algo asi:

Código PHP:
select from tutabla where poblacion='$pobla' AND asdf=asdf 
donde:
- '$pobla' es un elemento que rescatas de los inputs (textarea o comboBox)
- asdf es todos los demás elementos que tengas para hacer la búsqueda!
  #5 (permalink)  
Antiguo 10/08/2009, 14:54
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda con consulta

Los inputs de búsqueda (una sola búsqueda en varios campos de texto) son:

PROVINCIA
POBLACION
DIRECCION
DIA

en una sola búsqueda y no es cuadro de lista, es texto libre.

Se pueden introducir inputs vacios.

Gracias

Última edición por jozelui; 10/08/2009 a las 15:01
  #6 (permalink)  
Antiguo 10/08/2009, 17:19
 
Fecha de Ingreso: julio-2009
Ubicación: En mi casa
Mensajes: 48
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Ayuda con consulta

osea, lo que quieres es en un solo campo de texto...apretar un boton y que te busque coincidencias en los campos:
PROVINCIA
POBLACION
DIRECCION
DIA
asi es no?
  #7 (permalink)  
Antiguo 10/08/2009, 17:40
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Ayuda con consulta

Que tal jozelui

Se me ocurre que hagas un "Filtro" dependiendo que inputs llevan valor y cuales no asi haces el where de tu consulta, es algo tedioso pero funciona.

Saludos
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #8 (permalink)  
Antiguo 10/08/2009, 21:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda con consulta

g3rzon, no un solo campo de texto, un campo de texto por PROVINCIA, otro por POBLACION, otro por DIRECCION, otro por DIA, con un sólo botón para todos para hacer la búsqueda.

ing_FOFO, los filtros ¿cómo se hacen?

Saludos.
  #9 (permalink)  
Antiguo 11/08/2009, 09:09
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Ayuda con consulta

en ese caso estarias haciendo la consulta de forma erronea
creo que eso deberia ser por combobox para que filtres la información

recuerda que mendoza no es lo mismo que Mendoza ni MENDOZA

asi se te haria mucho más fácil la busqueda!
es mi humilde opinión!
  #10 (permalink)  
Antiguo 11/08/2009, 09:57
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Ayuda con consulta

Bueno Jozelui te explico:

Supongamos que tenes el siguiente form:

Código PHP:
<html>
<
head>
<
title>Llena datos</title>
</
head>
<
body>
<
form method="post" action="reporte.php">
Provincia:<input type="text" size="12" maxlength="12" name="Provincia_txt">:<br />
Poblacion:<input type="text" size="12" maxlength="36" name="Poblacion_txt">:<br />
Direccion:<input type="text" size="12" maxlength="36" name="Direccion_txt">:<br />
Hora:<input type="text" size="12" maxlength="36" name="Hora_txt">:<br /> 
Despues en tu reporte.php harias el siguiente codigo:

Código PHP:
$provincia=$_POST['Provincia_txt'];
$poblacion=$_POST['Poblacion_txt'];
$direccion=$_POST['Direccion_txt'];
$hora=$_POST['Hora_txt'];

// Ahora validas cuales vienen llenos y cuales traen valor

if ($provincia!='' && $poblacion!='' && $direccion!='' && $hora!='')
{
$Consulta "Select * from tabla where provincia like '%".$provincia."%' and poblacion like '%".$poblacion."%' and direccion like '%".$direccion."%' and hora like '%".$hora."%'";
}

// y asi haces con todas las posibles combinaciones 
Como te dije en mi post anterior es algo tedioso pero 100% funcional.


La observacion de Twonex es válida y es por ello que hicimos uso del like, o bien pudes colocar = en el where y en la configuracion de tu base de datos le colocas que no sea case sensivity.

Espero te sirva la info.

Saludos
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #11 (permalink)  
Antiguo 11/08/2009, 11:15
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda con consulta

Si, creo que me estais ayudando mucho. ¿Tendría que seguir haciendo if´s por cada combinación posible de campos? voy a hacer un ejemplo haber si lo hago bien. Supongamos que el usuario sólo introduce dos campos en la búsqueda Provincia y Hora entonces el código sería ¿esto?

Cita:
if ($provincia!='' '' && $hora!='')
{
$Consulta = "Select * from tabla where provincia like '%".$provincia." and hora like '%".$hora."%'";
}
y así sucesivamente ¿no?. La consulta ingresada por Ing-FOFO es en el caso de que todos los campos sean imputados ¿no? habría que hacer una para cada campo en solitario y luego empezar a combinar cada campo con el resto primero con dos campos, luego con tres.

Muchas Gracias.

Última edición por jozelui; 11/08/2009 a las 11:36
  #12 (permalink)  
Antiguo 11/08/2009, 21:53
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Ayuda con consulta

Correcto jozelui
Creo que ya tienes la idea

Solo que debes de tomar en cuenta siempre las cuatro variables no solo 1 ni 2 ni tres

Es decir en tu ejemplo tambien entraria al select si ninguna es vacia entonces para que entren en la condicion que quieres tienes que colocar siempre las 4 variables

Es decir en el caso de tu ejemplo:

Código PHP:
if ($provincia!='' && $poblacion!='' && $direccion=='' && $hora=='')
{
$Consulta "Select * from tabla where provincia like '%".$provincia."%' and poblacion like '%".$poblacion."%'";

// validas que las otras dos variables vengan vacias


Espero te haya servido



Saludos
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)

Última edición por Ing_FOFO; 12/08/2009 a las 09:37
  #13 (permalink)  
Antiguo 19/08/2009, 13:02
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda con consulta

Me pondré a ello pero tardaré tiempo en hacerlo, cuando lo acabe, si tengo problemas volveré a postear aquí.
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 12:16.