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

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

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 columna a tabla si no existe en SQLite3 con Golang

En el tutorial de hoy te mostraré una pequeña función que te permite agregar una columna a una tabla solo si la misma no existe. El motor de base de datos que vamos a usar será SQLite3 pero me imagino que debe funcionar para otros como PostgreSQL o MySQL. Esto es necesario porque en ocasiones el cliente no puede hacer los cambios a la base de datos (no puede ejecutar sentencias SQL) y además se desean conservar los datos ya existentes. Por ello es que hoy veremos cómo agregar una columna a una tabla conservando sus datos, y agregarla solo si no existe, verificando la tabla con PRAGMA en SQLite3. ...

marzo 20, 2022 · 4 min · 690 palabras · Parzibyte

Exportar datos de SQLite3 como SQL desde la CLI

En este tutorial sobre la herramienta sqlite3 de la línea de comandos veremos cómo exportar una tabla y su contenido en formato SQL a través del comando dump. Con sqlite3 no me refiero al gestor, sino a la herramienta de la línea de comandos que está disponible en varios sistemas operativos y que permite gestionar bases de datos de SQLite3. ...

marzo 18, 2022 · 3 min · 438 palabras · Parzibyte

Último id insertado en base de datos con Golang

En este post vamos a ver cómo obtener el último id insertado en la base de datos usando Go también conocido como Golang. No importa la base de datos que usemos, siempre y cuando usemos database/sql. Con esto podemos conectar a MySQL, PostgreSQL, SQLite3, etcétera. Veamos entonces cómo obtener el id del último elemento insertado o el id del elemento del último insert. ...

febrero 21, 2022 · 2 min · 331 palabras · Parzibyte

PostgreSQL: obtener varias filas de subconsulta en una columna

Hoy vamos a ver algo muy necesario al realizar consultas en bases de datos usando PostgreSQL. Se trata de traer varios datos en una subconsulta pero colocarlos todos dentro de una columna, codificados de cierta manera. De este modo traemos varios datos de varias filas, por cada fila, como una columna. Para esto vamos a usar las funciones JSON que PostgreSQL ofrece, en especial la función json_agg. Con esto vamos a tener varios datos de una subconsulta como una cadena que podremos decodificar más adelante. Si bien no es lo más adecuado, funciona y es muy rápido. Nota: si tú no usas PostgreSQL aquí te dejo una alternativa. ...

enero 17, 2022 · 6 min · 1165 palabras · Parzibyte

Formatear fecha en MySQL

En este post de bases de datos en MySQL / MariaDB te enseñaré a formatear fechas en MySQL o mejor dicho a cambiar el formato de una fecha al hacer una consulta, usando date_format. El formato más usado es YYYY-MM-DD pero en ocasiones es necesario cambiarlo a, por ejemplo, DD-MM-YYYY. Justamente de eso se trata este post. ...

abril 18, 2021 · 2 min · 297 palabras · Parzibyte

PHP - Contador de visitas avanzado con gráficas y reporte

Hace un tiempo te mostré un contador de visitas simple en PHP. Ahora te traigo una versión avanzada que brinda además gráficas y reportes. Como bien sabes, anteriormente hicimos un script para contar los visitantes y visitas, pero fue algo muy simple y no contaba con total precisión. En el sistema que te mostraré ahora se van a contar las visitas y visitantes, además de mostrar una gráfica con la cantidad de visitas y visitantes que se hayan tenido en un período. Del mismo modo se van a mostrar las páginas más vistas según determinada fecha, y del mismo modo vamos a ver cómo han visitado determinada página en un rango de fechas. Todo el sistema que te presentaré es gratuito y open source, así que a través del post colocaré el código fuente. ...

marzo 2, 2021 · 13 min · 2560 palabras · Parzibyte

Agregar índice a tabla en MySQL

En este post sobre bases de datos te enseñaré a agregar un índice a una columna de cualquier tabla en MySQL y MariaDB. Recuerda que agregamos índices a las columnas para optimizar las consultas. Esto no siempre es necesario, solo lo es cuando vamos a hacer varias consultas (o consultas con varios datos) utilizando un campo en específico y queremos optimizarlas para, en general, hacerlas más rápidas. ...

marzo 1, 2021 · 2 min · 332 palabras · Parzibyte