miércoles, 9 de septiembre de 2015

Eclipse - Linux y los problemas de los acentos.

A la hora de compartir código entre usuarios de linux y windows nos encontramos con problemas en la codificación de caracteres ya que en windows por defecto es CP-152 y en Ubuntu, por defecto, es UTF-8.

Para solucionar este problema hay tres cambios que podemos hacer:

El primero es la opción Window => Preferences => General => Content Types, donde a cada tipo de archivo se le puede asociar una codificación de caracteres.

Además también está la Window => Preferences => General => Editors, donde puedes establecer la codificación por defecto para todos los editores de texto (en las versiones mas actuales del IDE es y no se encuentra disponible)

Si como en mi caso, utilizas la aplicación para editar absolutamente todo, incluyendo archivos HTML y PHP descubrirás que estos tipos se encuentran bloqueados para cambiar la codificación, para solucionar esto nos dirigimos a: Window => Preferences => General => Work Space, y en la opción de codificación de archivos de texto (que se encuentra abajo a la izquierda) seleccionamos ISO-8859-1.

Siguiendo estos pasos ya no deberían haber problemas con las codificaciones de caracteres latinos. 

martes, 1 de septiembre de 2015

La función CONCAT en MySQL

Imaginemos que queremos un string con la dirección completa de un lugar y que tenemos esa información guardada en una tabla, pero tenemos guardados por separado la dirección, el código postal, la ciudad y la provincia. Puedes hacer una SELECT, pedirle todos los datos y concatenarlos al gusto mediante PHP. Pero también podemos recibir los datos ya formateados de la propia consulta para ello MySQL nos ha creado una función llamada CONCAT, dicha función une dos datos dentro de una consulta, para que cuando los tengas que mostrar ya estén concatenados. Es muy útil por ejemplo cuando queremos mostrar direcciones o nombres y apellidos, pongamos un ejemplo:

Select CONCAT(Nombre, ' ', Apellidos) As Nombre From usuarios;

Esta función nos extraerá el campo Nombre y Apellidos separados por un espacio, unidos en un solo campo llamado "Nombre", de esta manera tan solo debemos mostrar un dato de información.

Esta función también se puede utilizar para concatenar valores numéricos, si por ejemplo debemos mostrar un valor de porcentaje en nuestra aplicación con ejecutar esta consulta, este se mostrará formateado:

Select CONCAT(visitas, ' %') As Total From estadisticas;

Dicho valor nos devolverá el dato de la siguiente manera (10.00 %), ¿nos ahorra trabajo verdad?.



CONCAT(str1,str2,...)

Devuelve la cadena resultante de concatenar los argumentos. Devuelve NULL si alguno de los argumentos es NULL. Puede haber más de 2 argumentos. Un argumento numérico se convierte a su cadena equivalente:

mysql> SELECT CONCAT('My', 'S', 'QL');
+-------------------------+
| CONCAT('My', 'S', 'QL') |
+-------------------------+
| MySQL                   |
+-------------------------+
1 row in set (0.00 sec)

mysql> SELECT CONCAT('My', NULL, 'QL');
+--------------------------+
| CONCAT('My', NULL, 'QL') |
+--------------------------+
| NULL                     |
+--------------------------+
1 row in set (0.00 sec)

mysql> SELECT CONCAT(14.3);
+--------------+
| CONCAT(14.3) |
+--------------+
| 14.3         |
+--------------+
1 row in set (0.00 sec)