Mysql adodb pdf_php

Post on 23-Jun-2015

1.105 views 2 download

Transcript of Mysql adodb pdf_php

Programación en PHP

MySQL, ADODB, PDF Ing. Felipe de Jesús Niño de la Cruz

Noviembre del 2011

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.

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.

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.

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.

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.

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>"; } ?>

Conectando a la Base de

Datos

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");

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.

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().

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

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.

Obteniendo Datos

while (!$result->EOF)

{

for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)

print $result->fields[$i].' '; $result->MoveNext();

print "<br>";

}

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).

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.

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

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>";

}

?>

Adodb Ejemplo

¿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:

¿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)

¿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.

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();

?>

Ejemplo Básico

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.

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.

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);

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");

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)

);

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;

Generación de

Documentos Excel

Generación de

Documentos Excel

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.

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;

?>

Generación de

Documentos Excel

Generación de

Documentos Excel

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.

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

¡Gracias por su atención…!

Noviembre del 2011