Artículos

Guía para solucionar problemas de DataTables con Ajax y PHP

Guía para solucionar problemas de DataTables con Ajax y PHP

Cómo hacer para...
Usá DataTables te dijeron. "Es el mejor plugin que vas a encontrar para mostrar datos en forma resumida" "Es súper fácil de usar" Si... claro. Armar la tabla no es muy complicado, es cierto, pero cuando le empezabas a encontrar el gustito... las cosas se complicaron. ¿Y ahora? ¿¿Qué pasa que no se cargan los datos?? Estarás pensando "¿Por qué no me quedé con las viejas tablas HTML que andaban sin problemas?" Pero en el fondo sabés por qué. Querés un sitio moderno. Querés que los visitantes tengan una buena experiencia. Querés que el cliente te vuelva a contratar y le cuente a sus amigos. Así que más vale hacer un esfuercito más. Lo primero que hay que tener claro es que no se puede resolver un problema sin primero…
Leer más
Cuál es la mejor librería para hacer PDF desde PHP

Cuál es la mejor librería para hacer PDF desde PHP

Herramientas
Apuesto que te habrás topado con la necesidad de emitir reportes en PDF alguna vez, ¿cierto? Por ejemplo para generar facturas electrónicas. De por sí es un tema integrarte con los webservices del fisco (Léase AFIP, SUNAT, DGI, DIAN, etc...) y cuando pensás que todo está resuelto, te encontrás con que falta subir otra colina más: generar los benditos pdfs. Seguro habrás pensado: "Tiene que haber una librería que permita hacer pdfs con PHP" Y tenés razón... y a la vez no. ¿Cómo? Pues... es que no existe una librería si no unas cuantas... y las diferencias entre una y otra no siempre están disponibles a simple vista. Casi podríamos decir que elegir la librería para generar pdfs es un proyecto en sí mismo. Así que, para ayudarte a tomar…
Leer más
Por qué tus páginas con DataTables tardan tanto en cargar

Por qué tus páginas con DataTables tardan tanto en cargar

Ejemplos
Una página que tarda mucho en cargar es una página mala. Lo sabés vos y lo saben tus usuarios. Si tu sitio tarda más de 5 segundos en mostrarse tus visitantes se sentirán así: Las páginas que usan DataTables se ven bien y son muy funcionales pero pueden tardar una eternidad en desplegarse. Más de la mitad de los usuarios que no encuentran pronto lo que buscan se van a otro sitio. Y los que se quedan desconfían de la profesionalidad de quien las desarrolló. ¿Y quién quiere contratar a alguien que entrega trabajos de dudosa calidad? Más vale dedicar unos minutos a aprender cómo mejorarlas. Factores que afectan el tiempo de carga de tu página En su forma más simple, un DataTable puede cargarse usando un arreglo JavaScript. Basta…
Leer más
Construyendo una tabla dinámica con PHP, MySQL, DataTables y Ajax

Construyendo una tabla dinámica con PHP, MySQL, DataTables y Ajax

Ejemplos
¿Cuántas veces te enfrentaste a la necesidad de mostrar información resumida en forma de tablas? O, puesto de otro modo: ¿qué aplicación no requiere del uso de tablas? Por supuesto que se puede usar HTML puro y quedará algo más o menos aceptable... pero con las herramientas (¡y los usuarios!) que tenemos hoy en día no podemos darnos el lujo de presentar una experiencia de usuario aceptable. Debemos dar lo mejor que podamos. Y lo mejor hoy en día implica interactividad. Los usuarios quieren poder buscar, ordenar, paginar... prácticamente tener un Excel directo en su aplicación. Ya te estarás imaginando el delirio de javascript que tendrías que ponerte a escribir para hacer todo esto desde cero, ¿no? De sólo pensarlo me dan ganas de retomar el curso de peluquería que…
Leer más

PHP no da error pero tampoco inserta en la db

Cómo hacer para...
Ahí está el código. Lo miraste por todos los costados posibles. Todos los puntos y comas están en su lugar. No hay ningún paréntesis mal cerrado, ninguna llave fuera de lugar ni nada raro. Corrés el programa y no sale ningún mensaje de error. Es más, el mensaje que se ve es "Todo ok: datos guardados" Y sin embargo cuando mirás en phpMyAdmin... ¿Qué podés hacer? Es una opción, sí. También podés descargar tu furia en Twitter contándole al mundo cuánto odiás PHP pero... eso tampoco va a ayudarte a resolver tu problema. No te desesperes. Existen algunas opciones mejores. A veces sucede que encontrar la causa de un error requiere algo más que simplemente leer el código. Tomemos un ejemplo como este: <?php $conn = mysqli_connect(); $sql = "INSERT…
Leer más
¿Es cierto que PHP está muerto?

¿Es cierto que PHP está muerto?

Reflexiones
Leo por ahí cosas como: "He vuelto a estudiar PHP porque quiero aprender bien a programar con él y no entiendo por qué siempre se termina hablando sobre si PHP está o no muerto, personalmente lo veo muy vivo pero cuando veo tanto vídeo de ese estilo dudo un poco en seguir estudiando PHP" "No entiendo mucho de back pero un amiguete siempre me dice que PHP está muerto." Y no puedo dejar de dar mi visión :) Claramente la pregunta esconde otra, mucho más importante: ¿Vale la pena dedicar tiempo y esfuerzo a aprender php? Es claro que, si efectivamente PHP estuviese muerto (o muriendo) tendría poco sentido... y enfatizo la palabra poco porque hasta el viejo COBOL tiene su cuotita de mercado que, al menos desde un punto…
Leer más
¿Cuál es la diferencia entre PDO y MySQLi?

¿Cuál es la diferencia entre PDO y MySQLi?

Conceptos
Si me decís que estás desarrollando una aplicación web usando PHP y no me das más datos, cerrando los ojos diría que estás usando una base de datos MySQL y, seguro que en el 80% de los casos acertaría. Es un hecho: PHP y MySQL son un dúo muy común en este mundillo. Lo que no está tan definido es cuál es el mejor modo de conectarse a MySQL utilizando PHP. A priori destacan dos: MySQLiPDO Ambos pueden usarse para armar CRUDs, reportes y cualquier otra necesidad que implique comunicar una aplicación PHP con una base de datos MySQL. Entonces... ¿cómo elegir? Para hacerte (algo) más fácil la tarea te voy a comentar brevemente de qué se trata cada uno. Qué es MySQLi MySQLi es una extensión de PHP creada…
Leer más
¿Qué son las extensiones de PHP?

¿Qué son las extensiones de PHP?

Conceptos
Quién no se cruzó con mensajes como: Debes tener instalada/habilitada la extension en PHP sobre GD Pero... ¿qué es exactamente una extensión de PHP? Para comprenderlo debes conocer un poco cómo funciona PHP internamente. A continuación te daré una visión algo simplificada, si quieres una explicación completa y detallada te recomiendo este excelente tutorial de Diego Lázaro. PHP es un lenguaje interpretado, lo que significa que para ejecutar una aplicación escrita en PHP se requiere de un proceso auxiliar llamado intérprete (Si usas Windows ese proceso será php.exe, si usas Linux o similares será el binario php). Este binario se ha generado a partir de la compilación de una base de código C, la cual, como es abierta, cualquiera con los conocimientos necesarios puede leer y alterar a su antojo.…
Leer más
Cómo exportar una tabla de MySQL a Excel usando PDO

Cómo exportar una tabla de MySQL a Excel usando PDO

Cómo hacer para...
Seguro que te ha pasado algo como esto: creaste una aplicación con su base de datos, con unas funcionalidades espectaculares, fantásticos reportes y al momento de la demo... la pregunta tan temida: "¿Cómo puedo hacer para llevar toda esta información a Excel?" Y en tu cabeza suena: "¿A Excel? ¿En serio? Pero si se puede hacer todo mucho mejor con esta aplicación... ¿para qué querrías usar una planilla de cálculo?" Creeme, no estás solo, a todos nos ha pasado. La triste realidad es que difícilmente vayas a ganar la batalla... más vale amigarte con el Excel (y ganar algo de dinero mientras tanto, ¿no?). Una de las razones más comunes que se escuchan por ahí es que a través de Excel es fácil compartir la información con otros sistemas (Personalmente…
Leer más
Cómo saber cuáles son los procedimientos que tiene un WebService SOAP usando PHP

Cómo saber cuáles son los procedimientos que tiene un WebService SOAP usando PHP

Cómo hacer para...
Consumir Servicios Web basados en SOAP es una tarea muy común estos días, especialmente cuando se trata de integrar con entidades gubernamentales (Típico caso es la facturación electrónica). Una de las características interesantes que tiene este protocolo (SOAP) es que están definidas en forma explícita las operaciones disponibles a través de un archivo de descripción de WebService (WSDL). La desventaja es que, salvo que conozcas bien la especificación, leer un archivo como este puede ser algo complicado: <?xml version = "1.0" encoding = "utf-8"?> <definitions name="WS_EmissionFactura" targetNamespace="Gx" xmlns:wsdlns="Gx" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="Gx"> <types> <schema targetNamespace="Gx" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" elementFormDefault="qualified"> <element name="WS_EmissionFactura.Execute"> <complexType> <sequence> <element minOccurs="1" maxOccurs="1" name="Xmlrecepcao" type="xsd:string" /> </sequence> </complexType> </element> <element name="WS_EmissionFactura.ExecuteResponse"> <complexType> <sequence> <element minOccurs="1" maxOccurs="1" name="Xmlretorno" type="xsd:string" /> </sequence> </complexType> </element> </schema> </types> <message name="WS_EmissionFactura.ExecuteSoapIn"> <part name="parameters"…
Leer más