SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
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/#downloa
  d.
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

Más contenido relacionado

La actualidad más candente

SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ
 
Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey Vortexbird
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RSVortexbird
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4cognos_uie
 
Desarrollo android - 5 - almacenamiento de datos
Desarrollo android  -  5 - almacenamiento de datosDesarrollo android  -  5 - almacenamiento de datos
Desarrollo android - 5 - almacenamiento de datosEmilio Aviles Avila
 
ED 02 0_tda_definicion_td_as-bnf
ED 02 0_tda_definicion_td_as-bnfED 02 0_tda_definicion_td_as-bnf
ED 02 0_tda_definicion_td_as-bnfA J
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial BásicoJosu Orbe
 
Desarrollo android almacenamiento de datos
Desarrollo android    almacenamiento de datosDesarrollo android    almacenamiento de datos
Desarrollo android almacenamiento de datosFernando Cejas
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datosAlvaro Cardona
 
Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchRobedgar MX
 
Introducción a XML: Sintaxis y documentos bien formados
Introducción a XML: Sintaxis y documentos bien formadosIntroducción a XML: Sintaxis y documentos bien formados
Introducción a XML: Sintaxis y documentos bien formadosJose Emilio Labra Gayo
 

La actualidad más candente (19)

XSLT
XSLTXSLT
XSLT
 
Clases de oledb
Clases de oledbClases de oledb
Clases de oledb
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4
 
Desarrollo android - 5 - almacenamiento de datos
Desarrollo android  -  5 - almacenamiento de datosDesarrollo android  -  5 - almacenamiento de datos
Desarrollo android - 5 - almacenamiento de datos
 
2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp
 
Oracle xmldb
Oracle xmldbOracle xmldb
Oracle xmldb
 
ED 02 0_tda_definicion_td_as-bnf
ED 02 0_tda_definicion_td_as-bnfED 02 0_tda_definicion_td_as-bnf
ED 02 0_tda_definicion_td_as-bnf
 
Ado.Net
Ado.NetAdo.Net
Ado.Net
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial Básico
 
Desarrollo android almacenamiento de datos
Desarrollo android    almacenamiento de datosDesarrollo android    almacenamiento de datos
Desarrollo android almacenamiento de datos
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
 
Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbench
 
Clase ix
Clase ixClase ix
Clase ix
 
Introducción a XML: Sintaxis y documentos bien formados
Introducción a XML: Sintaxis y documentos bien formadosIntroducción a XML: Sintaxis y documentos bien formados
Introducción a XML: Sintaxis y documentos bien formados
 
Espacio de nombres system.Data.Oledb
Espacio de nombres system.Data.OledbEspacio de nombres system.Data.Oledb
Espacio de nombres system.Data.Oledb
 
Base de datos
Base de datosBase de datos
Base de datos
 

Destacado (13)

Ev1 mod5
Ev1 mod5Ev1 mod5
Ev1 mod5
 
Ev ppa felipedejesus
Ev ppa felipedejesusEv ppa felipedejesus
Ev ppa felipedejesus
 
Programa redes de computadoras
Programa redes de computadorasPrograma redes de computadoras
Programa redes de computadoras
 
Evidencia no 1
Evidencia no 1Evidencia no 1
Evidencia no 1
 
Guia autoevaluacion
Guia autoevaluacionGuia autoevaluacion
Guia autoevaluacion
 
Inv planeaccompetencias
Inv planeaccompetenciasInv planeaccompetencias
Inv planeaccompetencias
 
Unidad i. -fundamentos_de_redes
Unidad i. -fundamentos_de_redesUnidad i. -fundamentos_de_redes
Unidad i. -fundamentos_de_redes
 
Transformacion de la_practica_docente
Transformacion de la_practica_docenteTransformacion de la_practica_docente
Transformacion de la_practica_docente
 
Php basico
Php basicoPhp basico
Php basico
 
Instituto tecnológico de tuxtepec
Instituto tecnológico  de tuxtepecInstituto tecnológico  de tuxtepec
Instituto tecnológico de tuxtepec
 
Costos y honorarios del consultor
Costos y honorarios del consultorCostos y honorarios del consultor
Costos y honorarios del consultor
 
Analisis el proceso de consultoria
Analisis el proceso de consultoriaAnalisis el proceso de consultoria
Analisis el proceso de consultoria
 
Proceso de la consultoria
Proceso de la consultoriaProceso de la consultoria
Proceso de la consultoria
 

Similar a Mysql adodb pdf_php

Similar a Mysql adodb pdf_php (20)

Tema4[php]
Tema4[php]Tema4[php]
Tema4[php]
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
Base de datos dinamicas
Base de datos dinamicasBase de datos dinamicas
Base de datos dinamicas
 
Laboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoLaboratorio 3 Andres Moreno
Laboratorio 3 Andres Moreno
 
Clase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de SistemasClase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de Sistemas
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Cuarta 1
Cuarta 1Cuarta 1
Cuarta 1
 
Guía herramientas de BD PHP
Guía herramientas de BD PHPGuía herramientas de BD PHP
Guía herramientas de BD PHP
 
php-mysql
php-mysqlphp-mysql
php-mysql
 
Cuarta 1
Cuarta 1Cuarta 1
Cuarta 1
 
Bases de Datos en en www.fiec.espol.edu.ec
Bases de Datos en  en www.fiec.espol.edu.ecBases de Datos en  en www.fiec.espol.edu.ec
Bases de Datos en en www.fiec.espol.edu.ec
 
curso-servidores-apache-2
curso-servidores-apache-2curso-servidores-apache-2
curso-servidores-apache-2
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
Java y Bases Datos
Java y Bases DatosJava y Bases Datos
Java y Bases Datos
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
 
Gustavo php
Gustavo phpGustavo php
Gustavo php
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.com
 
Silfredo valdez 28391048
Silfredo valdez 28391048Silfredo valdez 28391048
Silfredo valdez 28391048
 

Último

Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024sergeycrastz06
 
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxComunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxJunkotantik
 
PROPIEDADES DE LA LUZ. TIPLER. FÍSICA. PROBLEMAS
PROPIEDADES DE LA LUZ. TIPLER. FÍSICA. PROBLEMASPROPIEDADES DE LA LUZ. TIPLER. FÍSICA. PROBLEMAS
PROPIEDADES DE LA LUZ. TIPLER. FÍSICA. PROBLEMASjolopezpla1
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )portafoliodigitalyos
 
PROBLEMAS DE GENÉTICA CON ÁRBOLES GENEALÓGICOS.pdf
PROBLEMAS DE GENÉTICA  CON ÁRBOLES GENEALÓGICOS.pdfPROBLEMAS DE GENÉTICA  CON ÁRBOLES GENEALÓGICOS.pdf
PROBLEMAS DE GENÉTICA CON ÁRBOLES GENEALÓGICOS.pdfmihayedo
 
RubénSaaRamos_PrácticasPedagogía_Educación y Sociedad
RubénSaaRamos_PrácticasPedagogía_Educación y SociedadRubénSaaRamos_PrácticasPedagogía_Educación y Sociedad
RubénSaaRamos_PrácticasPedagogía_Educación y SociedadRuben53283
 
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLAACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdfFlorHernandezNuez
 
2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptxJunkotantik
 
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechaproyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechanitoagurto67
 
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptxDESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptxMARCOSMARTINALACAYOP1
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)JonathanCovena1
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)portafoliodigitalyos
 
Gran Final Campeonato Nacional Escolar Liga Las Torres 2017.pdf
Gran Final Campeonato Nacional Escolar Liga Las Torres 2017.pdfGran Final Campeonato Nacional Escolar Liga Las Torres 2017.pdf
Gran Final Campeonato Nacional Escolar Liga Las Torres 2017.pdfEdgar R Gimenez
 
Tipologías de vínculos afectivos (grupo)
Tipologías de vínculos afectivos (grupo)Tipologías de vínculos afectivos (grupo)
Tipologías de vínculos afectivos (grupo)portafoliodigitalyos
 
1 CARTILLA DE CATEQUESIS año biblico 2023-2024.pdf
1 CARTILLA DE CATEQUESIS año biblico 2023-2024.pdf1 CARTILLA DE CATEQUESIS año biblico 2023-2024.pdf
1 CARTILLA DE CATEQUESIS año biblico 2023-2024.pdffaustozurita
 
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
PLAN DE GESTION DEL RIESGO  2023 - 2024.docxPLAN DE GESTION DEL RIESGO  2023 - 2024.docx
PLAN DE GESTION DEL RIESGO 2023 - 2024.docxpily R.T.
 
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdfRESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdfANEP - DETP
 

Último (20)

Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024
 
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxComunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
 
PROPIEDADES DE LA LUZ. TIPLER. FÍSICA. PROBLEMAS
PROPIEDADES DE LA LUZ. TIPLER. FÍSICA. PROBLEMASPROPIEDADES DE LA LUZ. TIPLER. FÍSICA. PROBLEMAS
PROPIEDADES DE LA LUZ. TIPLER. FÍSICA. PROBLEMAS
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )
 
PROBLEMAS DE GENÉTICA CON ÁRBOLES GENEALÓGICOS.pdf
PROBLEMAS DE GENÉTICA  CON ÁRBOLES GENEALÓGICOS.pdfPROBLEMAS DE GENÉTICA  CON ÁRBOLES GENEALÓGICOS.pdf
PROBLEMAS DE GENÉTICA CON ÁRBOLES GENEALÓGICOS.pdf
 
Lec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuarioLec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuario
 
RubénSaaRamos_PrácticasPedagogía_Educación y Sociedad
RubénSaaRamos_PrácticasPedagogía_Educación y SociedadRubénSaaRamos_PrácticasPedagogía_Educación y Sociedad
RubénSaaRamos_PrácticasPedagogía_Educación y Sociedad
 
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLAACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
 
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
 
2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx
 
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechaproyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
 
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
 
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptxDESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
 
Gran Final Campeonato Nacional Escolar Liga Las Torres 2017.pdf
Gran Final Campeonato Nacional Escolar Liga Las Torres 2017.pdfGran Final Campeonato Nacional Escolar Liga Las Torres 2017.pdf
Gran Final Campeonato Nacional Escolar Liga Las Torres 2017.pdf
 
Tipologías de vínculos afectivos (grupo)
Tipologías de vínculos afectivos (grupo)Tipologías de vínculos afectivos (grupo)
Tipologías de vínculos afectivos (grupo)
 
1 CARTILLA DE CATEQUESIS año biblico 2023-2024.pdf
1 CARTILLA DE CATEQUESIS año biblico 2023-2024.pdf1 CARTILLA DE CATEQUESIS año biblico 2023-2024.pdf
1 CARTILLA DE CATEQUESIS año biblico 2023-2024.pdf
 
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
PLAN DE GESTION DEL RIESGO  2023 - 2024.docxPLAN DE GESTION DEL RIESGO  2023 - 2024.docx
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
 
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdfRESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
 

Mysql adodb pdf_php

  • 1. Programación en PHP MySQL, ADODB, PDF Ing. Felipe de Jesús Niño de la Cruz Noviembre del 2011
  • 2. 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.
  • 3. 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.
  • 4. 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.
  • 5. 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/#downloa d.
  • 6. 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.
  • 7. 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>"; } ?>
  • 8. Conectando a la Base de Datos
  • 9. 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");
  • 10. 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.
  • 11. 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().
  • 12. 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
  • 13. 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.
  • 14. Obteniendo Datos while (!$result->EOF) { for ($i=0, $max=$result->FieldCount(); $i < $max; $i++) print $result->fields[$i].' '; $result- >MoveNext(); print "<br>"; }
  • 15. 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).
  • 16. 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.
  • 17. 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
  • 18. 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>"; } ?>
  • 20. ¿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:
  • 21. ¿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)
  • 22. ¿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.
  • 23. 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(); ?>
  • 25. 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.
  • 26. 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.
  • 27. 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);
  • 28. 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");
  • 29. 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) );
  • 30. 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;
  • 33. 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.
  • 34. 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; ?>
  • 37. 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.
  • 38. 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
  • 39. ¡Gracias por su atención…! Noviembre del 2011