Herramientas Informaticas

Categoría: MySQL

HACER GRAFICA DE PASTEL CON PHP Y MYSQL

Hola amigos ya hemos podido guardar, modificar, eliminar y presentar datos de una base de datos por medio de HTML, PHP5 Y MySQL, pero ahora falta ver como hemos de presentar los datos gráficamente de manera que nos o les sea útil a nosotros o al encargado de cierto departamento y pueda tomar las decisiones correcta en base a la visualización de los datos que presentaremos, ahora les mostrare el código fuente con el cual podrán utilizar los datos de su tabla para generar graficas.

Primero les dejo el archivo de consultas.php que esta dentro de la carpeta modelo

<?php


//FUNCION PARA OBTERNER EL NUMERO TOTAL DE EGRESADOS TRABAJANDO

function egresadosTrabajando(){


    $enlace = mysql_connect("localhost", "root", "");

    mysql_select_db("sce", $enlace);


    $alumnosTrabando = "SELECT * FROM vmlzj_comprofiler WHERE cb_empleado='si'";

    $resultado = mysql_query($alumnosTrabando,$enlace);


    $numeroFilas = mysql_num_rows($resultado);


    return $numeroFilas;

}


//FUNCION PARA OBTENER DE LA TABLA EL NUMERO TOTAL DE EGRESADOS DESEMPLEADOS

function egresadosDesempleados(){


    $enlace = mysql_connect("localhost", "root", "");

    mysql_select_db("sce", $enlace);


    $alumnosTrabando = "SELECT * FROM vmlzj_comprofiler WHERE cb_empleado='no'";

    $resultado = mysql_query($alumnosTrabando,$enlace);


    $numeroFilas = mysql_num_rows($resultado);


    return $numeroFilas;

}


?>

Ahora les dejo el código que hace que pinte la grafica gAlumT.php

 

<?php

//MANDAMOS A LLAMAR LAS LIBRERIAS JPGRAPH

include ("jpgraph/jpgraph.php");

include ("jpgraph/jpgraph_pie.php");

include ("jpgraph/jpgraph_pie3d.php");


//MANDAMOS LLAMAR LA LIBRERIA PARA USAR LAS FUNCIONES QUE NOS DARAN LOS DATOS

include ("modelo/consultas.php");


//USAMOS LAS FUNCIONES PARA ASIGNAR LOS VALORES

$egreT = egresadosTrabajando();

$egreD = egresadosDesempleados();


//AQUI VAN LOS DATOS ASIGNADOS

$data = array($egreT,$egreD);



$graph = new PieGraph(450,200,"auto");

$graph->img->SetAntiAliasing();

$graph->SetMarginColor('gray');

//$graph->SetShadow(); 


// Setup margin and titles 

$graph->title->Set("Grafica de alumnos trabajando");


$p1 = new PiePlot3D($data);

$p1->SetSize(0.35);

$p1->SetCenter(0.5);


// Setup slice labels and move them into the plot 

$p1->value->SetFont(FF_FONT1,FS_BOLD);

$p1->value->SetColor("black");

$p1->SetLabelPos(0.2);


$nombres=array("Egresados con trabajo","Egresados sin trabajo");

$p1->SetLegends($nombres);


// Explode all slices 

$p1->ExplodeAll();


$graph->Add($p1);

$graph->Stroke();

?>

 

Les dejo la librería de JPGRAPH para que la puedan descargar, SALUDOS espero que les halla servidor

4c88e-descargar-button

CREAR UN ARCHIVO PDF DESDE PHP

A CONTINUACIÓN LES DEJO UN ARHIVO PARA PODER GENERAR UN ARCHIVO PDF CON PHP.

PARA ELLO UTILIZAREMOS LA LIBRERIA DE EZPDF

ABAJO EL CODIGO FUENTE

   1: <?php

   2:  

   3: //DomPDF 

   4:  

   5:  

   6: require_once('class.ezpdf.php'); //IMPORTAMOS LA LIBRERIA DE EZPDF

   7: include ('conexionmysql.php');   //IMPORTAMOS LA LIBRERIA PARA REALIZAR LA CONEXIÓN CON MYSQL

   8:  

   9: $pdf =& new Cezpdf('LETTER');                //SELECCIONAMOS EL EL TAMAÑO DE HOJA DEL ARCHIVO PDF, EN ESTE CASO SERA TAMAÑO CARTA

  10: $pdf->selectFont('../fonts/courier.afm');    //SELECCIONAMOS EL TIPO DE LETRA

  11: $pdf->ezSetCmMargins(1,1,1.5,1.5);           //AQUI VA LOS MARGENES DE LAHOJA

  12:  

  13:     

  14:     //GUARDAREMOS EN UNA VARIABLE LOS DATOS PARA LA CONEXIÓN AL GESTOR DE BASE DE DATOS

  15:     $direccion1="localhost";

  16:     $usuario1="root";

  17:     $password1="";

  18:     $basededatos1="bd_itlm";

  19:  

  20:  

  21:     //NOS CONECTAMOS A LA BASE DE DATOS LLAMANDO LA FUNCIÓN cononectar_mysql() UTILIZANDO LAS VARIABLES DE ARRIBA

  22:     conectar_mysql("$direccion1","$usuario1","$password1","$basededatos1");

  23:  

  24:  

  25: //GUARDAMOS LA CADENA PARA REALIZAR LA CONSULTA

  26: $Presta = "SELECT * FROM usuarios ORDER BY id ASC";

  27:  

  28: //EJECUTAMOS LA CONSULTA Y GUARDAMOS EL RESULTADO EN UNA VARIABLE

  29: $resPres = mysql_query($Presta);

  30:  

  31: //GUARDAMOS EL NUEMRO DE FILAS EN OTRA VARIABLE

  32: $total_presta = mysql_num_rows($resPres);

  33:  

  34:  

  35: $ixx = 0;

  36: while($datatmp = mysql_fetch_assoc($resPres)){

  37:     $ixx = $ixx+1;

  38:     $data[] = array_merge($datatmp, array('num'=>$ixx));

  39: }

  40: $titles = array(

  41:                 'id'=>'id',

  42:                 'usuario'=>'solicitante',

  43:                 'clave'=>'clave',

  44:             );

  45: $options = array(

  46:                 'shadeCol'=>array(0.9,0.9,0.9),

  47:                 'xOrientation'=>'center',

  48:                 'width'=>500

  49:             );

  50: $txttit = "Instituto Tecnológico de Los Mochisn";

  51: $txttit.= "Reporte general de prestamos de edificiosn";

  52:  

  53: $pdf->ezimage("escudo.jpg",0,150,'none','center');        

  54: $pdf->ezText($txttit, 12);

  55: $pdf->ezTable($data, $titles, '', $options);

  56: $pdf->ezText("nnn", 10);

  57: $pdf->ezText("Fecha: ".date("d/m/Y"), 10);

  58: $pdf->ezText("Hora: ".date("H:i:s")."nn", 10);

  59: ob_end_clean();                        

  60: $pdf->ezStream();

  61: ?>

LES DEJO LAS LIBRERIAS Y CODIGOS FUENTE PARA QUE LO PUEDAN DESCARGAR, EN ESTE ENLACE ESTA TODO JUNTO CON EL EJEMPLO

DESCARGAR

 

 

EN ESTE ENLACE ESTA NOMAS LA LIBRERIA ORIGINAL PARA GENERAR EL PDF

DESCARGAR EZPDF

Acceso a un sistema con PHP, MySQL

 

php-logo

Utilizando las funciones de MySQL AES_ENCRYPT

   1: 

   2:  

   3: INGRESO AL SISTEMA 

   4: <?php

   5: /*******************************************************************************************************************

   6: *                             DESCRIPCION: ESTE ARCHIVO TIENE LA FUNCION DE CONECTAR CON LA BASE DE DATOS.             *

   7: *                             PROGRAMADOR: JULIO CESAR LEYVA RODRIGUEZ.                                               *

   8: *                             FECHA:          01/07/2012                                                               *

   9: ********************************************************************************************************************/

  10:  

  11:  

  12:  

  13: function conectar_mysql($direccion,$usuario,$password,$basededatos)

  14:     {

  15:     global $enlace;

  16:     if(!($enlace=mysql_connect($direccion,$usuario,$password)))

  17:         {

  18:         echo " alert('error de conexion')";

  19:         exit();

  20:         }

  21:     if(!(mysql_select_db($basededatos,$enlace)))

  22:         {

  23:         echo " alert('error al conectar con la base de datos')";

  24:         exit();

  25:         }

  26:     return $enlace;

  27:     }

  28:     

  29: function desconectar()

  30:     {

  31:     mysql_close($enlace);

  32:     }

  33:  

  34:     

  35:     

  36:     /*FUNCION QUE TE PERMITIRA VALIDAR SI UN CAMPO TE TEXTO ESTA VACIO

  37: 

  38:     Esta función se puede usar en un condición "if" */

  39:  

  40:      

  41:  

  42:      function validar_campo($campo)

  43:  

  44:         {

  45:  

  46:         if($campo=="")

  47:  

  48:            return(true);

  49:  

  50:           

  51:  

  52:        else

  53:  

  54:            return(false);

  55:  

  56:        }

  57:     function buscar($data)

  58:     {

  59:         

  60:     $total = mysql_num_rows(mysql_query($data));

  61:     if($total==0)

  62:         return(false);

  63:     else

  64:         return(true);

  65:     }

  66:     

  67:     ?>

  68:     

  69:     <form id "acceso" name "acceso" method="post" action="index.php">

  70:     

  71:     <table  border='0' align="Center">

  72:         

  73:         

  74:         

  75:             

  76:                 <img align="Center" src="http://1.bp.blogspot.com/_JrrrT5TM9lQ/SV8pjlllv0I/AAAAAAAAACQ/OpyoqSeY_SY/s320/escudo.jpg" 

  77:                     border="0" width="200" height="200">

  78:             

  79:         

  80:     

  81:     

  82:     <table align="center">

  83:         

  84:         

  85:             <td align = "center">

  86:         

  87:             USUARIO

  88:             

  89:             

  90:         

  91:         

  92:             

  93:             

  94:             <input name="usuario" type="text"/>

  95:             

  96:         

  97:         

  98:         

  99:         

 100:             <td align = "center">

 101:         

 102:             PASSWORD

 103:             

 104:             

 105:         

 106:         

 107:             

 108:             

 109:             <input name="pass" type="password"/>

 110:             

 111:         

 112:         

 113:         

 114:             <td align="center">

 115:              <input type="submit" name="Submit" value="Accesar">

 116:             

 117:         

 118:     

 119:     

 120:     

 121: <?php

 122: $usuario=@$_POST['usuario'];

 123: $password=@$_POST['pass'];

 124: $llave="millave";

 125: if(validar_campo($usuario)==false && validar_campo($password)==false)

 126:     {

 127:     $direccion1="localhost";

 128:     $usuario1="root";

 129:     $password1="";

 130:     $basededatos1="bd_itlm";

 131:     conectar_mysql($direccion1,$usuario1,$password1,$basededatos1);

 132:  

 133:     

 134:      $busqueda = "SELECT * FROM usuarios WHERE usuario='$usuario' AND 

 135:                                             clave=AES_ENCRYPT('$password','$llave')";

 136:     

 137:     if(buscar($busqueda)==true)

 138:         {

 139:         Echo " alert('ENCONTRADO')";

 140:         }

 141:     else

 142:         {

 143:         Echo " alert('NO ENCONTRADO')";

 144:         }

 145:     }

 146: ?>

 147:     

 148: 

CONFIRMAR ELIMINAR UN REGISTRO MYSQL CON PHP

php-logo
Les dejo un script que puede utilizar para confirmar si desea eliminar un registro en la base de datos.

   1: <script type="text/javascript">
   2:         <!--
   3:         function confirmacion(id) {
   4:         var answer = confirm("Esta seguro que desea eliminar")
   5:         if (answer){
   6:         alert("Evento eliminado")
   7:         window.location.href="eliminar.php?ide="+id;
   8:         }
   9:         else{
  10:         alert("Cancelado")
  11:         }
  12:     }    
  13: //-->
  14: 

Al momento de utilizarlo quedaría de esta forma.

   1: <?php
   2: ......
   3: echo " ";
   4: .......
   5: ?>

Arquitecturas de Sistemas de Bases de Datos

Arquitectura centralizada.

Los sistemas de bases de datos centralizados son aquellos que se ejecutan en un único sistema informático, sin interaccionar con ninguna otra computadora. 
Tales sistemas comprenden el rango desde los sistemas de bases de datos monousuario, ejecutándose en computadoras personales; hasta los sistemas de bases de datos de alto rendimiento ejecutándose en grandes sistemas.

 ARQUITECTURA DE BASES DE DATOS
CLIENTE/SERVIDOR
Cualquier LAN (red de área local) puede ser considerada como un sistema cliente/servidor, desde el momento en que el cliente solicita servicios como datos, ficheros o imprimir desde el servidor. 

Un sistema cliente/servidor es aquel en el que uno o más clientes y uno o más servidores, conjuntamente con un sistema operativo subyacente y un sistema de comunicación entre procesos, forma un sistema compuesto que permite cómputo distribuido, análisis, y presentación de los datos.

Funciones del cliente

  • Administrar la interfaz gráfica de usuario. 
  • Aceptar datos del usuario.  
  • Procesar la lógica de la aplicación. 
  • Generar las solicitudes para la base de datos. 
  • Transmitir las solicitudes de la base de datos al servidor. 
  • Recibir los resultados del servidor. 
  • Dar formato a los resultados.

 Funciones del servidor

  • Aceptar las solicitudes de la base de datos de los clientes. 
  • Procesar dichas solicitudes. 
  • Dar formato a los resultados y transmitirlos al cliente. 
  • Llevar a cabo la verificación de integridad. 
  • Mantener los datos generales de la base de datos. 
  • Proporcionar control de acceso concurrente. 
  • Llevar a cabo la recuperación. 
  • Optimizar el procesamiento de consultas y actualización.
ARQUITECTURA DE BASES DE DATOS
DISTRIBUIDAS

Un sistema de computación distribuida consiste en un conjunto de computadores (que no necesariamente tienen que ser homogéneos), que están interconectados entre sí formando una red, y que cooperan para realizar una determinada tarea.
Podemos definir una base de datos distribuida (BDD o DDB ‘Distributed Database System) como aquella cuyos datos están repartidos entre más de una máquina.
Un sistema de gestión de bases de datos distribuidas (SGBDD o DDBMS) como el software que gestiona una base de datos distribuida haciendo que la distribución de los datos sea transparente al usuario, es decir, los usuarios actúan como si todo estuviese junto en una sola base de datos.
En la arquitectura distribuida el SGBD y la BD no están asociados a un determinado ordenador, sino a una red cuyos nodos se reparten las funciones.
Características de un SGBDD
  • Una colección de datos compartidos y relacionados lógicamente. 
  • Los datos están divididos en fragmentos. 
  • Los fragmentos se pueden duplicar. 
  • Los fragmentos se colocan en varios emplazamientos (computadores). 
  • Dichos emplazamientos están conectados por una red. 
  • Los datos de cada emplazamiento están bajo el control de un SGBD. 
  • El SGBD en cada emplazamiento puede manejar aplicaciones locales autónomamente. 
  • Cada SGBD participa en al menos una aplicación global. 
Esquema conceptual global
El esquema conceptual global es la descripción lógica de la base de datos completa, como si no 
estuviera distribuida.
Esquemas de fragmentación y
localización
El esquema de fragmentación es una descripción de cómo los datos están particionados 
lógicamente.
El esquema de localización es una descripción de dónde están localizados los datos. El esquema 
de localización tiene en cuenta cualquier replicación. 

 Esquemas locales
Cada SGBD local tiene su propio conjunto de esquemas. Los esquemas conceptual e interno
locales corresponden a los equivalentes de la arquitectura ANSI-SPARC.

 


La arquitectura ANSI / SPARC se divide en 3 niveles denominados:

1. EL NIVEL INTERNO es el más cercano al almacenamiento físico. Es el que se ocupa de la forma como se almacenan físicamente los datos. (DBA)

2. EL NIVEL EXTERNO es el más cercano a los usuarios, es decir, es el que se ocupa de la forma como los usuarios individuales perciben los datos. REPRESENTACIONES, PUEDE HACER TANTAS VISIONES COMO USUARIOS PUEDA TENER UNA BD. (N. VISIÓN)

3. EL NIVEL CONCEPTUAL es un nivel de mediación entre los otros dos. (TRABAJA DEFINIENDO ESTRUCTURAS DE ALMACENAMIENTO EL DBA). 

DESCARGAR ARCHIVO EN POWER POINT

DISEÑO DE BASE DE DATOS

INSTITUTO TECNOLÓGICO

DE LOS MOCHIS 

LIC. INFORMATICA

 

ALUMNOS: 

LEYVA RODRIGUEZ JULIO CESAR 

SOTELO CASTILLO VICTOR RAUL

ENRRIQUE CAMARGO VALDEZ

 

MATERIA:

SISTEMAS DE INFORMACION II

DOCENTE:  

JULIAN GARIBALDI

INTRODUCCIÒN
Hoy en día las empresas manejan una gran cantidad de datos. Cualquier empresa que se precie debe tener almacenados todos estos datos en una base de datos para poder realizarlos mediante una aplicación profesional; sin esta funcionalidad resultaría imposible tratar y manejar en su totalidad los datos que leva a cabo la empresa y se perdería un tiempo y un dinero muy valiosos.
Uno de los pasos cruciales en la construcción de una aplicación que maneje una base de datos, es sin duda, el diseño de la base de datos.
Si las tablas no son definidas apropiadamente, podemos tener muchos dolores de cabeza al momento de ejecutar consultas a la base de datos para tratar de obtener algún tipo de información.
No importa si nuestra base de datos tiene sólo 20 registros, o algunos cuantos miles, es importante asegurarnos que nuestra base de datos está correctamente diseñada para que tenga eficiencia y que se pueda seguir utilizando por largo del tiempo.
En este artículo, se mencionarán algunos principios básicos del diseño de base de datos y se tratarán algunas reglas que se deben seguir cuando se crean bases de datos.
Dependiendo de los requerimientos de la base de datos, el diseño puede ser algo complejo, pero con algunas reglas simples que tengamos en la cabeza será mucho más fácil crear una base de datos perfecta para nuestro siguiente proyecto.
Diseño de Bases de Datos
Son muchas las consideraciones a tomar en cuenta al momento de hacer el diseño de la base de datos, quizá las más fuertes sean:
  • La velocidad de acceso.
  • El tamaño de la información.
  • El tipo de la información.
  • Facilidad de acceso a la información.
  • Facilidad para extraer la información requerida.
  • El comportamiento del manejador de bases de datos con cada tipo de información.
  • La velocidad de acceso.
  • El tamaño de la información.
  • El tipo de la información.
  • Facilidad de acceso a la información.
  • Facilidad para extraer la información requerida.
  • El comportamiento del manejador de bases de datos con cada tipo de información.

   
OBJETIVOS DEL DISEÑO DE BASES DE DATOS
Almacenar Solo La Información Necesaria
A menudo pensamos en todo lo que quisiéramos que estuviera almacenado en una base de datos y diseñamos la base de datos para guardar dichos datos. Debemos de ser realistas acerca de nuestras necesidades y decidir qué información es realmente necesaria.
Frecuentemente podemos generar algunos datos sobre la marcha sin tener que almacenarlos en una tabla de una base de datos. En estos casos también tiene sentido hacer esto desde el punto de vista del desarrollo de la aplicación.
Frecuentemente podemos generar algunos datos sobre la marcha sin tener que almacenarlos en una tabla de una base de datos. En estos casos también tiene sentido hacer esto desde el punto de vista del desarrollo de la aplicación.

Normalizar la Estructura de las Tablas. 

Podríamos decir que estos son los principales objetivos de la normalización:

  • Controlar la redundancia de la información.
  • Evitar pérdidas de información.
  • Capacidad para representar toda la información.
  • Mantener la consistencia de los datos.

Seleccionar el Tipo de Dato Adecuado.

 Una vez identificadas todas las tablas y columnas que necesita la base de datos, debemos determinar el tipo de dato de cada campo. Existen tres categorías principales que pueden aplicarse prácticamente a cualquier aplicación de bases de datos:
  • Texto
  • Números
  • Fecha y hora
 Utilizar Índices Apropiadamente
Los índices son un sistema especial que utilizan las bases de datos para mejorar su rendimiento global. Dado que los índices hacen que las consultas se ejecuten más rápido, podemos estar incitados a indexar todas las columnas de nuestras tablas.

Sin embargo, lo que tenemos que saber es que el usar índices tiene un precio. Cada vez que hacemos un INSERT, UPDATE, REPLACE, o DELETE sobre una tabla, MySQL tiene que actualizar cualquier índice en la tabla para reflejar los cambios en los datos.
Usar Tablas Temporales
Cuando estamos trabajando con tablas muy grandes, suele suceder que ocasionalmente necesitemos ejecutar algunas consultas sobre un pequeño subconjunto de una gran cantidad de datos. En vez de ejecutar estas consultas sobre la tabla completa y hacer que MySQL encuentre cada vez los pocos registros que necesitamos, puede ser mucho más rápido seleccionar dichos registros en una tabla temporal y entonces ejecutar nuestras consultas sobre esta tabla. 

Usar Tablas Temporales

Una tabla temporal existe mientras dure la conexión a MySQL. Cuando se interrumpe la conexión MySQL remueve automáticamente la tabla y libera el espacio que ésta usaba.

Recomendaciones

  • Utilizar caracteres alfanuméricos.
  • Limitar los nombres a menos de 64 caracteres (es una restricción de MySQL).
  • Utilizar el guión bajo (_) para separar palabras.
  • Utilizar palabras en minúsculas (esto es más una preferencia personal que una regla).
  • Los nombres de las tablas deberían ir en plural y los nombres de las columnas en singular (es igual una preferencia personal).
  • Limitar los nombres a menos de 64 caracteres (es una restricción de MySQL).
  • Utilizar el guión bajo (_) para separar palabras.
  • Utilizar palabras en minúsculas (esto es más una preferencia personal que una regla).
  • Los nombres de las tablas deberían ir en plural y los nombres de las columnas en singular (es igual una preferencia personal).
  • Utilizar las letras ID en las columnas de clave primaria y foránea.
  • En una tabla, colocar primero la clave primaria seguida de las claves foráneas.
  • Los nombres de los campos deben ser descriptivos de su contenido.
  • Los nombres de los campos deben ser unívocos entre tablas, excepción hecha de las claves.

Página 3 de 3

Creado con WordPress & Tema de Anders Norén