Weekly Photo Challenge: Purple

Gizmo reportero

Anuncios

Borrar un dato de dos tablas con la misma consulta – MySQL Tips

MySQLSeguramente en alguna ocasión nos habremos visto, o nos podemos ver en la situación de borrar de dos tablas un dato, un ejemplo clásico seria el de creo una factura y esta contiene productos, con lo que podríamos tener una tabla de Facturas y otra tabla que fueran detallesFacturas, en la primera guardaríamos los datos generales de la factura y en el la segunda los artículos o lineas que comprondría la factura, pues bien, si borro la factura tengo que borrar también los artículos que estaban en esa factura, y eso tendría que poder hacerlo con una sola consulta.

Tabla Facturas Tabla detallesFacturas
Id Id
 (Resto campos) IdFactura
IdProducto
(Resto campos)

Imaginemos que tenemos la factura 123 y tenemos que borrarla y queremos borrar también todos los registros referentes a esa factura en la tabla detallesFactura.

La consulta de borrado quedaría así

DELETE a1, a2 FROM Facturas AS a1 INNER JOIN detallesFacturas AS a2
WHERE a1.Id=a2.IdFactura AND a1.Id LIKE 123;

Otra opción podria ser

DELETE FROM a1, a2 USING Facturas AS a1 INNER JOIN detallesFacturas AS a2
WHERE a1.Id=a2.IdFactura AND a1.Id LIKE 123;

Y con esta consulta borraríamos la factura de la tabla Facturas y los datos de la factura que hubiera en la tabla de detallesFacturas.

Mas info aqui: http://dev.mysql.com/doc/refman/5.1/en/delete.html

Libreria para formatear numeros con Javascript

Una librería de JavaScript muy útil para dar formato a los números a la hora de presentarlos en el formato que queramos, la posición de las comas y los puntos, el símbolo de la moneda, valores negativos.

Formatting numbers in JavaScript – mredkj.com.

Fechas PHP a MySQL y vuelta – MySQL Tips

PHP Programming languageUna de las cosas con las que toca lidiar practicamente siempre que trabajamos con fechas contra una base de datos MySQL es que la base va MySQLa almacenar las fechas de la manera ISO “año-mes-dia” y nosotros a la hora de trabajar trabajos con el formato Europeo, ya sea “dia-mes-año” o “dia/mes/año”.

Durante muchos años trabajaba con la tecnica de la función bidireccional, es decir, me creaba una función la cual cuando le llegaba la fecha la convertia en un sentido u otro.

function cambiaFormatoFecha($fechaOriginal)
{
 //Dividimos la fecha de la hora si existe
 $partesStamp = explode(" ", $fechaOriginal);
 // La primera parte es la fecha, la segunda la hora
 $partesFecha = explode ( "-", $partesStamp[0] );
 // La fecha final
 return $partesFecha[2] ."-".$partesFecha[1]."-".$partesFecha[0];
}

MySQL guarda las fechas separadas por guiones, así que si nosotros definimos el formato de fecha separado con guiones, pues eso que tenemos ganado y esta función nos convierte tanto nuestras fechas cuando las introducimos como las fechas que devuelve el MySQL.

Trabajar con esto puede parecer que es una gran ventaja, pero la verdad que a nivel de rendimiento no lo es ya que supone ejecutar la función cada vez que aparezca un registro de fecha.

Una solución bastante mas eficiente es la de procesar las fechas en la consulta. Para eso utilizaremos las funciones incorporadas de MySQL DATE_FORMAT y STR_TO_DATE.

Si queremos unos registros de una determinada fecha podemos hacer:


SELECT * FROM `tabla` WHERE fecha LIKE STR_TO_DATE('mifecha','%d-%m-%Y);

En esta consulta mifecha esta en el formato dia-mes-año

Si queremos ver las fechas en el formato dia-mes-año


SELECT DATE_FORMAT(fecha,'%d-%m-%Y) FROM `tabla`;

Para mas información

STR_TO_DATE http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_str-to-date

DATE_FORMAT http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format

Datepicker Jquery en castellano

Dejo el codigo del datepicker de Jquery para que salga en formato castellano

He creado otro Gist con una demo de como crearlo sin necesidad de hacer clic en el input

La documentación de jQuery UI http://jqueryui.com/demos/datepicker/

Función que nos devuelve el numero de días de un mes

Mas de una vez nos habremos visto en la duda de, como hacer que según el mes y el año que hemos marcado que nos de los dias que tiene ese mes, pues bien, en php hay una función interna que nos facilita el trabajo, esta es cal_days_in_month, y hay que pasarle como parametros el calendario que queremos, por ejemplo CAL_GREGORIAN, el numero del mes, y el año y nos devuelve el numero de dias que tuvo ese mes.

$numeroDias = cal_days_in_month(CAL_GREGORIAN, 10, 2008);
echo $numeroDias; //Devolvera 31

vía PHP: cal_days_in_month – Manual.

Three Marie

Three Marie by rubenlacasa::2012
Three Marie, a photo by rubenlacasa::2012 on Flickr.

Foto tomada en Granvia