Foros del Web » Programando para Internet » PHP »

Buscar con acento y sin acento php mysql

Estas en el tema de Buscar con acento y sin acento php mysql en el foro de PHP en Foros del Web. Hola saludos a todos de ante mano gracias por ayudarme tengo una duda yo quiero hacer un busqueda en mysql. Los datos los guardo de ...
  #1 (permalink)  
Antiguo 17/08/2016, 22:25
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Pregunta Buscar con acento y sin acento php mysql

Hola saludos a todos de ante mano gracias por ayudarme tengo una duda yo quiero hacer un busqueda en mysql. Los datos los guardo de este modo
$texto="José"
$texto= htmlentities ($_POST["texto"],ENT_QUOTES);

En base de datos se guarda asi José esto lo hago para cuando se muestre en navegador no de error de acentos.

A la hora de hacer un busqueda con '%like%' tengo que agregar el acento José
ya que me correcto pero mi idea es buscalo como jose Jose que no y si distinga acentos. Gracias.
  #2 (permalink)  
Antiguo 18/08/2016, 10:08
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: Buscar con acento y sin acento php mysql

No tienes que hacer ese tipo de cosas, tu problema es que no tienes nada configurado en utf8, mira mis respuestas en estos post:
http://www.forosdelweb.com/f18/elimi...s-php-1148007/


http://www.forosdelweb.com/f18/problema-adjuntar-archivos-con-php-1149010/


http://www.forosdelweb.com/f18/probl...ildes-1149957/
  #3 (permalink)  
Antiguo 18/08/2016, 10:29
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Buscar con acento y sin acento php mysql

Efectivamente, como te indica el compañero.

Si estas almacenando los caracteres extraños en la base de datos como entidades html, lo estas haciendo mal desde el principio.

Una solución o más bien un parche para tu caso podría ser que busques con y sin tilde, haciendo tu el reemplazo del carácter por su homólogo como la que expongo en el primer hilo que paso el conpañero.

Ejemplo:

Código PHP:
$texto="José"
$textohtmlentities ($_POST["texto"],ENT_QUOTES);
$texto2eliminar_simbolos($_POST["texto"]);

$sql="SELECT * FROM mi_tabla WHERE ( campo LIKE '%$texto%' ) OR ( campo LIKE '%$texto2%' ) "
__________________
Unset($vida['malRollo']);
  #4 (permalink)  
Antiguo 18/08/2016, 10:36
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: Buscar con acento y sin acento php mysql

En realidad, no necesitas hacer funciones, ni usar las de php, si tienes todo bien configurado en utf8, el único problema se te presentará al escribir y leer en disco en windows, como explico en el segundo hilo. Pero si el problema se te presenta en otros lados, es porque alguna configuración utf8 se te paso.
  #5 (permalink)  
Antiguo 18/08/2016, 19:16
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Buscar con acento y sin acento php mysql

Y si todo lo que tenga en la DB lo pasa a utf8 ?? asi lo que tenga metido ahi se vera bien.

hace unos dias me tope con algo similar y despues de dar vueltas, mejor todo lo que sacaba de la DB lo pase a utf8

Código PHP:
Ver original
  1. <?php
  2.     $mysqli = new mysqli("localhost","root","kath","tickets");
  3.     mysqli_set_charset( $mysqli, 'utf8');
  4. ?>
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #6 (permalink)  
Antiguo 19/08/2016, 04:33
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Buscar con acento y sin acento php mysql

Cita:
Iniciado por KATHYU Ver Mensaje
Y si todo lo que tenga en la DB lo pasa a utf8 ?? asi lo que tenga metido ahi se vera bien.
Lo ideal más que pasarlo a UTF8, seria normalizar los datos, pues por más que cambie la codificación los caracteres extraños van a seguir almacenados como entidades html.

Cita:
En realidad, no necesitas hacer funciones, ni usar las de php, si tienes todo bien configurado en utf8, el único problema se te presentará al escribir y leer en disco en windows, como explico en el segundo hilo. Pero si el problema se te presenta en otros lados, es porque alguna configuración utf8 se te paso.
Totalmente de acuerdo y Obviamente si esta todo en armonía en cuanto a codificaciones, independientemente del estándar elegido, no va a necesitar hacer un parche.

Para mi en estos casos se abren 2 caminos:

- Comenzar a hacer las cosas bien, estableciendo la codificación elegida en todas las partes implicadas, normalizar los datos de la bd reemplazando las entidades html por su carácter correspondiente, revisar el código para eliminar las funciones ya innecesarias tales como htmlentities, utf8_encode o utf8_decode.

- Seguir como hasta ahora y poner un parche cada vez que se presente un problema derivado de no hacerlo bien.
__________________
Unset($vida['malRollo']);

Etiquetas: acentos, igual, mysql
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 18:57.