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

Búsqueda de criterio en distintos campos. Cómo lo hago?

Estas en el tema de Búsqueda de criterio en distintos campos. Cómo lo hago? en el foro de Bases de Datos General en Foros del Web. Hola amigos! Tengo la siguiente estructura en un tabla MySQL: Id_prod TINYINT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT producto VARCHAR( 80 ) NOT NULL descripcion ...
  #1 (permalink)  
Antiguo 04/08/2004, 12:53
 
Fecha de Ingreso: abril-2002
Ubicación: Argentina
Mensajes: 96
Antigüedad: 22 años, 7 meses
Puntos: 0
Pregunta Búsqueda de criterio en distintos campos. Cómo lo hago?

Hola amigos!
Tengo la siguiente estructura en un tabla MySQL:

Id_prod TINYINT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT
producto VARCHAR( 80 ) NOT NULL
descripcion TEXT
base VARCHAR (255)
relleno1 VARCHAR (255)
relleno2 VARCHAR (255)
relleno3 VARCHAR (255)
cobertura VARCHAR (255)
decoracion VARCHAR (255)
forma VARCHAR (80)
medida VARCHAR (20)
peso FLOAT (8,2)
porciones TINYINT( 3 ) UNSIGNED
pesop FLOAT (8,2)
precio FLOAT (8,2)

Lo que quiero hacer es un buscador que si por ejemplo pongo en el formulario: chocolate o chocolate frutilla, me busque en los campos: descripcion, base, relleno1, relleno2, relleno3, cobertura y decoracion... pero ni idea de como hacerlo...
Alguien puede orientarme? Gracias
El server tiene PHP 4.2.2 y MySQL 3.23.56
Saludos
__________________
Sergio
  #2 (permalink)  
Antiguo 04/08/2004, 13:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Lo primero es dar con la sentencia SQL correcta (la cual puedes probar con algún GUI para Mysql como phpMyadmin o el administrador de Mysql que uses).

Cuando esa parte la tengas clara y los resultados que obtengas son los esperados .. ahí si quieres seguimos con la parte "PHP" que depende directamente de que tu sentencia SQL sea correcta.

Muevo tu mensaje al foro de Base de datos para que te orienten.

Un saludo,
  #3 (permalink)  
Antiguo 04/08/2004, 13:53
 
Fecha de Ingreso: abril-2002
Ubicación: Argentina
Mensajes: 96
Antigüedad: 22 años, 7 meses
Puntos: 0
Gracias por tu respuesta Cluster, pero si perdonas mi ignorancia, no entiendo lo que me dices....
Saludos
__________________
Sergio
  #4 (permalink)  
Antiguo 04/08/2004, 13:57
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Mira Yiyo, para evitar que te confundas más, creo conveniente escribas el nivel de conocimiento que tenes en BD y cual estas usando, lenguaje de programació y cual estas utilizando, ¿qué usas para administrar tu BD?

Lo que te esta diciendo Cluster es algo básico por lo que si necesitas te aclaren eso, es mejor empezar desde donde no tenes conocimiento, ¿no crees?
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 04/08/2004, 14:13
 
Fecha de Ingreso: abril-2002
Ubicación: Argentina
Mensajes: 96
Antigüedad: 22 años, 7 meses
Puntos: 0
BrujoNic, mis conocimientos son bastante básicos aprendo mucho de Uds. preguntando por estos lados... Suelo trabajar con PHP y el server tiene phpmyadmin para administrar la base de datos.
Gracias
Saludos
__________________
Sergio
  #6 (permalink)  
Antiguo 04/08/2004, 15:12
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
ok, un GUI es una Interfáz Gráfica de Usuario (Graphical User Interface), ejemplo es el phpMyAdmin o cualquier otra herramienta gráfica para administrar tu BD. En este caso MySQL.

Ahora, si queres aprender más sobre MySQL, te recomiendo bajar la documentación de MySQL Documentation. Ahi lo podes bajar en pdf y html.

Otro consejo es meterse a aprender un poco de inglés pero técnico para que comprendas y si ya lo sabes, te va a resultar fácil. También podes buscar información en español pero es muy poca y básica.

Ahora, sabiendo tus conocimientos básicos y leyendo tu pregunta, es más que todo de programación. Te dejo este filtro que usé en Google Programación en PHP donde vas a encontrar muchos ejemplos.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #7 (permalink)  
Antiguo 04/08/2004, 16:59
 
Fecha de Ingreso: abril-2002
Ubicación: Argentina
Mensajes: 96
Antigüedad: 22 años, 7 meses
Puntos: 0
Gracias por los consejos BerujoNic, el tema es que hacer una búsqueda de un criterio en un solo campo, si se hacerlo, lo que no se hacer es un solo criterio que me lo busque en los campos especificados, es decir que aparezcan tanto en uno como en otro, estuve viendo de utilizar indices full text, pero creo que la version de mysql que tengo en el server no me lo permite, por eso es que hice la consulta.
Gracias de todos modos.
Saludos
__________________
Sergio
  #8 (permalink)  
Antiguo 05/08/2004, 07:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Otros tutoriales sobre Mysql (su SQL y algo de conceptos como "normalización" .. "diseño de BD" . .etc) los puedes ver en:

www.mysql-hispano.com

Si te fijas en la sintax de uso de SELECT .. veras que tienes ahí explicado que puedes usar "condicionales" tipo OR u AND para componer tus condiciones de que "busque" .. mejor dicho que "vas a realizar una consulta SQL a tu BD por esos critérios: que campo tal sea = a tal cosa .. o "contenga" tal cosa .. y bla.

Un saludo,
  #9 (permalink)  
Antiguo 05/08/2004, 08:43
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Yiyo, sigo sin comprender... ¿Podrías poner parte de tu código o mostrarlo con un ejemplo un poco más completo? o sea, paso a paso
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #10 (permalink)  
Antiguo 05/08/2004, 09:38
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 9 meses
Puntos: 45
Hola Yiyo

Por lo que entiendo quieres hacer una consulta en diferentes campos de una misma tabla (no se como se llama tu tabla, por que ahi no lo veo)
si es asi,tu consulta seria de esta manera usando php:
Código PHP:
$patron="cadena a buscar";
$sql="SELECT * FROM `nombre_tu_tabla` WHERE `descripcion` LIKE '%$patron%' AND `base` LIKE '%$patron%' AND `relleno1` LIKE '%$patron%' AND `relleno2` LIKE '%$patron%' AND `relleno3` LIKE '%$patron%'  AND `cobertura` LIKE '%$patron%'  AND `decoracion` LIKE '%$patron%' "
mysql_query($sql); 
espero que te sirva
Saludos
  #11 (permalink)  
Antiguo 05/08/2004, 09:44
 
Fecha de Ingreso: abril-2002
Ubicación: Argentina
Mensajes: 96
Antigüedad: 22 años, 7 meses
Puntos: 0
Cluster: Gracias por la recomendación del sitio
BrujoNic: en cuanto tenga algo más armado lo envío
Genetix: esa es la idea y eso lo se hacer, lo que quería saber es si existe una manera más directa, aparte, si lo que deseo es que me encuentre el $patron se encuentre indistintamente en un campo u otro, tengo que usar OR en lugar de AND no?
Gracias
Saludos
__________________
Sergio
  #12 (permalink)  
Antiguo 05/08/2004, 09:57
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 9 meses
Puntos: 45
Asi es, puedes usar OR, y si deseas mas presicion en las busquedas puedes usar REGEXP, esta funcion es mucho mas potente que LIKE

saludos
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 14:21.