Consulta manual con GORM

Otro post que escribo sobre GORM, un ORM de Go. En este caso vamos a ver cómo hacer una consulta manual y un escaneo manual, es decir, algo tipo raw.

Este tipo de consultas son poco comunes pero existen para cuando necesitamos hacer un reporte o traer ciertos datos que no corresponden a un único modelo.

(más…)

Sistema de ventas con Laravel, Bootstrap y MySQL – Open source

Hoy voy a presentar un sistema que acabo de hacer con Laravel. Se trata de un sistema de ventas, punto de venta, PDV o como le llames, que sirve para llevar el seguimiento de los productos que se venden, el registro de ventas, etcétera.

Es un sistema totalmente gratuito y además open source; lo que quiere decir que puedes usarlo sin costo, y modificarlo a tus necesidades o personalizarlo. Entre sus opciones encontramos:

  • Utiliza Laravel en su última versión (a la fecha de escribir esto)
  • Bootstrap es usado para los estilos
  • Iconos de FontAwesome
  • Sistema totalmente responsivo, es decir, funciona en móviles, tabletas y computadoras
  • Control de inventario con precio de venta, precio de compra, utilidad, existencia, etcétera
  • Opción para realizar venta, agregando productos
  • Comprobación de existencia de inventario al vender
  • Resta de existencia al vender
  • Impresión de tickets de venta en impresora térmica
  • Reporte de ventas
  • Inicio de sesión y registro de usuarios
  • Gestión de usuarios (novedad)
  • Registro de clientes (novedad)
  • Ticket que incluye el nombre del cliente (novedad)

Ahora veamos cómo está hecho, en dónde obtenerlo, etcétera.

(más…)

Consultas manuales / raw en Laravel

A pesar de que Laravel tiene su ORM y Query Builder en algunas ocasiones vamos a necesitar ejecutar consultas “a mano”, es decir, ejecutar una consulta raw o una query manual.

Una desventaja que traen las consultas raw (que reciben la consulta como cadena) es que son propensas a inyecciones SQL, pero con lo que te mostraré hoy podrás hacer consultas raw en Laravel evitando inyecciones SQL.

(más…)

Último id insertado con PDO y PHP

En este corto post te mostraré cómo obtener el id que ha ocupado el último elemento insertado en una tabla de SQL usando el lenguaje de programación PHP y el driver PDO.

Obtener el último id insertado con PDO y PHP sirve para cuando necesitamos, por ejemplo, hacer relaciones de tablas o imprimir el id tan pronto se haya insertado el registro.

Para lograr esto vamos a usar el método lastInsertId.

(más…)

Explorando base de datos Android desde el navegador

Depurar bases de datos SQLite en Android

Cuando se quieren depurar bases de datos en Android no la tenemos fácil, pues Android no ofrece una manera nativa y fácil de exportar o importar la base de datos de nuestra app.

En este post te mostraré una herramienta que te ayudará a visualizar y depurar las bases de datos SQLite en Android sin necesidad de ser root o instalar apps de terceros.

Únicamente debemos agregar la librería llamada Android-Debug-Database que personalmente me ha ayudado bastante al analizar o depurar bases de datos en Android.

(más…)

Solución a SQLSTATE 42000 Syntax error or access violation: 1055

En este post te mostraré cómo solucionar el error al hacer una consulta en MySQL. Este error viene cuando hacemos un GROUP BY y al menos a mí se me ha presentado de dos formas.

La primera es:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘una_columna_de_la_tabla’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

La segunda es:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘una_columna_de_la_tabla’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Veamos cómo solucionar este error 42000 de MySQL.

(más…)

Tutorial de Django: bases de datos, migraciones y modelos

Esta es la continuación de un post anterior sobre la creación de una app con Django, el framework de Python.

En la entrada anterior vimos una pequeña introducción a Django, las vistas, las URLs y todo lo necesario para comenzar.

Ahora veremos cómo:

  • Trabajar con bases de datos y migraciones en Django
  • Crear modelos que van a representar entidades dentro de las bases de datos
  • Generar migraciones y tablas de la base de datos usando Django

Recuerda que puedes ver la parte anterior aquí, y el código en GitHub aquí.

(más…)