Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Busqueda avanzada

Estas en el tema de Busqueda avanzada en el foro de Bases de Datos General en Foros del Web. Tengo unas dudas sobre una busqueda avanzada en mysql. La "busqueda simple" la tengo clara, sin embargo cuando en un formulario hay varios campos para ...
  #1 (permalink)  
Antiguo 05/01/2009, 08:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 73
Antigüedad: 16 años, 5 meses
Puntos: 2
Busqueda avanzada

Tengo unas dudas sobre una busqueda avanzada en mysql.

La "busqueda simple" la tengo clara, sin embargo cuando en un formulario hay varios campos para rellenar y SE PUEDEN rellenar o no me plantea mis dudas al hora de seleccionar los datos de la bd.

Supongamos que que tengo:
Código:
SELECT  * FROM mitabla WHERE ________
Si en el formulario está hay 2 campos (nombre y edad) Y LOS DOS se han rellenado obviamente la consulta es:
Código:
SELECT * FROM mitabla WHERE nombre='$nombre' and edad='$edad'

Sin embargo cuando HAN RELLANDO LOS USUARIOS SOLO UN CAMPO debe quedar:
Código:
SELECT * FROM mitabla WHERE nombre='$nombre'
No se si me habrán entendido, en definitva seguramente lo que haya que hacer es meter esos datos en una variable y que quede:
Código:
SELECT * FROM mitabla WHERE $datos
Siendo $datos según lo escrito en el formulario o una o la otra forma.
Mi duda, tal vez más que en el foro de base de datos debe ser en PHP. Como realizar alguna función para que $datos genere:

Código PHP:
$datos "nombre = '$nombre'";
$datos "nombre = '$nombre' and edad = '$edad'";
$datos "edad = '$edad'"
Aquí he simplificado el caso, pero imaginemos que en el formulario hay 20 campos. A partir de la respuesta ya lo desarrollaré.

Espero una respuesta,
Gracias

Última edición por v3sTi4; 05/01/2009 a las 08:53
  #2 (permalink)  
Antiguo 05/01/2009, 10:00
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Busqueda avanzada

Si estas trabajando con tablas de tipo MyIsam puedes realiza busquedas de texto completo (FULL TEXT), mas info aqui http://dev.mysql.com/doc/refman/5.0/...xt-search.html
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com

Última edición por Genetix; 05/01/2009 a las 15:39
  #3 (permalink)  
Antiguo 05/01/2009, 12:33
 
Fecha de Ingreso: noviembre-2007
Mensajes: 73
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Busqueda avanzada

Gracias por la respuesta, pero no es lo que estaba buscando

La cosa se complica cuando la busqueda es con el operador "and" o "or"


Código:
SELECT * FROM mitable WHERE nombre='$nombre' or edad='$edad'
A veces será and otras veces or.
  #4 (permalink)  
Antiguo 05/01/2009, 14:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Busqueda avanzada

pide ayuda en programación. En realidad tú puedes condicionar la cadena de consulta a la selección en el formulario, pero eso ya no es cosa de base de datos. Piensa que con programación puedes ir añadiendo partes a esa cadena de consulta según se vayan cumpliendo condiciones. Este es un tema recurrente y seguro que te ayudarán en el foro de programación de tu programa.
  #5 (permalink)  
Antiguo 05/01/2009, 14:37
 
Fecha de Ingreso: noviembre-2007
Mensajes: 73
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Busqueda avanzada

Sí así es.
He programado en php una solución al problema, como bien dices he codicionado una variable al resultado de la selección del formulario.

Thanks a todos.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:01.