MySQL - Guardar combinación de días de la semana

En este post te voy a enseñar a guardar solo algunos días de la semana elegidos por algún usuario usando MySQL usando un número entero, de modo que el usuario puede elegir todos los días de la semana, ninguno de ellos, solo sábado y domingo, solo lunes, solo el martes o cualquier combinación de días. Vamos a usar un número entero y máscaras de bits para almacenar los días de la semana elegidos por el usuario, además de enseñarte a hacer consultas SQL para saber si cierto día de la semana se encuentra en los días que el usuario ha elegido. Gracias a las máscaras de bits podemos almacenar una combinación de días de la semana con MySQL. Al final, MySQL solo guardará un entero cuyo valor máximo será 127. ...

agosto 15, 2024 · 6 min · 1087 palabras · Parzibyte

Consulta de MySQL a CSV y Excel con PHP

En este post de programación con PHP y MySQL vamos a ver cómo exportar los resultados de una consulta SQL como CSV (valores separados por coma) y como archivo Excel, además de mostrarlos como HTML. A partir de las filas que sean devueltas por una consulta vamos a crear un archivo CSV y un archivo de Excel. ...

junio 25, 2024 · 7 min · 1475 palabras · Parzibyte

Total vendido agrupado por mes - SQL y reportes con gráficas

En este post vamos a ver cómo calcular el total vendido en un período de fechas agrupado por mes, ya sea para mostrar un reporte o una gráfica de barras o líneas. Básicamente veremos el algoritmo y ejemplos de código para sacar el desglose del total vendido por mes en el año o en cualquier período de tiempo, tomando los datos de una base de datos, agrupando, ordenando, sumando, etcétera. No importa cuál motor de base de datos utilices ni el lenguaje de programación. Veremos el algoritmo para sumar el total vendido por mes. ...

febrero 14, 2023 · 6 min · 1088 palabras · Parzibyte

Telegram y MySQL: conexión usando bot

En este post vamos a ver cómo realizar la conexión de Telegram con MySQL a través de un bot, de modo que podamos guardar y consultar datos de una base de datos de MySQL desde Telegram. Con lo que veremos vamos a poder insertar datos en una tabla de MySQL desde Telegram y cualquier chat (siempre y cuando nuestro bot pueda leer los mensajes). También vamos a ver cómo guardar el nombre del usuario y la fecha de envío del mensaje. Será un CRUD (sin Update) básico pero puedes partir del mismo para hacer cosas más específicas. ...

diciembre 5, 2022 · 5 min · 990 palabras · Parzibyte

¿Cómo almacenar contraseñas en bases de datos?

El día de hoy te voy a compartir un poco de mi experiencia como programador al guardar contraseñas en bases de datos, sin importar lenguaje de programación ni motor de base de datos. Te daré algunos consejos para almacenar passwords en una base de datos y que obviamente queden seguras para que ni siquiera tú sepas cuál es la contraseña pero puedas resetearla en caso de ser necesario. ...

noviembre 26, 2022 · 6 min · 1105 palabras · Parzibyte

Agrupar condiciones WHERE en SQL usando Laravel

En el post de hoy vamos a trabajar con Laravel, PHP y consultas SQL con WHERE. Como bien sabes, en MySQL o motores similares podemos agrupar condiciones usando paréntesis, estableciendo así un orden. Por ejemplo, si queremos encerrar 2 condiciones y luego evaluarlas con un AND, haríamos algo así: select * from `productos` where `id_establecimiento` = ? and (`descripcion` LIKE ? or `codigo_barras` LIKE ?) order by `descripcion` asc; En este caso hacemos un and entre la primera comparación y el resultado de la segunda que está encerrada entre paréntesis para evaluar un or. Esto es importante porque (para este ejemplo) si no se usaran paréntesis se podrían ver los productos de todos los establecimientos si es que el código de barras coincide. Entonces veamos cómo agrupar y evaluar condiciones booleanas de la base de datos entre paréntesis usando el Query Builder y ORM de Laravel. ...

septiembre 26, 2022 · 3 min · 552 palabras · Parzibyte

Flutter y SQLite multiplataforma

En este post te enseñaré a usar Flutter con SQLite en varias plataformas, excepto la web. El paquete oficial soporta solo Android, iOS y MacOS, pero no Windows ni Linux. Aquí veremos cómo usar SQLite con Flutter en Android, iOS, MacOS, Windows y Linux usando un paquete adicional llamado sqflite_ffi que es compatible con Linux y Windows. Nota: si tú solo quieres usar SQLite en Android, iOS o MacOS entonces tal vez quieras buscar un tutorial más simple como este, ya que aquí enseño a cómo tener SQLite en la mayor cantidad de plataformas posibles. ...

septiembre 21, 2022 · 8 min · 1666 palabras · Parzibyte

SQL: obtener varias filas de subconsulta en una sola, simulando JSON para agrupar

Hace tiempo te mostré cómo “encapsular” varias filas de datos en una sola fila usando JSON con PostgreSQL y las funciones que de JSON que este motor ofrece. Hoy te enseñaré a obtener varias filas “comprimidas” dentro de una fila simulando un JSON concatenando los resultados, por lo que será compatible con varios motores de bases de datos. En pocas palabras ingresaremos un arreglo de filas en una fila, agrupando varias filas en una sola, o mejor dicho, colocar resultados de una subconsulta como JSON. ...

agosto 31, 2022 · 3 min · 596 palabras · Parzibyte

Agregar clave foránea en ALTER TABLE con SQLite

En este post te enseñaré algo muy simple pero de lo cual no encontré información al respecto: cómo agregar una clave foránea (relación) a una tabla de SQLite con un ALTER TABLE agregando una columna con ADD COLUMN. Es decir, vamos a agregar una Foreign Key a una tabla existente agregando la columna y la relación al mismo tiempo ...

agosto 22, 2022 · 2 min · 251 palabras · Parzibyte

Guardar fechas en bases de datos: tipo de dato

En el post de hoy vamos a hablar sobre el almacenamiento de fechas y horas en las bases de datos y cómo trabajar con ellas al usarlas en nuestros sistemas. Te diré algunos consejos desde mi experiencia para que puedas guardar y recuperar timestamps a cualquier base de datos y en cualquier lenguaje de programación. ...

agosto 18, 2022 · 4 min · 685 palabras · Parzibyte