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

Comparacion de cadenas en mysql y php

Estas en el tema de Comparacion de cadenas en mysql y php en el foro de Bases de Datos General en Foros del Web. Hola mas que nada es una ayudadita lo que pasa es que quiero en una pagina tener un campo de busqueda y mi consulta mysql ...
  #1 (permalink)  
Antiguo 25/02/2010, 11:33
 
Fecha de Ingreso: septiembre-2009
Mensajes: 130
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Comparacion de cadenas en mysql y php

Hola mas que nada es una ayudadita

lo que pasa es que quiero en una pagina tener un campo de busqueda
y mi consulta mysql es:

Código PHP:
$result=mysql_query("select * from obras, artistas where nombreobra LIKE %$buscar%  or nombreartista LIKE % $buscar % " ); 
se supone en la cadena la pongo en una variable y ejecuto esa consulta, en eso creo esto y bien,

pero lo que quiero es si el usuario pone una cadena de texto asi larga. pues quiero dividir la cadena en palabras y en la consulta buscar de cada palabra su pareccido. pero como puedo hacer eso en una solo consulta o que onda como?¿!
  #2 (permalink)  
Antiguo 28/02/2010, 09:35
Avatar de genuine_carlosV2  
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 16 años
Puntos: 6
Respuesta: Comparacion de cadenas en mysql y php

Buenas,

Usa explode. Esta función te generará un array con los datos. Recórrelo uno a uno con otra función como foreach y ves añadiendo después del 'WHERE', 'campo LIKE $valor AND'. Luego borra el AND con alguna función como substr y listo.

Saludos
__________________
Carlos

Recoger datos es solo el primer paso hacia la sabiduría. Pero compartir información es el primer paso hacia la comunidad. - IBM
  #3 (permalink)  
Antiguo 03/03/2010, 06:27
 
Fecha de Ingreso: enero-2010
Ubicación: Sevilla
Mensajes: 202
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Comparacion de cadenas en mysql y php

Una cuestión:
¿No tendrías que establecer una relación entre OBRAS y ARTISTAS?
Creo que sería mejor para hacer luego las búsquedas y sacar las obras de un determinado artista, porque así te hace un producto cartesiano que no sé si te vale.

Otra cosa:
A lo mejor te conviene separar por un lado las búsquedas de artistas y por otro las de obras, así das flexibilidad a los usuarios y te quitas problemas (supongo)
__________________
Mi blog de temas más o menos técnicos

Y aquí el Jamón jamon de Jabugo
  #4 (permalink)  
Antiguo 03/03/2010, 16:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Comparacion de cadenas en mysql y php

¿Qué entiendes por "de cada palabra su parecido"?
Si buscas las palabras y usas tablas MyIsam, yo te recomendaría un Index Full Text de ambos campos y una consulta sobre el mismo.
  #5 (permalink)  
Antiguo 03/03/2010, 17:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Comparacion de cadenas en mysql y php

Cita:
pero lo que quiero es si el usuario pone una cadena de texto asi larga. pues quiero dividir la cadena en palabras y en la consulta buscar de cada palabra su pareccido. pero como puedo hacer eso en una solo consulta o que onda como?¿!
Cada palabra independiente en una comparación implica un LIKE adicional:
Código MySQL:
Ver original
  1. FROM obras, artistas
  2. WHERE nombreobra
  3.     LIKE %$buscar1%  OR
  4.     LIKE %$buscar2%  OR
  5.     LIKE %$buscar3%  OR
  6.     LIKE %$buscar4% ...;
En esos niveles de complejidad ya no te conviene usar LIKE sino recurrir a funciones de búsqueda de texto completo (Full-Text).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 04/03/2010, 18:17
 
Fecha de Ingreso: septiembre-2009
Mensajes: 130
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Comparacion de cadenas en mysql y php

Gracias A todoS Le intentare con el full-text si no con la opcion de artistas y obras separados

Etiquetas: cadenas, comparacion, mysql, php
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 10:54.