Hoy estaba haciendo un tema de url amigables (friendly-url) y no quería hacer un script en php que se conectase a base de datos así que decidir hacer solamente con MYSQL
Para ello necesitaba una función que me resolvieses el tema que hace strtr en php así que busque un poco por la web y encontre este bonita función de mysql
Despues de esto ya sólo necesito unos cuantos replace para quitar ciertas cosas, como conjunciones y demás farfulla
Espero que os ayude a mi me ha resultado rapido y comodo
Para ello necesitaba una función que me resolvieses el tema que hace strtr en php así que busque un poco por la web y encontre este bonita función de mysql
-- -------------------------------------------------------------------------------- -- Routine DDL -- Note: El equivalente a strtr en php -- -------------------------------------------------------------------------------- DELIMITER $$ CREATE DEFINER=`root`@`%` FUNCTION `tr`(`str` TEXT, `dict_from` VARCHAR(1024), `dict_to` VARCHAR(1024)) RETURNS text CHARSET utf8 NO SQL DETERMINISTIC SQL SECURITY INVOKER BEGIN DECLARE len INTEGER; DECLARE i INTEGER; IF dict_to IS NOT NULL AND (CHAR_LENGTH(dict_from) != CHAR_LENGTH(dict_to)) THEN SET @error = CONCAT('Length of dicts does not match.'); SIGNAL SQLSTATE '49999' SET MESSAGE_TEXT = @error; END IF; SET len = CHAR_LENGTH(dict_from); SET i = 1; WHILE len >= i DO SET @f = SUBSTR(dict_from, i, 1); SET @t = IF(dict_to IS NULL, '', SUBSTR(dict_to, i, 1)); SET str = REPLACE(str, @f, @t); SET i = i + 1; END WHILE; RETURN str; END
Despues de esto ya sólo necesito unos cuantos replace para quitar ciertas cosas, como conjunciones y demás farfulla
update menu_items set slug = replace( replace( replace( replace( replace( replace( replace( replace( LOWER(tr(nombre, "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ· /", "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn---")),')',''),'(',''),'--','-' ),'-y-','-'),'-de-','-'),'-para-','-'),'--','-' ),'-e-','-')
Espero que os ayude a mi me ha resultado rapido y comodo
Comentarios
Publicar un comentario