mysql adodb pdf_php
TRANSCRIPT
![Page 1: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/1.jpg)
Programación en PHP
MySQL, ADODB, PDF Ing. Felipe de Jesús Niño de la Cruz
Noviembre del 2011
![Page 2: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/2.jpg)
Conceptos Básicos e
Introducción
PHP está especialmente diseñado para la
creación de sitios webs dinámicos.
Para crear estos sitios normalmente se utiliza
algún tipo de base de datos desde donde
obtenemos la información que queremos
mostrar, ya sean noticias, preguntas y
respuestas de un foro u otro tipo de
información dinámica.
![Page 3: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/3.jpg)
Conceptos Básicos e
Introducción
Desafortunadamente el acceso en PHP cada
base de datos es muy diferente.
Para conectarnos a mysql, debemos usar
mysql_connect(); cuando decida cambiar a
Oracle o Microsoft SQL Server, debe usar
ocilogon() o mssql_connect() respectivamente.
Lo peor es que también los parámetros de
cada función son diferentes.
![Page 4: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/4.jpg)
Conceptos Básicos e
Introducción
Una librería de abstracción de los datos
como ADODB es lo que se necesita si
desea asegurar en gran medida la
portabilidad de su aplicación.
Provee una serie de funciones comunes
para comunicarse con las distintas bases
de datos.
![Page 5: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/5.jpg)
Conceptos Básicos e
Introducción
ADODB viene de “Active Data Objects DataBase” ADODB actualmente soporta MySQL, PostgreSQL, Oracle, Interbase, Microsoft SQL Server, Access, FoxPro, Sybase, ODBC y ADO.
Puede obtener ADODB en http://adodb.sourceforge.net/#download.
![Page 6: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/6.jpg)
Conectando a la Base de
Datos
Ejemplo MySQL
La base de datos usada con más frecuencia en PHP es MySQL, entonces es posible que le resulte familiar el siguiente código.
Conectamos al server MySQL en localhost, a la base de datos – HR -, y ejecutamos una sentencia SQL.
El resultado es impreso en pantalla, una línea por cada fila obtenida.
![Page 7: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/7.jpg)
Conectando a la Base de
Datos
Con las funciones nativas de PHP para MySQL<p> <?php //Nos conectamos al Servidor de Bases de Datos MySQL $db = mysql_connect("localhost", “root", “”); //Seleccionamos la Base de Datos HR mysql_select_db("hr",$db); //Ejecutamos la Consulta SQL $result = mysql_query("SELECT * FROM jobs",$db); //Verificamos si se pudo realizar la consulta if ($result === false) die("failed"); //Obtenemos los datos y los mostramos en pantalla while ($fields = mysql_fetch_row($result)) { for ($i=0, $max=sizeof($fields); $i < $max; $i++) { print $fields[$i].' '; } print "<br>"; } ?>
![Page 8: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/8.jpg)
Conectando a la Base de
Datos
![Page 9: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/9.jpg)
Conectando a la Base de
Datos
//paso a paso con Adodb
//ruta relativa al adodb
include("../../../adodb/adodb.inc.php");
$db = NewADOConnection('mysql');
$db->Connect("localhost", "root", "", "hr");
![Page 10: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/10.jpg)
Conectando a la Base de
Datos
La conexión puede parecer algo más
complicada que en MySQL pero se
explica en que ADODB es totalmente
orientado a objetos.
![Page 11: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/11.jpg)
Conectando a la Base de
Datos
Para ahorrar memoria solo se carga las funciones específicas de la base de datos que vamos a utilizar.
Cada driver tiene un archivo distinto que se carga mediante un include automáticamente.
Una vez cargado el driver que vamos a utilizar mediante la función NewADOConnection() nos conectamos a la base de datos usando $db->Connect().
![Page 12: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/12.jpg)
Ejecutando SQL
$result = $db->Execute("SELECT *
FROM jobs");
if ($result === false)
die("failed");
Para enviar una sentencia sql al motor de base de
datos se utiliza la función Execute().
Esta función devuelve un objeto “recordset” si la
ejecución fue correcta o un “false” si hubo algún error
![Page 13: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/13.jpg)
Ejecutando SQL
El objeto connection ($db) es responsable de la conexión a la base de datos, formateo de las SQL y las consultas al servidor.
El objeto recordset ($result) es responsable de la obtención de los resultados y el formateo de los resultados.
![Page 14: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/14.jpg)
Obteniendo Datos
while (!$result->EOF)
{
for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)
print $result->fields[$i].' '; $result->MoveNext();
print "<br>";
}
![Page 15: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/15.jpg)
Obteniendo Datos
El proceso para obtener datos es como el
proceso para leer desde un archivo.
Para cada línea observamos si hemos
llegado al final del archivo (EOF).
Mientras no lleguemos al final del fichero
seguimos leyendo y moviéndonos a la
siguiente línea (MoveNext).
![Page 16: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/16.jpg)
Obteniendo Datos
El array $result->fields[] es generado por
ADODB ante cada petición de
MoveNext().
Podemos obtener array asociativos o
indexados por el número del campo.
![Page 17: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/17.jpg)
Otras Funciones
Especiales
$recordset->RecordCount() retorna el total de filas obtenidas en el recordset.
Algunas bases de datos no soportan esto y se devuelven un -1.
$recordset->GetArray() coloca el resultado del recordset en un array.
Para mas documentacion:
http://adodb.sourceforge.net/#docs
![Page 18: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/18.jpg)
Adodb Ejemplo
<?php
// Ruta relativa al include del adodb
include("../../../adodb/adodb.inc.php");
// Se crea un objeto conexiòn para MySQL
$db = NewADOConnection('mysql');
// Conexión al Servidor MySQL
$db->Connect("localhost", "root", "", "hr");
// Se ejecuta la consulta en la Base de Datos
$result = $db->Execute("SELECT * FROM jobs");
// Se verifica que se ejecuto bien la consulta
if ($result === false)
die("failed");
// Se visualizan los resultados obtenidos de la consulta
while (!$result->EOF)
{
for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)
print $result->fields[$i].' '; $result->MoveNext();
print "<br>";
}
?>
![Page 19: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/19.jpg)
Adodb Ejemplo
![Page 20: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/20.jpg)
¿Qué es FPDF?
FPDF es una clase que permite generar documentos en PDF solo con PHP , es decir sin utilizar la librería PDFlib.
La F de FPDF significa free: es decir, se puede utilizar y modificar sin ningún problema de costo.
FPDF tiene otras ventajas: funciones de alto nivel, como las que siguen:
![Page 21: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/21.jpg)
¿Qué es FPDF?
Elección de unidad de medida, formato de página y márgenes
Manejo de encabezados y pies de página
Salto de página automático Salto de línea automático y justificación
de texto Soporte de imágenes (JPEG, PNG y GIF)
![Page 22: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/22.jpg)
¿Qué es FPDF?
Colores Links Soporte para codificación, TrueType,
Type1 Compresión de página PHP4 y PHP5. FPDF no requiere extensión (excepto zlib
para activar la compresión y GD para soporte GIF) y trabaja con PHP4 y PHP5.
![Page 23: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/23.jpg)
Ejemplo Básico
<?php
// Ruta relativa a la clase FPDF
require(„../../fpdf/fpdf.php');
// Creación de una documento PDF
$pdf=new FPDF();
// Se agrega una página al documento PDF
$pdf->AddPage();
// Configuración del tipo de letra a utilizar
$pdf->SetFont('Arial','B',16);
// Se agrega una celda al documento PDF
$pdf->Cell(40,10,'Hello World!');
// Se genera el documento PDF
$pdf->Output();
?>
![Page 24: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/24.jpg)
Ejemplo Básico
![Page 25: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/25.jpg)
Generación de
Documentos Excel
Es posible generar archivos en formato
Excel utilizando PHP.
Esto es muy interesante pues nos puede
servir para generar reportes de nuestra
base de datos a un archivo .xls el cual es
un formato ampliamente utilizado.
![Page 26: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/26.jpg)
Generación de
Documentos Excel
Que necesitamos?
Lo primero que necesitamos es una clase llamada MS-Excel Stream Handler la cual contiene las funciones necesarias para crear archivos Excel.
Ahora bien, esta librería permite la creación de los archivos pero no de manera intuitiva, basados en la documentación de esta clase me he tomado la libertad de crear un archivo llamado excel-ext.php que contiene una función que nos facilitará este proceso.
![Page 27: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/27.jpg)
Generación de
Documentos Excel
Para ello utilizaremos la función
createExcel que recibe dos parámetros,
el primero el nombre del archivo que
deseas crear y el segundo un array
asociativo con los datos a mostrar en el
archivo generado.
PHP: createExcel("excelname.xls",
array);
![Page 28: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/28.jpg)
Generación de
Documentos Excel
Creando nuestro primer Ejemplo
Entonces el primer paso es incluir el
archivo excel.php y excel-ext.php en
nuestro script php de la siguiente forma:
PHP:
require_once("excel.php");
require_once("excel-ext.php");
![Page 29: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/29.jpg)
Generación de
Documentos Excel
Lo siguiente es crear un array asociativo que contiene
los datos a mostrar, para nuestro ejemplo creamos un
array que contiene una lista de nombre y su IQ.
PHP:
$assoc = array(
array("Nombre"=>"Mattias", "IQ"=>250),
array("Nombre"=>"Tony", "IQ"=>100),
array("Nombre"=>"Peter", "IQ"=>100),
array("Nombre"=>"Edvard", "IQ"=>100)
);
![Page 30: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/30.jpg)
Generación de
Documentos Excel
Luego el tercer y ultimo paso es crear el archivo Excel, para ello utilizamos la función createExcel, uniendo todo tendríamos:
PHP:
require_once("excel.php");
require_once("excel-ext.php");
$assoc = array(
array("Nombre"=>"Mattias", "IQ"=>250),
array("Nombre"=>"Tony", "IQ"=>100),
array("Nombre"=>"Peter", "IQ"=>100),
array("Nombre"=>"Edvard", "IQ"=>100)
);
createExcel("excel-array.xls", $assoc);
exit;
![Page 31: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/31.jpg)
Generación de
Documentos Excel
![Page 32: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/32.jpg)
Generación de
Documentos Excel
![Page 33: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/33.jpg)
Generación de
Documentos Excel
Crear Excel desde una Base de Datos
El siguiente ejemplo obtiene datos desde una
base de datos MySQL y generará un archivo
Excel como reporte.
Para ello primero creamos una conexión a
nuestra base de datos y consultamos la tabla
empresa y luego colocamos los resultados en
una matriz asociativa llamada $recordset.
![Page 34: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/34.jpg)
Generación de
Documentos Excel
<?php
require(“../../../adodb/adodb.inc.php");
require_once("excel.php");
require_once("excel-ext.php");
$conectar = NewADOConnection(„mysql');
$conectar->Connect(„localhost‟,‟root‟,„‟,‟hr‟) or die("Error al conectar");
$consulta="select * from jobs";
$recordset = $conectar->GetAssoc($consulta) or die(“error!!");
createExcel("excel-mysql.xls", $recordset);
exit;
?>
![Page 35: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/35.jpg)
Generación de
Documentos Excel
![Page 36: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/36.jpg)
Generación de
Documentos Excel
![Page 37: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/37.jpg)
Práctica
1. Construya una función para realizar
una conexión a una base de datos en
mysql, postgres o sybase.
2. Incluya esta función para cada
conexión que realice a la bd.
3. Realice una consulta a la bd
seccionada y despliegue su resultado
en el navegador.
![Page 38: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/38.jpg)
Práctica
4. De igual forma, realice, inserciones,
actualizaciones y borrado en la bd
seleccionada
5. Generar un reporte en Excel de los
datos ingresados.
6. Generar un reporte en PDF de los
mismos
![Page 39: Mysql adodb pdf_php](https://reader034.vdocuments.co/reader034/viewer/2022052323/5588fdc7d8b42a9e3f8b45f3/html5/thumbnails/39.jpg)
¡Gracias por su atención…!
Noviembre del 2011