Inner join y otras uniones de tablas en CodeIgniter

Introducción En estos días tuve la inquietud de cómo hacer un inner join con 2 o más tablas utilizando el query builder de CodeIgniter. Y como ya he encontrado la solución, decidí reunir todas mis investigaciones para explicarlo. Vamos allá. Hacer inner join de 2 tablas Aquí dejo la solución. Sólo cambia el nombre de tus tablas y las condiciones como se deba. En este caso se unen 2 tablas. ...

marzo 15, 2018 · 2 min · 369 palabras · Parzibyte

Configuración de CodeIgniter v3 y PDO con MySQL

Introducción En algún (y seguramente muy mal) momento de nuestra vida puede que nos toque trabajar con este framework que a mi parecer no es tan bueno como su competencia que ya ni parece competencia: Laravel. En fin, como estaba diciendo, puede que trabajemos con CodeIgniter y necesitemos conectarnos a MySQL utilizando PDO. Hoy veremos cómo configurar el archivo que se encarga de la conexión a la base de datos para que funcione correctamente. Este ejemplo funciona como un encanto en la versión 3.1.7 pero supongo que igual será para las versiones futuras. Y si estás usando una versión anterior, te recomiendo actualizar. ...

marzo 13, 2018 · 2 min · 257 palabras · Parzibyte

Pequeño, muy pequeño sistema de ventas con PHP y MySQL

Introducción Hace algunos días hice un ejercicio de un sistema de ventas en PHP. Está escrito en puro PHP, nada de Javascript. Eso sí, para los estilos utilicé una variante de Bootstrap. Los archivos no tienen una estructura, pero como lo dije, es un ejemplo. También escribo esto porque igual y le sirve a alguien más o me sirve a mí mismo para algunas referencias. Para la persistencia de datos utiliza MySQL. Guarda productos y ventas. No maneja permisos de usuarios. Almacenamos el carrito de compras en la sesión, y bueno, mejor lo explico por partes. ...

marzo 13, 2018 · 14 min · 2840 palabras · Parzibyte

Eliminar documentos duplicados en MongoDB

Introducción Hablando de duplicidad, en alguna ocasión tuve que eliminar datos duplicados en MySQL y ya lo expliqué. Hoy explicaré cómo podemos eliminar duplicados en MongoDB, un gestor de base de datos que se compone de colecciones y que dentro de éstas aloja documentos. Eliminar duplicados Si sólo vienes por la solución, y no quieres ver el ejemplo, lo que tienes que ejecutar es esto: db.coleccion.aggregate([ { "$group": { "_id": { "laClave": "$laClave" }, "dups": { "$push": "$_id" }, "count": { "$sum": 1 } }}, { "$match": { "count": { "$gt": 1 } }} ]).forEach(function(doc) { doc.dups.shift(); db.coleccion.remove({ "_id": {"$in": doc.dups }}); }); Ahí “coleccion” es el nombre de tu colección. Y “laClave” es la clave que no quieres que se repita más de una vez. ...

marzo 8, 2018 · 2 min · 410 palabras · Parzibyte

Respaldar base de datos de MongoDB

Introducción En toda base de datos siempre necesitaremos importar y exportar datos. Ya sea por prevención, seguridad o porque haremos un movimiento que puede hacer que la base de datos quede mal. El punto es que siempre lo necesitaremos. Hoy veremos cómo hacer un respaldo completo de una base de datos en MongoDB utilizando tanto mongoexport y mongoimport como mongodump y mongorestore. Diferencias entre mongoexport, mongoimport, mongodump y mongorestore Mongoexport funciona para exportar. Para importar datos que respaldamos con esta herramienta, utilizamos mongoimport. ...

marzo 8, 2018 · 3 min · 531 palabras · Parzibyte

MySQL y el operador de coalescencia o COALESCE

Introducción Nota: mira la diferencia entre coalesce y la función ifnull. El operador de coalescencia (que de hecho no es un operador sino una función) toma una lista variable de argumentos y devuelve el primero que encuentre que no sea nulo. Explicado con palabras sencillas, llamamos a COALESCE con una lista de argumentos. ...

marzo 7, 2018 · 2 min · 417 palabras · Parzibyte

Compilar java y MySQL sin NetBeans ni otros IDE's

Introducción En este post explicaré cómo conectar Java y MySQL sin utilizar ningún IDE. Es decir, lo único que necesitamos es el compilador de Java (javac), el “ejecutador” de archivos de java (java), un editor de texto plano como Sublime Text, una consola y el conector que será un archivo.jar. Si quieres, puedes ver este post para ver cómo instalar java. Sólo explicaré la conexión, y escribiré otro post de un CRUD para complementar a éste; pero no podemos crearlo si no sabemos conectar. ...

marzo 1, 2018 · 5 min · 1047 palabras · Parzibyte

Más ejercicios resueltos de MySQL: Combinando funciones

Introducción Esta es la tercera parte de unos posts que vengo escribiendo sobre ejercicios propuestos de MySQL. Ahora veremos cómo combinar algunas funciones que vimos en los otros tutoriales. Son pocos, pero al principio son difíciles. Ejercicios con solución Tabla Recordemos que vamos a estar utilizando esta tabla para todos los ejercicios: /* Si no tienes una base de datos, copia las siguientes dos líneas que no están comentadas */ CREATE DATABASE IF NOT EXISTS pruebas; USE pruebas; /* Si ya tienes una base de datos, sólo copia lo siguiente */ CREATE TABLE tblUsuarios ( idx INT PRIMARY KEY AUTO_INCREMENT, usuario VARCHAR(20), nombre VARCHAR(20), sexo VARCHAR(1), nivel TINYINT, email VARCHAR(50), telefono VARCHAR(20), marca VARCHAR(20), compañia VARCHAR(20), saldo FLOAT, activo BOOLEAN ); INSERT INTO tblUsuarios VALUES ('1','BRE2271','BRENDA','M','2','brenda@live.com','655-330-5736','SAMSUNG','IUSACELL','100','1'), ('2','OSC4677','OSCAR','H','3','oscar@gmail.com','655-143-4181','LG','TELCEL','0','1'), ('3','JOS7086','JOSE RAÚL','H','3','francisco@gmail.com','655-143-3922','NOKIA','MOVISTAR','150','1'), ('4','LUI6115','LUIS FRANCISCO','H','0','enrique@outlook.com','655-137-1279','SAMSUNG','TELCEL','50','1'), ('5','LUI7072','LUIS','H','1','luis@hotmail.com','655-100-8260','NOKIA','IUSACELL','50','0'), ('6','DAN2832','DANIEL ALDAIR','H','0','daniel@outlook.com','655-145-2586','SONY','UNEFON','100','1'), ('7','JAQ5351','JAQUELINE','M','0','jaqueline@outlook.com','655-330-5514','BLACKBERRY','AXEL','0','1'), ('8','ROM6520','ROMAN','H','2','roman@gmail.com','655-330-3263','LG','IUSACELL','50','1'), ('9','BLA9739','BLAS','H','0','blas@hotmail.com','655-330-3871','LG','UNEFON','100','1'), ('10','JES4752','JESSICA','M','1','jessica@hotmail.com','655-143-6861','SAMSUNG','TELCEL','500','1'), ('11','DIA6570','DIANA LAURA','M','1','diana@live.com','655-143-3952','SONY','UNEFON','100','0'), ('12','RIC8283','RICARDO','H','2','ricardo@hotmail.com','655-145-6049','MOTOROLA','IUSACELL','150','1'), ('13','VAL6882','VALENTINA','M','0','valentina@live.com','655-137-4253','BLACKBERRY','AT&T','50','0'), ('14','BRE8106','BRENDA','M','3','brenda2@gmail.com','655-100-1351','MOTOROLA','NEXTEL','150','1'), ('15','LUC4982','LUCIA','M','3','lucia@gmail.com','655-145-4992','BLACKBERRY','IUSACELL','0','1'), ('16','JUA2337','JUAN JOSÉ','H','0','juan@outlook.com','655-100-6517','SAMSUNG','AXEL','0','0'), ('17','ELP2984','ELPIDIO','H','1','elpidio@outlook.com','655-145-9938','MOTOROLA','MOVISTAR','500','1'), ('18','JES9640','JESSICA','M','3','jessica2@live.com','655-330-5143','SONY','IUSACELL','200','1'), ('19','LET4015','LETICIA','M','2','leticia@yahoo.com','655-143-4019','BLACKBERRY','UNEFON','100','1'), ('20','LUI1076','LUIS','H','3','luis2@live.com','655-100-5085','SONY','UNEFON','150','1'), ('21','HUG5441','HUGO','H','2','hugo@live.com','655-137-3935','MOTOROLA','AT&T','500','1'); Nota: no es la misma tabla que antes, ya que a ésta la hemos modificado de tal manera que a algunos usuarios se les asignó un segundo nombre, mismo que será de utilidad para los ejercicios. ...

febrero 24, 2018 · 5 min · 937 palabras · Parzibyte

Introducción a pouchdb: app de agenda

Introducción PouchDB es una base de datos que se sincroniza. Permite trabajar offline y online, con una sincronización de la cual no tenemos que encargarnos nosotros. Esto viene perfecto para desarrollar sistemas que trabajan tanto con y sin internet. Es importante notar que si no queremos la sincronización, no pasa nada. Por lo que no estamos obligados a sincronizar ningún sólo dato. Además, la base de datos se sincroniza entre todos los dispositivos. Esto es algo muy genial, aunque claro, tampoco es tan poderosa como MySQL, MS SQL Server, etcétera. ...

febrero 22, 2018 · 12 min · 2351 palabras · Parzibyte

MySQL y PHP con PDO: CRUD (create, read, update, delete)

Introducción Aunque ya hay millones de tutoriales sobre esto, me decidí a hacer el mío pero en una forma muy muy simple. Antes de comenzar, debes tener un conocimiento básico en MySQL. Si no tienes instalado esto, pásate por este post para instalar XAMPP. Cabe mencionar que aquí no veremos buenas prácticas de bases de datos, relaciones, etcétera. Nos dedicaremos a usar las tablas que aparecen, sin fijarnos en la normalización, o cosas de ese estilo. ...

febrero 13, 2018 · 13 min · 2603 palabras · Parzibyte