Foros del Web » Programando para Internet » PHP »

URL Amigables, Acentos y Bases de Datos

Estas en el tema de URL Amigables, Acentos y Bases de Datos en el foro de PHP en Foros del Web. Hola, tengo un problema. Esstoy manejando unas URL amigables que son del tipo : www.dominio.com/casa_de_bolsa ahi no hay problema....hago una consulta tipo "Select * FROM ...
  #1 (permalink)  
Antiguo 13/04/2006, 14:28
 
Fecha de Ingreso: septiembre-2002
Ubicación: Mexico
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 0
URL Amigables, Acentos y Bases de Datos

Hola, tengo un problema.

Esstoy manejando unas URL amigables que son del tipo :

www.dominio.com/casa_de_bolsa


ahi no hay problema....hago una consulta tipo

"Select * FROM empresas WHERE title LIKE '.$url.'";


El problema sucede que cuando hago un tipo :

www.dominio.com/jardineros_rocio

y en la base de datos tengo el registro title como "jardineros rocío"

"Select * FROM empresas WHERE title LIKE '.$url.'";


no me devuelve la consulta por el acento....

saben como se puede resolver esto?

saludos¡
__________________
www.subflash.com <-----visita
  #2 (permalink)  
Antiguo 13/04/2006, 17:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
pos se me ocurre que podrías duplicar el campo dejando en la copia las versiones sin acentos o eñes.
otra cosa que podés hacer es buscar en la cadena que recibís caracteres á, é, í, ó, ú y ñ, y convertirlos antes de buscar a a, e, i, o, u y n respectivamente.
(ereg_replace o un bucle recorriendo la cadena caracter por caracter)

formas automáticas creo que no hay.


Saludos.
  #3 (permalink)  
Antiguo 13/04/2006, 17:52
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 13 años, 10 meses
Puntos: 5
ereg_replace <-- Definitivamente la mejor opcion!

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #4 (permalink)  
Antiguo 15/04/2006, 06:27
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Mmmm...

Dos consejos:

a) Procura usar "-" en lugar de "_" en tus URL's para mayor compatibilidad con SearchEngines.

b) En lugar de buscar:

"Select * FROM empresas WHERE title LIKE '.$cadena.'";

Primero "limpia" tu cadena con algo como:

Código PHP:
//
$cadenalimpia strtolower(strtr($cadena"áéíóúñÁÉÍÓÚÑ ""aeiounaeioun-")); 
Nota que lo que hace es convertirte:

- Caracteres acentuados por no acentuados.
- Espacios por guiones.
- Letras Ñ ó ñ por la letra n.
- Y en general, letras mayúsculas por minúsculas.

Ahora sí, usa sin problemas:

"Select * FROM empresas WHERE title LIKE '.$cadenalimpia.'";
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #5 (permalink)  
Antiguo 17/04/2006, 12:11
 
Fecha de Ingreso: septiembre-2002
Ubicación: Mexico
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 0
Hola!
Gracias por sus consejos.
Por cierto unamistad. Sucede que es al reves. En la base de datos tengo el titulo con acentos, pero en la cadena URL lo tengo sin acentos. Al final, provicionalmente, tuve que crear un campo extra donde se guarda el titulo sin acentos, y compararlo sobre ese.

Saludos!
__________________
www.subflash.com <-----visita
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 05:41.