Foros del Web » Programando para Internet » PHP »

buscar acentos en mysql

Estas en el tema de buscar acentos en mysql en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente problema, en la base de datos mysql tengo un campo que es text, y tiene palabras como esta: PolÃ*tica. ...
  #1 (permalink)  
Antiguo 30/07/2008, 14:07
 
Fecha de Ingreso: julio-2002
Mensajes: 71
Antigüedad: 21 años, 9 meses
Puntos: 0
buscar acentos en mysql

Hola a todos, tengo el siguiente problema, en la base de datos mysql tengo un campo que es text, y tiene palabras como esta: PolÃ*tica. que seria Política pero cuando busco con sentencia like '%poli%' no encuentra esta cadena, como puedo hacer para que si la encuentre.

de antemano muchas gracias.
  #2 (permalink)  
Antiguo 30/07/2008, 14:09
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: buscar acentos en mysql

q inserta los datos d esa manera???... a mi opinion si usar otra codificacion q no sea UTF-8 como por ejemplo iso-8859-1
a mi me funciona asi... a veces es tedioso este problema
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #3 (permalink)  
Antiguo 30/07/2008, 14:32
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: buscar acentos en mysql

Estoy de acuerdo con T4ke0veR.

Primero tienes que hacer que los datos se guarden en formato UTF-8, osea que la palabra: PolÃ*tica se guarde como Política.

Pero eso no deberia pasarte si guardas los datos directamente recuperados del formulario de envio.

De todas maneras te dejo la consulta para encontrar las palabras con acentos aunque la busqueda sea sin ellos, te quedaria de la siguiente forma:

Código:
SELECT *  FROM mitabla
WHERE
    REPLACE(
        REPLACE(
            REPLACE(
                REPLACE(
                    REPLACE(
                        REPLACE (
                            LOWER(txt_men_name),
                        'á', 'a'),
                    'é', 'e'),
                'í', 'i'),
            'ó', 'o'),
        'ú', 'u'),
    'ñ', 'n') LIKE '%politica%';
  #4 (permalink)  
Antiguo 30/07/2008, 14:40
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: buscar acentos en mysql

Primero tienes que hacer que los datos se guarden en formato UTF-8, osea que la palabra: PolÃ*tica se guarde como Política.

Pero eso no deberia pasarte si guardas los datos directamente recuperados del formulario de envio. (a mi me paso solo cuando recuperaba los datos por medio de ajax).

De todas maneras te dejo unas funciones que te pueden servir para cambiar los datos recuperados al formato UTF-8 o ISO-8859-1:

Código PHP:
  function sql_htm($string)
    {
      
$xml_str mb_convert_encoding($string"UTF-8""ISO-8859-1");
      return 
$xml_str;
    }
  function 
htm_sql($string)
    {
      
$xml_str mb_convert_encoding($string"ISO-8859-1""UTF-8");
      return 
$xml_str;
    } 
Suerte...
  #5 (permalink)  
Antiguo 31/07/2008, 10:58
 
Fecha de Ingreso: julio-2002
Mensajes: 71
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: buscar acentos en mysql

gracias, efectivamente los datos son recuperados con ajax
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 15:55.