Programar publicaciones en MySQL.

Resumen.

En este artículo vamos a ver como crear una publicación hoy y que esta se active (se haga pública) un cierto día a una cierta hora. Veremos la sencilla lógica para hacer esto, y como con solo pensar en la lógica más elemental de un lenguaje de programación, esto es tan sencillo como chuparse un dedo (de la mano).

Artículo.

Los motivos por los que alguien quiere que una publicación, sea del tipo que sea, se publique en un determinado momento pueden ser muy diversos. En el caso de un blog, puede que su propietario tenga acostumbrados a sus lectores a publicar todos los martes a las 22:00. En el caso de una tienda online, es posible que un artículo no pueda ser presentado antes de una determinada fecha y hora, en ambos casos, el procedimiento es el mismo.

La activación de una publicación a posteriori tras su creación puede ser un tanto delicada si tiene que ser un determinado día a una hora concreta, lo mismo ocurre cuando un producto va a ser puesto en oferta, por poner un ejemplo que cualquiera entenderá los motivos.

Estos problemas están íntimamente relacionados con la hora del día a la que se tiene que hacer publica la publicación (da lo mismo que sea una nueva entrada en un blog, un nuevo producto en una tienda online o la activación de una cierta oferta). Si nos toca realizarla en horario laboral, una simple llamada telefónica puede hacer que nos demoremos, si la activación ha de realizarse a una hora incomoda, como las 5:00 de la madrugada, pues…

Para estas situaciones podemos crear una consulta que realice una acción cuando se cumpla una cierta condición. Tomemos como referencia este artículo donde tenemos la siguiente consulta:


$_pagi_sql = "SELECT * FROM $tb1 ORDER BY id DESC";



Sobre ella realizaremos unos cambios que harán que nuestra publicación se active en una determinada fecha y hora.

Lo primero que debemos tener en nuestra tabla de datos es un campo que puede llamarse “fecha_activacion”. En el caso en que la activación de la publicación sea la misma que la de creación, “fecha_registro” y “fecha_activacion” coincidirán.

Vamos a un caso concreto. Tenemos una publicación con los siguientes datos:


$fecha_registro = '2023-04-12 10:47';
$fecha_ activacion = '2023-04-14 08:00';

$fecha_actual = date('Y-m-d H:i');
$_pagi_sql = "SELECT * FROM $tb1 WHERE fecha_activacion >= '$fecha_actual' ORDER BY id DESC";



De esta forma, ya tenemos nuestra publicación lista para que a partir de las 8 en punto de la mañana del día 14 de abril, nuestra publicación aparezca activa sin que tengamos que hacer absolutamente nada.

No puedo dejar de indicar algo que resulta más que obvio, y es que siempre que creemos una publicación, debemos ser nosotros los que determinemos en última instancia si la publicación se hará pública o no. El motivo es sencillo, muchas veces empezamos a publicar algo, y por cualquier motivo la publicación no la podemos terminar, en otras ocasiones, queremos revisar la publicación antes de hacerla pública.

Para esto siempre me gusta agregar un campo que puede llamarse por ejemplo “publicar”, que toma dos valores, “si” y “no”. Para este campo opto por el tipo “
enum('si','no')
”. Cada cual que elija el que considere mas apropiado.

La consulta ahora quedaría de la siguiente forma:


$_pagi_sql = "SELECT * FROM $tb1 WHERE fecha_activacion >= '$fecha_actual' AND publicar = 'si' ORDER BY id DESC";



Como hemos podido ver, y prometíamos en el resumen del artículo, la cosa no puede ser más sencilla, solo tenemos que establecer una condición en la consulta, que en este caso no es de igualdad estricta (=), es de mayor o igual (>=). Sí simplemente hubiéramos indicado mayor (>) la publicación aparecería a partir de 2023-04-14 08:01.

Y esto es todo amigos. Hasta el siguiente artículo¡¡¡
Tags: Mayor o igual || automatizar || fecha y hora || activar

Comentarios.

Sin comentarios, publica el tuyo.