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

Convertir caracteres especiales en sentencia MySQL

Estas en el tema de Convertir caracteres especiales en sentencia MySQL en el foro de Mysql en Foros del Web. Hola de nuevo foro: No se si lo que voy a preguntar podrá hacerse, pero hayá va: Estoy reprogramando una web para convertir las url ...
  #1 (permalink)  
Antiguo 22/09/2012, 11:33
Avatar de rodrigus71  
Fecha de Ingreso: mayo-2012
Ubicación: Alicante
Mensajes: 73
Antigüedad: 7 años, 4 meses
Puntos: 3
Convertir caracteres especiales en sentencia MySQL

Hola de nuevo foro:

No se si lo que voy a preguntar podrá hacerse, pero hayá va:

Estoy reprogramando una web para convertir las url en amigables.

Para ello convierto en la url, la cadena "Muñeco baby asiático" en "muneco-baby-asiatico".
(todo a minusculas, ñ por n, á por a, espacios por -, etc)

Pero el problema es cuando tengo que comparar esa cadena ya convertida "muneco-baby-asiatico" con la original que figura en la base de datos "Muñeco baby asiático".

Aqui os pongo la sentencia original en PHP que estoy utilizando
$sentencia="SELECT Id_producto FROM productos WHERE '".$_GET["articulo"]."'=Id_producto;";

El problema está (como ya os he dicho) que $_GET["articulo"]="muneco-baby-asiatico" y que Id_producto="Muñeco baby asiático"

A ver si hay suerte, gracias de antemano
__________________
Dame hueco, que habiendo hueco yo ya...
http://www.ofideco.eu
  #2 (permalink)  
Antiguo 22/09/2012, 23:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 9 meses
Puntos: 2653
Respuesta: Convertir caracteres especiales en sentencia MySQL

Es un tema que se resuelve estrictamente por programación. Es OFF-TOPIC en este foro.
Lo que debes tener claro es que si en la base la información se guarda como "Muñeco baby asiático", entonces a la consulta debe llegar "Muñeco baby asiático". No hay otra posibilidad.
El cómo logres, es totalmente irrelevante para nosotros, porque se produce en una etapa distinta de la aplicación (la capa de negocios o controladora), y no es con SQL como lo logras.
Pregunta en el foro de PHP, que es donde están los expertos en eso.

Recuerda: La capa de datos no resuelve problemas de transferencia de variables, sino su almacenamiento, procesado y recuperación. El resto es programación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 23/09/2012, 02:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 11 años, 5 meses
Puntos: 300
Respuesta: Convertir caracteres especiales en sentencia MySQL

¿Y por qué no guardas en un campo indexado el resultado de tu conversión cada vez que insertes y actualices la url? Es decir, que lo almacenes. Eso no es costoso para la base: un solo campo y al estar indexado harás las consultas más rápidas, incluso evitas pasar la función al cargar la url.
Pequeño problema: en ocasiones aplicar esa función de programación para cargar el valor hace que los valores no sean únicos y deberían serlo si quieres que te lleven a una página en concreto...
  #4 (permalink)  
Antiguo 23/09/2012, 08:50
Avatar de rodrigus71  
Fecha de Ingreso: mayo-2012
Ubicación: Alicante
Mensajes: 73
Antigüedad: 7 años, 4 meses
Puntos: 3
Respuesta: Convertir caracteres especiales en sentencia MySQL

Cita:
Iniciado por jurena Ver Mensaje
¿Y por qué no guardas en un campo indexado el resultado de tu conversión cada vez que insertes y actualices la url? Es decir, que lo almacenes. Eso no es costoso para la base: un solo campo y al estar indexado harás las consultas más rápidas, incluso evitas pasar la función al cargar la url.
Pequeño problema: en ocasiones aplicar esa función de programación para cargar el valor hace que los valores no sean únicos y deberían serlo si quieres que te lleven a una página en concreto...
Hola jurena:

Me has leido el pensamiento. Al final es lo que he hecho.
Lo malo como tu dices que cuando he querido indexar el campo "sin duplicidades" me ha tocado cambiar a mano bastantes urls que la regla de conversión me había hecho.

De todas formas gracias por el consejo
__________________
Dame hueco, que habiendo hueco yo ya...
http://www.ofideco.eu
  #5 (permalink)  
Antiguo 23/09/2012, 10:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 11 años, 5 meses
Puntos: 300
Respuesta: Convertir caracteres especiales en sentencia MySQL

pero es que ese problema te lo encontrarías en cualquier caso. Y a partir de ahora, mediante programación podrías, en caso de coincidencia (previa consulta para comprobarlo), añadir a la cadena generada por la función un elemento diferenciador, por ej. el identificador, o permites modificar añadiendo lo que deseas en el formulario de inserción de datos. Ya sé que lo del identificador es poco amigable, pero no se repetirá nunca, ¿verdad?
  #6 (permalink)  
Antiguo 24/09/2012, 13:28
Avatar de rodrigus71  
Fecha de Ingreso: mayo-2012
Ubicación: Alicante
Mensajes: 73
Antigüedad: 7 años, 4 meses
Puntos: 3
Respuesta: Convertir caracteres especiales en sentencia MySQL

he optado por la opción del formulario, añadiendolas yo a mano sin regla de conversión, ya que de todas formas los artículos nuevos se añaden así, por lo que rellenar un campo más no cuesta nada

lo de poner el identificador me hubiera ahorrado trabajo, pero no me gusta mucho las direcciones resultantes, me parece más limpio sin ellas.
__________________
Dame hueco, que habiendo hueco yo ya...
http://www.ofideco.eu

Etiquetas: caracteres, especiales, php, select, sentencia
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 17:40.