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
Top Related