Archivo de la categoría: Programación

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


$('.datepicker').datepicker({
dateFormat: "dd-mm-yy",
firstDay: 1,
dayNamesMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
dayNamesShort: ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"],
monthNames:
["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio",
"Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
monthNamesShort:
["Ene", "Feb", "Mar", "Abr", "May", "Jun",
"Jul", "Ago", "Sep", "Oct", "Nov", "Dic"]
});

view raw

datepickerEs.js

hosted with ❤ by GitHub

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


<!–
Demo de datepicker inline en castellano
Autor: Ruben Lacasa Mas <http://rubenlacasa.es&gt;
–>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="author" content="Ruben Lacasa Mas – rubenlacasa.es">
<meta name="description" content="Demo de jQuery inline en castellano">
<title>datepicker demo</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/flick/jquery-ui.min.css"&gt;
<script src="http://code.jquery.com/jquery-1.10.0.min.js"></script&gt;
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script&gt;
</head>
<body>
<div id="datepicker"></div>
<div id="datos">
<label for='fecha'>Fecha:</label>
<!– Campo de texto que recibira el valor seleccionado en el datepicker
le he puesto el atributo readonly para no poder escribir directamente –>
<input type='text' name='fecha' id='fecha' readonly />
</div>
<script>
$( "#datepicker" ).datepicker({
// Formato de la fecha
dateFormat: "dd/mm/yy",
// Primer dia de la semana El lunes
firstDay: 1,
// Dias Largo en castellano
dayNames: [ "Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado" ],
// Dias cortos en castellano
dayNamesMin: [ "Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa" ],
// Nombres largos de los meses en castellano
monthNames: [ "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" ],
// Nombres de los meses en formato corto
monthNamesShort: [ "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dec" ],
// Cuando seleccionamos la fecha esta se pone en el campo Input
onSelect: function(dateText) {
$('#fecha').val(dateText);
}
});
</script>
</body>
</html>

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.

phpmaster | 10 Tips for Better Coding

 

Gran articulo en el que se ven 10 puntos que hay que tener muy en cuenta a la hora de programar un buen y mantenible codigo php.

phpmaster | 10 Tips for Better Coding.

Google HTML/CSS Style Guide

Una guia muy completa de Google para el desarrollo de paginas web con HTML y CSS

Google HTML/CSS Style Guide.

Archivos php principales de un tema wordpress

Avatar de noellassekaspw2012

Aqui una aproximacion a los archivos mas importantes–>

http://yoast.com/wordpress-theme-anatomy/

Si eliminamos  el footer.php de la plantilla que pasa!? –>

Hay una jerarquia de lo que se carga en caso de que no encuentre el archivo, por si al instalar algo os encontrais que se carga algo que no toca

http://digwp.com/2010/09/wordpress-3-template-hierarchy/

Ver la entrada original

10 Tips for a Speedy Zend Studio – Zend Technologies: Customer Support Knowledgebase

Project | Properties | Validation.

vía 10 Tips for a Speedy Zend Studio – Zend Technologies: Customer Support Knowledgebase.

PHP: PHP 5.4.0 Release

The PHP logo displaying the Handel Gothic font.
Ya tenemos la nueva versión estable de PHP y como cada vez que se actualiza una versión tenemos mejoras que nos pueden interesar a la hora de programar y problemas que nos pueden surgir con nuestras antiguas aplicaciones.

Como caracteristicas principales:

Como cambios que pueden afectar a la compatibilidad:

  • Register globals, magic quotes y safe mode a sido eliminado.
  • La sintaxis break/continue $var has sido eliminada.
  • La opcion en el ini de allow_call_time_pass_reference ha sido eliminada
  • El default_charset se ha establecido a «UTF-8».

Actualizando a PHP 5.4

Una vez vi el anuncio, actualize el servidor de desarrollo y las aplicaciones que uso para poder usar las nuevas caracteristicas, probrarlas y comprobar como se comportaba con las aplicaciones que tengo desarrolladas, antes de plantearme la idea de actualizar el servidor de producción y tengo que decir que me voy a esperar un poco a actualizar el de producción ya que me ha surgido algún que otro problemilla, sobre todo con el Zend Framework, y mas concretamente con el Zend_PDF. Por lo demás si que he observado una mejora notable en el rendimiento, y eso que el php 5.3 era muy superior en rendimiento a la versión 5.2

PHP: PHP 5.4.0 Release Announcement.