Foros del Web » Programando para Internet » PHP »

Busqueda en mysql con acentos &acute

Estas en el tema de Busqueda en mysql con acentos &acute en el foro de PHP en Foros del Web. Hola que tal una duda amigos! Como puedo realizar una busqueda en mysql si los caracteres por ejemplo: Pol&icutetica (Polìtica) ... y al realizar la ...
  #1 (permalink)  
Antiguo 19/08/2011, 19:44
 
Fecha de Ingreso: octubre-2010
Mensajes: 350
Antigüedad: 9 años, 3 meses
Puntos: 9
Exclamación Busqueda en mysql con acentos &acute

Hola que tal una duda amigos!

Como puedo realizar una busqueda en mysql si los caracteres por ejemplo: Pol&icutetica (Polìtica) ... y al realizar la bùsqueda yo pongo .... LIKE '%Politica%' ,
Entonces no me lo va a encontrar... como puedo hacer para convertir ese &icute a ì durante la bùsqueda.

Gracias!
  #2 (permalink)  
Antiguo 19/08/2011, 19:51
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 10 años, 8 meses
Puntos: 322
Respuesta: Busqueda en mysql con acentos &acute

Las búsquedas en el manual oficial ayudan mucho
html_entity_decode
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 19/08/2011, 19:52
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 8 años, 6 meses
Puntos: 793
Respuesta: Busqueda en mysql con acentos &acute

edit: Ya me ganaron sorry

aunque si te sirve esto para buscar úsalo

Código PHP:
Ver original
  1. $str = 'Andrés';
  2. $a = array('á','é','í','ó','ú','Á','É','Í','Ó','Ú');
  3. $r = array('a','e','i','o','u','A','E','I','O','U');
  4. echo str_replace($a, $r, $str);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 19/08/2011, 21:15
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 10 años, 8 meses
Puntos: 27
Respuesta: Busqueda en mysql con acentos &acute

Ya que veo este tema, mre gustaria pregutnar algo:

Un insert normal lo hago asi:

Código PHP:
Ver original
  1. $sql="INSERT INTO TABAL VALUES('".$valor1."', '".$valor2."')";

Si por ejemplo, lo que trae la variable $valor 1: es abc'd'e'f, eso me generaria un error ya que habria otras comillas...para ese caso:

Utilizaria htmlspecialchars (A LA HORA DE GUARDAS)???

Y a la hora de mostrar: html_entity_decode ??


Agradezco y aprovecho el tema para preguntar.....gracias
  #5 (permalink)  
Antiguo 19/08/2011, 21:20
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 8 años, 6 meses
Puntos: 793
Respuesta: Busqueda en mysql con acentos &acute

Bueno en tu caso yo usaría la función addslashes o mysql_real_scape_string y a la hora de mostrar stripslashes
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 20/08/2011, 09:06
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 10 años, 8 meses
Puntos: 27
Respuesta: Busqueda en mysql con acentos &acute

Muchas gracias andreszphp......
  #7 (permalink)  
Antiguo 20/08/2011, 09:13
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 10 años, 8 meses
Puntos: 27
Respuesta: Busqueda en mysql con acentos &acute

Bueno antes de salirme del tema tengo una ultima pregunta, aparte de por ejemplo una comilla, que otro caracter, puede afectar que se ejecute un INSERT o cualquier accion SQL.....

Que pena la molestia.....
  #8 (permalink)  
Antiguo 20/08/2011, 09:20
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 6 meses
Puntos: 416
Respuesta: Busqueda en mysql con acentos &acute

Yo te recomendaria usar un charset como UTF8 en tu base de datos y en tus paginas para que puedas insertar las palabras con acentos sin problemas.
El inconveniente de hacer eso que deseas, es que usualmente los usuarios no ponen los acentos (casi nunca realmente).
Entonces si tienes política en tu BD, se inserta política, pero si el usuario solo busca "politica" (sin acento), la busqueda no devolvera ningun resultado.

El collation utf8_general_ci de MySQL compara á = a, que es lo idoneo

Cita:
Bueno antes de salirme del tema tengo una ultima pregunta, aparte de por ejemplo una comilla, que otro caracter, puede afectar que se ejecute un INSERT o cualquier accion SQL.....

Que pena la molestia.....
Usa la funcion mysql_real_escape_string que trata los caracteres que pueden afectar la consulta SQL.
  #9 (permalink)  
Antiguo 20/08/2011, 10:40
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 10 años, 8 meses
Puntos: 27
Respuesta: Busqueda en mysql con acentos &acute

Ok gracias por la explicacion.....pero si no uso mysql, cual me serviria, estoy usando SQL Server,
que función haria lo mismo que mysql_real_escape_string pero para SQL Server?
y si es Mysql y uso mysql_real_escape_string, a la hora de mostrar podria utilizar utf8_encode?
  #10 (permalink)  
Antiguo 22/08/2011, 10:49
 
Fecha de Ingreso: octubre-2010
Mensajes: 350
Antigüedad: 9 años, 3 meses
Puntos: 9
Exclamación Respuesta: Busqueda en mysql con acentos &acute

Cita:
Iniciado por oscarbt Ver Mensaje
Ya que veo este tema, mre gustaria pregutnar algo:

Un insert normal lo hago asi:

Código PHP:
Ver original
  1. $sql="INSERT INTO TABAL VALUES('".$valor1."', '".$valor2."')";

Si por ejemplo, lo que trae la variable $valor 1: es abc'd'e'f, eso me generaria un error ya que habria otras comillas...para ese caso:

Utilizaria htmlspecialchars (A LA HORA DE GUARDAS)???

Y a la hora de mostrar: html_entity_decode ??


Agradezco y aprovecho el tema para preguntar.....gracias
Hola amigo!!

Excelente estrategia, pero si lo quiero hacer ya directamente sobre el codigo y no con php por ejemplo vi en mysql hay algo asi:

•REPLACE(str,from_str,to_str)
Retorna la cadena str con todas las ocurrencias de la cadena from_str reemplazadas con la cadena to_str.
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'

el problema es donde lo coloco en el query..
seria asi:

SELECT REPLACE(´día´,'í','í') FROM arboles WHERE tipo LIKE '%día%'
el problema es que me trae como resultado la pura palabra día y en una sola fila, pero como hago para que en select poner el * y me traiga tdas las filas pero que me filtre la fila donde existe la palabra día en la base de datos...

Mas bien me gustaría saber como se estrcutura correctamente el query con replace, porque esto evidentemente esta mal, jaja pero si me hace la conversion del &iacute

saludos


gracias, salduos!

Última edición por marco64yes; 22/08/2011 a las 10:55
  #11 (permalink)  
Antiguo 22/08/2011, 11:05
 
Fecha de Ingreso: octubre-2010
Mensajes: 350
Antigüedad: 9 años, 3 meses
Puntos: 9
Respuesta: Busqueda en mysql con acentos &acute

Jejeje bueno ya lo solucione seria asi:

SELECT*FROM campos WHERE REPLACE(MI_CELDA,'ó','ó') LIKE '%requisición%'

en mi base de datos cuento con requisición asi si el usuario telclea requisición obviamente no saldria nada, pues con esto se arregla ;) ...

jejeje saludos !

Etiquetas: acentos, mysql, busquedas
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:44.