Foros del Web » Programando para Internet » PHP »

Buscar en una query

Estas en el tema de Buscar en una query en el foro de PHP en Foros del Web. HOla amigos, Hago una consulta en una tabla ej: $resultados = mysql_query("SELECT * FROM tabla WHERE nombres='juan'"); de ahi me da muchos resultados como por ...
  #1 (permalink)  
Antiguo 23/09/2010, 08:29
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 13 años, 10 meses
Puntos: 0
Buscar en una query

HOla amigos,
Hago una consulta en una tabla ej:

$resultados = mysql_query("SELECT * FROM tabla WHERE nombres='juan'");

de ahi me da muchos resultados como por ej:

Juan Manuel
Juan Andres .... etc.


lo que quiero yo es sobre esa busqueda seguir filtrando ejemplo todos los que sean tambien de nombre manuel.

me entiendo?
o sea realizar una busqueda sobre otra busqueda.

Gracias.
  #2 (permalink)  
Antiguo 23/09/2010, 08:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Buscar en una query

solo debes agregar las comparaciones que necesites...
Cita:
WHERE nombre='alvaro' OR apellido='cabrera' ...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/09/2010, 08:41
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Buscar en una query

No se entiende muy bien lo de "realizar una busqueda sobre otra busqueda" pero puedes añadir criterios a la select:

//todos los que se llaman juan
$resultados = mysql_query("SELECT * FROM tabla WHERE nombres like '%juan%'");

//todos los juan y manuel
$resultados = mysql_query("SELECT * FROM tabla WHERE nombres like '%juan%'
or nombres like '%manuel%'
");

//todos los juan pero no manuel
$resultados = mysql_query("SELECT * FROM tabla WHERE nombres like '%juan%'
and nombres not like '%manuel%'
");

etc... Deberías poner la tabla para que te demos un par de ejemplos, saludos
  #4 (permalink)  
Antiguo 23/09/2010, 11:39
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Buscar en una query

Cita:
Iniciado por pateketrueke Ver Mensaje
solo debes agregar las comparaciones que necesites...
No, en realidad yo hago la consulta. Como no estoy conforme con lo que busque entonces hago otra consulta sobre la consulta que ya hice.

se entiende?
  #5 (permalink)  
Antiguo 23/09/2010, 11:41
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Buscar en una query

Cita:
Iniciado por repara2 Ver Mensaje
No se entiende muy bien lo de "realizar una busqueda sobre otra busqueda" pero puedes añadir criterios a la select:

//todos los que se llaman juan
$resultados = mysql_query("SELECT * FROM tabla WHERE nombres like '%juan%'");

//todos los juan y manuel
$resultados = mysql_query("SELECT * FROM tabla WHERE nombres like '%juan%'
or nombres like '%manuel%'
");

//todos los juan pero no manuel
$resultados = mysql_query("SELECT * FROM tabla WHERE nombres like '%juan%'
and nombres not like '%manuel%'
");

etc... Deberías poner la tabla para que te demos un par de ejemplos, saludos
No, en realidad yo hago la consulta. Como no estoy conforme con lo que busque entonces hago otra consulta sobre la consulta que ya hice.

sobre una misma consulta ir refinandola.

se entiende?
  #6 (permalink)  
Antiguo 24/09/2010, 01:14
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Buscar en una query

Si sólo quieres hacer UNA consulta, entonces has de hacer la consulta y guardarla en un array a través de mysql_fetch_assoc().
Con los datos guardados en un array, entonces sí podrías refinar la búsqueda dentro de ese array e ir eliminando los elementos que no te interesan. Tienes que mirar la doc sobre funciones de arrays aunque creo que será mejor que cojas alguna classe que tenga esta funcionalidad. Me parece que la búsqueda en arrays se te va a hacer un poco engorrosa.
Sigo pensando que lo mejor es que ya hagas la query con los filtros adecuados.
De todas maneras creo que no he pillado bien lo que estás planteando, pon un poco de código si lo tienes o explica dónde vas a usar este programa, un saludo.
  #7 (permalink)  
Antiguo 24/09/2010, 07:59
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Buscar en una query

Cita:
Iniciado por repara2 Ver Mensaje
Si sólo quieres hacer UNA consulta, entonces has de hacer la consulta y guardarla en un array a través de mysql_fetch_assoc().
Con los datos guardados en un array, entonces sí podrías refinar la búsqueda dentro de ese array e ir eliminando los elementos que no te interesan. Tienes que mirar la doc sobre funciones de arrays aunque creo que será mejor que cojas alguna classe que tenga esta funcionalidad. Me parece que la búsqueda en arrays se te va a hacer un poco engorrosa.
Sigo pensando que lo mejor es que ya hagas la query con los filtros adecuados.
De todas maneras creo que no he pillado bien lo que estás planteando, pon un poco de código si lo tienes o explica dónde vas a usar este programa, un saludo.
Es que tengo los filtros adecuados pero buscar en una descripcion de un documento es buenos siempre ir desojando cada cosa q queremos buscar:

ej:
Hojas verdes
Hojas verdes de tallo
Hojas verdes de tallo grueso
Hojas verdes de tallo grueso en maceta

busco Hoja, despues verdes, dsp grueso y asi doy con la opcion que buscaba: Hojas verdes de tallo grueso

como hago esto !!!!!jjajaa desesperadooo
  #8 (permalink)  
Antiguo 24/09/2010, 08:18
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Buscar en una query

Antes de continuar te cuento habría que ver tu programa, pero lo ideal es hacer una interface para ir aplicando esos filtros pero siempre a una select.
Desde el punto de vista de programación sólo tiene sentido afinar la búsqueda si inicialmente no tienes los criterios.
Supongamos que los criterios los define el usuario.
1. El usuario dice "Hojas", buscas y listas.
2. El usuario dice "verdes" buscas y listas sobre la consulta anterior.
n... idem anterior hasta encontrar lo que buscas.

Desde el punto de vista del usuario, verá primero 100 resultados, después 25, después 3 y después 1. Pero esto es de cara al usuario, no tiene sentido desde el punto de vista de programación.

Si el usuario busca digamos, por un formulario, primero pone "HOJAS", entonces tú lanzas una query con ese filtro.

Si quiere buscar "hojas verdes", entonces lanzas LA MISMA query pero con dos sentencias LIKE de manera que busque artículos que contengan HOJAS y VERDES.


Tal y como tú lo planteas parece que los criterios fueran surgiendo de la nada sin motivo. Con esto quiero decir que siempre existirá un punto de entrada para los criterios de búsqueda: un campo de texto, o una lista de selección, o las dos cosas. A partir de esa entrada buscamos en la DB.

Si lo que te gustaría es que pongan "HOJAS", te salen 50 resultados; después ponen "VERDES" salen 25 resultados, etc... entonces has de guardar estos criterios en una variable de $_SESSION y cada vez que el usuario escribe filtros, tú los agregas a la select. De esta manera pueden ir filtrando palabra por palabra.
En cualquier caso la select siempre buscará en toda la tabla NO SOLO en los resultados de la consulta anterior.
La idea es bastante interesante pero tienes que pensarte un poco cómo implementarla. Si pones más código será más fácil ayudarte.

No sé si te he ayudado o complicado la vida, espero comentarios. Salu2
  #9 (permalink)  
Antiguo 24/09/2010, 12:50
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Buscar en una query

Cita:
Iniciado por repara2 Ver Mensaje
Antes de continuar te cuento habría que ver tu programa, pero lo ideal es hacer una interface para ir aplicando esos filtros pero siempre a una select.
Desde el punto de vista de programación sólo tiene sentido afinar la búsqueda si inicialmente no tienes los criterios.
Supongamos que los criterios los define el usuario.
1. El usuario dice "Hojas", buscas y listas.
2. El usuario dice "verdes" buscas y listas sobre la consulta anterior.
n... idem anterior hasta encontrar lo que buscas.

Desde el punto de vista del usuario, verá primero 100 resultados, después 25, después 3 y después 1. Pero esto es de cara al usuario, no tiene sentido desde el punto de vista de programación.

Si el usuario busca digamos, por un formulario, primero pone "HOJAS", entonces tú lanzas una query con ese filtro.

Si quiere buscar "hojas verdes", entonces lanzas LA MISMA query pero con dos sentencias LIKE de manera que busque artículos que contengan HOJAS y VERDES.


Tal y como tú lo planteas parece que los criterios fueran surgiendo de la nada sin motivo. Con esto quiero decir que siempre existirá un punto de entrada para los criterios de búsqueda: un campo de texto, o una lista de selección, o las dos cosas. A partir de esa entrada buscamos en la DB.

Si lo que te gustaría es que pongan "HOJAS", te salen 50 resultados; después ponen "VERDES" salen 25 resultados, etc... entonces has de guardar estos criterios en una variable de $_SESSION y cada vez que el usuario escribe filtros, tú los agregas a la select. De esta manera pueden ir filtrando palabra por palabra.
En cualquier caso la select siempre buscará en toda la tabla NO SOLO en los resultados de la consulta anterior.
La idea es bastante interesante pero tienes que pensarte un poco cómo implementarla. Si pones más código será más fácil ayudarte.

No sé si te he ayudado o complicado la vida, espero comentarios. Salu2
Buenisimo me diste un par de ideas interesantes te contare como resultan.
me gusto lo de la variable Session.

Gracias.

Etiquetas: query
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 21:17.