Documente Academic
Documente Profesional
Documente Cultură
DESARROLLO DE PORTALES
GUIA DE PHP5
ELABORADO POR:
• Conceptos Básicos
• Requerimientos
• Tipos de datos
• Variables
• operadores
• Script de un programa en PHP
Capitulo2.-
• Instrucciones condicionales
• Instrucciones repetitivas
• Objetos
• Arreglos y Matrices
• Funciones
Capitulo 3.-
• Funciones Fecha
• Funciones de Cadena
• Funciones Numéricas
Capitulo 4.-
• Mysql
• Creación de BDD y Tablas
• Creaciones de Claves primarias y foraneas
• Conexión con la Base de Datos
• Lectura de Tabla
• Adicion de registros
• Eliminación
• Actualizacion
• Clases en PHP
Capitulo 5.-
• Aplicaciones Graficas
• Funciones y Metodos graficos
• Aplicaciones y ejercicios
Capitulo 7.-
El lenguaje PHP es un lenguaje de programación de estilo clásico, con esto quiero decir que
es un lenguaje de programación con variables, sentencias condicionales, bucles,
funciones.... No es un lenguaje de marcas como podría ser HTML, XML o WML. Está mas
cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.
Pero a diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en
el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por
ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el
resultado enviado al navegador. El resultado es normalmente una página HTML pero
igualmente podría ser una pagina WML.
Ahora para poder ver las paginas directamente desde el dreamweaver sin necesidad de entrar
al navegador web vamos a configurar un SERVIDOR DE PRUEBA
En Modo de
Servidor
escogemos el tipo
de programación a
usar.
En acceso
escogemos el tipo
de acceso que
tendremos en este
caso LOCAL
RED
En carpeta de
servidor se mostrara la carpeta que escogimos para nuestro sitio.
Desarrollo de Portales -8- Ing.Alberto Moreno C.
En PREFIJO DE URL debemos de poner la ruta que escribiremos en el navegador web para
acceder a nuestro sitio.
En este caso http://localhost sale por defecto debiendo aumentar el nombre de la carpeta
(CLASE1).
Al final quedaría http://localhost/clase1
Una vez configurado nuestro sitio vamos a crear nuestra pagina PHP así que nos vamos al
menú Archivo Nuevo
Al crear una pagina lo mas probables es que trabajemos en la vista de Código ya que vamos a
programar en la pagina.
La programación PHP se mezcla con el HTML es decir dentro de la pagina podemos poner
cualquier cosa en PHP.
Para escribir código PHP dentro de una página html, tenemos varias alternativas:
• Incluir el código entre <? y ?>
• Incluir el código entre <?PHP y ?>
• Incluir el código entre bloques <SCRIPT LANGUAGE="php"> y </SCRIPT>
En el ejemplo anterior lo que se ha programado en PHP es ECHO HOLA UCSS ;
echo .- es una instrucción que permite escribir o visualizar algo en una pagina
Desarrollo de Portales -9- Ing.Alberto Moreno C.
NOTA IMPORTANTE .- Al final de cada instrucción va punto y coma. Además las palabras
reservadas son sensibles a mayúsculas y minúsculas (Casi todas las palabras reservadas
en PHP se escriben en minúsculas)
L
Una vez que ya tenemos instalados PHP y MySQL, y el servidor Apache configurado para
usarlos, podemos comenzar a escribir nuestro primer Script en PHP.
<html>
<body>
<?php
$myvar = "Hola Mundo. Este es mi primer script en PHP";
//Esto es un comentario
echo $myvar;
?>
</body>
</html>
Una vez escrito esto lo salvamos en un fichero con la extension php3, y lo colocamos en
nuestro servidor, http://mi_servidor/php/test.php3. Ahora si ponemos esta URL en nuestro
navegador veremos una linea con el texto "Hola Mundo. Este es mi primer script en
PHP".
Lo primero que apreciamos en el script son sus delimitadores. En la primera línea del script
vemos <?php que nos indica que comienza un script en PHP, y en la última colocamos ?>
para indicar el final del script. Hay que destacar que todas las líneas que se encuentre entre
estos delimitadores deben acabar en punto y coma, excepto las sentencias de control (if,
swich, while, etc.).
Como en toda programación, es importante poner muchos comentarios, para lo cual si
queremos comentar una sola línea tenemos que poner al principio de la línea //, si lo que
queremos es comentar varias utilizaremos los delimitadores /* - */.
Para que el servidor envie texto utilizaremos la instrucción echo, aunque también podemos
utilizar printf de uso similar al del C oPerl.
Finalmente, vemos que la palabra myvar comienza con el signo dólar ($) . Este símbolo le
indica a PHP que es una variable. Nosotros le hemos asignado un texto a esta variable,
pero también pueden contener números o arrays. Es importante recordar que todas las
variables comienza con el signo dólar.
<?php
echo "Parte de PHP<br>";
for($i=0;$i<10;$i++)
{
echo "Linea ".$i."<br>";
}
?>
</body>
</html>
El código PHP ejecutado tiene dos partes: la primera imprime "Parte de PHP" y la
segunda es un bucle que se ejecuta 10 veces de 0 a 9, por cada vez que se
ejecuta se escribe una línea, la variable $i contiene el número de línea que se
está escribiendo.
No importa si no entiende muy bien el programa este ejemplo solo es para
ilustrar como se intercala el código HTML y el código PHP.
Variables
En este ejemplo hemos definido tres variables, $a, $b y $c y con la instrucción echo hemos
impreso el valor que contenían, insertando un salto de línea entre ellas.
Existen 2 tipos de variables, las variables locales que solo pueden ser usadas dentro de
funciones y las variables globales que tienen su ámbito de uso fuera de las funciones,
Desarrollo de Portales -11- Ing.Alberto Moreno C.
podemos acceder a una variable global desde una función con la instrucción global
nombre_variable;
Operadores Aritméticos
Los operadores de PHP son muy parecidos a los de C y JavaScript, si usted conoce estos lenguajes
le resultaran familiares y fáciles de reconocer.
Estos son los operadores que se pueden aplicar a las variables y constantes numéricas.
Comparación
Los operadores de comparación son usados para comparar valores y así poder tomar decisiones.
Desarrollo de Portales -12- Ing.Alberto Moreno C.
Operador Nombre Ejemplo Devuelve cierto cuando:
== Igual $a == $b $a es igual $b
!= Distinto $a != $b $a es distinto $b
Operadores Lógicos
Los operadores lógicos son usados para evaluar varias comparaciones, combinando los
posibles valores de estas.
Operador Nombre Ejemplo Devuelve cierto cuando:
Devuelve verdadero cuando ambas condiciones son
&& Y (7>2) && (2<4)
verdaderas.
Devuelve verdadero cuando ambas condiciones son
and Y (7>2) and (2<4)
verdaderas.
Devuelve verdadero cuando al menos una de las
|| O (7>2) || (2<4)
dos es verdadera.
Devuelve verdadero cuando al menos una de las
or O (7>2) or (2<4)
dos es verdadera.
! No ! (7>2) Niega el valor de la expresión.
Desarrollo de Portales -13- Ing.Alberto Moreno C.
<!-- Manual de PHP de WebMoreno.com -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
$c = 3;
echo ($a == $b) && ($c > $b),"<br>";
echo ($a == $b) || ($b == $c),"<br>";
echo !($b <= $c),"<br>";
?>
</body>
</html>
Condicionales
switch($posicion) {
case "arriba": // Bloque 1
echo "La variable contiene";
echo " el valor arriba";
break;
case "abajo": // Bloque 2
echo "La variable contiene";
echo " el valor abajo";
break;
default: // Bloque 3
echo "La variable contiene otro valor";
echo " distinto de arriba y abajo";
}
?>
</body>
</html>
Con la sentencia switch podemos ejecutar unas u otras instrucciones dependiendo del valor
de una variable, en el ejemplo anterior, dependiendo del valor de la variable $posicion se
ejecuta el bloque 1 cuando el valor es "arriba", el bloque 2 cuando el valor es "abajo" y el
bloque 3 si no es ninguno de los valores anteriores.
<?
Desarrollo de Portales -15- Ing.Alberto Moreno C.
function cambia()
{
global $cad; // observe que el valor sera cambiado
$cad="estamos ahora en la funcion";
}
function cuenta()
{
static $a=0;
$b=0;
$a++; $b++;
echo "<br> valor de a=$a ..b=$b";
}
echo "valores <br>";
cuenta();
cuenta();
cuenta();
$cad="estamos en la pag. principal <br>";
echo $cad;
cambia();
echo $cad;
$n=45.566;
//a diferencia de echo printf da un valor con formato
printf("<br><br>valor de n=%5.2f",$n);
?>
La salida sera:
Colocar estilos en una pagina, o tambien puede efectuarse en una pagina aparte de hoja de
estilos, esto nos van a permitir colocar atributos a diferentes etquitas en HTML
Ejemplo: Generar valores aleatorios entre 100-2000, si el valor generado es menos de 800
colocar fondo Rojo con letras blancas
Si es esta entre 800 y menor de 1000 fondo gris y letras negras
Si esta entre 1000 y 2000 fondo verde y letras negras
Desarrollo de Portales -16- Ing.Alberto Moreno C.
<title>Tabla con datos aleatorios </title>
</head>
<style type="text/css">
.estilo1 { background-color:#00FF00; color:#000000} //fondo verde color de car rojo
.estilo2 {background-color:#CCCCCC; color:#000000}//fondo plomo letras negras
.estilo3 {background-color:#FF0000; color:#FFFFFF} // Fondo Rojo Letras Blancas
</style>
<body bgcolor="#FFFFCC">
<center>
<form action="" >
<input type=submit value=Generar>
</form>
<table border=1>
<tr class="estilo2"><td> <p>Mes</p>
<td>Ingresos<td>Observacion</tr>
<?
for($m=1;$m<=12;$m++)
{
$mon=rand(100,2000);
if($mon<800)
//$obs="<span class=estilo1>Critico</span>";
{
$obs="critico";
echo "<tr class=estilo3>";
}
elseif($mon<1000)
//$obs="<span class=estilo2>Baja</span>";
{
$obs="Regular";
echo "<tr class=estilo2>";
}
else
//$obs="<span class=estilo1>regular</span>";
{
$obs ="bueno";
echo "<tr class=estilo1>";
}
echo "<td>$m<td>$mon<td>$obs";
}
?>
</body>
</html>
Desarrollo de Portales -17- Ing.Alberto Moreno C.
}
}
?>
Desarrollo de Portales -18- Ing.Alberto Moreno C.
</table>
<p> </p>
</blockquote>
</blockquote>
</body>
</html>
Programa `para obtener la hora del sistema, y que muestre un saludo de acuerdo a la hora en
que nos encontramos:
<?
echo "hoy es :" . date("d/m/Y");
$t=date("H:i:s");
echo "<br>hora :$t <br>";
if( $t<"12:00:00" )
?>
La salida será:
VARIABLES DE SISTEMA
Dada su naturaleza de lenguaje de lado servidor, PHP es capaz de darnos acceso a toda
una serie de variables que nos informan sobre nuestro servidor y sobre el cliente. La
información de estas variables es atribuida por el servidor y en ningún caso nos es posible
modificar sus valores directamente mediante el script.
$_ENV -- Contiene las variables del sistema.
$_GET -- Contiene las variables en el "query string" incluyendo los formularios GET.
$_POST -- Contiene las variables enviadas des de un formulario POST.
$_COOKIE -- Contiene todas las variables de las Cookies.
$_SERVER -- Contiene todas las variables de servidor, tales como
HTTP_USER_AGENT.etc.
$_REQUEST -- Contiene todo dentro de $_GET, $_POST y $_COOKIE.
$_SESSION -- Contiene todas las variables de sesiones registradas.
$_SERVER
Existen multitud de variables de este tipo, algunas sin utilidad aparente y otras realmente
interesantes y con una aplicación directa para nuestro sitio web. Aquí algunas de las
propiedades de estas variables
Variable Descripción
Nos devuelve una cadena con la URL del script que está
PHP_SELF siendo ejecutado. Muy interesante para crear botones para
recargar la página.
Ejemplo:
<body>
<?php
echo "<b>Navegador web : ".$_SERVER['HTTP_USER_AGENT']."<br>";
echo "<b>IP del Vistante : ".$_SERVER['REMOTE_ADDR']."<br>";
echo "<b>Nombre del Servidor : ".$_SERVER['SERVER_NAME']."<br>";
Desarrollo de Portales -21- Ing.Alberto Moreno C.
?>
</body>
Resultado:
Ejemplo con formularios: Pasando valores a otros formularios (Los datos pueden ser
enviados por el metodo POST o GET)
Formulario.html
<!-- formulario.html -->
<HTML>
<HEAD>
<TITLE>Formulario de Recepción de Pedidos</TITLE>
</HEAD>
<BODY>
<H1 ALIGN="CENTER">Recepción de Pedidos</H1>
<FORM ACTION="procesar1.php">
Nombre Usuario:
<INPUT TYPE="text" NAME="NombreUsuario" SIZE="20"><BR>
Listado de libros disponibles:
<UL>
<LI>Libro A - (Precio = 10) - Unidades:
<INPUT TYPE="text" NAME="UnidadesA" SIZE="2">
</LI>
<LI>Libro B - (Precio = 12) - Unidades:
<INPUT TYPE="text" NAME="UnidadesB" SIZE="2">
</LI>
</UL>
<P ALIGN="CENTER"><INPUT TYPE="submit" VALUE="Enviar"></P>
</FORM>
</BODY>
</HTML>
Desarrollo de Portales -22- Ing.Alberto Moreno C.
Objetivo.- Con estos primeros ejercicios , le va ayudar a familiarizarse con este lenguaje ,
desde ya cree su sitio para colgar sus páginas, para la respectiva presentación en
www.tripod.com
1.- Ingresar como datos , la dimensiones del terreno( largo y ancho) y el precio por metro
cuadrado , y un check box (da Cuota inicial) en una página htm , luego mostrar los datos
calculados como : El área del Terreno, El Precio Total , Cuota inicial y el Pago Mensual.
Condición.- El pago es en dos años si se da una cuota inicial(15% del precio del terreno se
hará un descuento del 3% del precio)
Precios:
Monitor 15 à$ 60 , 17 à$80
Procesador : 2200 Mhz à$120 , 1800 à $105 , 1200 à$80 ,800à $70
Memoria : 128à $60 , 256à$80 , 512 à$100
4.- Dos atletas parten de dos puntos diferentes A y B separados una distancia D , con
velocidades diferentes ( la velocidad del atleta A tiene que ser mayor al de B) , se pide
mostrar una tabla de tiempo y distancias recorridas por el atleta A y B cada 3 segundos ,
como también en que tiempo alcanza el atleta A al B
Distancia Recorridas
Velocidad A m/seg
Velocidad B m/seg Tiempo Distancia x A Distanciax B
Distancia de separación
Enviar <<Retornar
4.-El gobierno tiene un plan para vivienda de los docentes , bajo las siguientes condiciones :
Si los ingresos del comprador son menores a $500 , dará como cuota inicial del 2% del costo
de la casa y el resto lo distribuirá en pago mensuales, a pagar en diez años; Si los ingresos
del comprador es mayor a $500 la cuota inicial será del 5% y el resto se pagara en pago
mensuales de siete años
Se pide mostrar la cuota inicial y el pago mensual del comprador, el dato de ingreso es el
costo de la casa y el ingreso del trabajador.
Desarrollo de Portales -25- Ing.Alberto Moreno C.
5.- Inabec ofrece prestamos a todos los docentes para comprar computadoras, o seguir
estudios de especialización , teniendo como datos de entrada :
Consideraciones:
Ø Los intereses de acuerdo a los meses son para 6 m -> 20% , 12m -> 35% y 18m ->
50%
Ø Las cuotas mensuales son constantes
Ø El saldo disminuye cada mes hasta cero
6.- Elabore una Pagina de que permita establecer los enlaces con otras paginas.
Validar estos datos en una pagina PHP
Colocar las contraseñas en una arreglo , si existe
mostrara el menú que une todas las paginas.
Uso de Constantes :
Por ejemplo para obtener la versión del PHP la ruta donde esta instalado
<HTML>
<HEAD><TITLE>Constantes de PHP</TITLE></HEAD>
<BODY>
<?php
echo "Ejecuto la versión de PHP: ",PHP_VERSION,"<BR>\n";
echo "El sistema operativo es: ",PHP_OS,"<BR>\n";
echo "Estoy en el fichero <B>",__FILE__," línea ",__LINE__,"</B>";
?>
</BODY>
</HTML>
Desarrollo de Portales -26- Ing.Alberto Moreno C.
Bucles
Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un
conjunto de instrucciones mientras se cumpla una condición.
Sentencia while
<?php
while (condición)
{
intrucciones a ejecutar.
}
?>
Mientras la condición sea cierta se reiterará la ejecución de las instrucciones que están
dentro del while.
<!-- Manual de PHP de WebMoreno.com -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Inicio<BR>
<?php
$i=0;
while ($i<10)
{
echo "El valor de i es ", $i,"<br>";
$i++;
}
?>
Final<BR>
</body>
</html>
Sentencia for
<?php
for (inicial ; condición ; ejecutar en iteración)
Desarrollo de Portales -27- Ing.Alberto Moreno C.
{
intrucciones a ejecutar.
}
?>
Resultado
Inicio
El valor de i es 0
El valor de i es 1
El valor de i es 2
El valor de i es 3
El valor de i es 4
El valor de i es 5
El valor de i es 6
El valor de i es 7
El valor de i es 8
El valor de i es 9
Final
La instrucción for es la instrucción de bucles más completa. En una sola instrucción nos
permite controlar todo el funcionamiento del bucle.
El primer parámetro del for, es ejecutado la primera vez y sirve para inicializar la variable del
bucle, el segundo parámetro indica la condición que se debe cumplir para que el bucle siga
ejecutándose y el tercer parámetro es una instrucción que se ejecuta al final de cada
iteración y sirve para modificar el valor de la variable de iteración.
Salida
Hasta ahora hemos usado la instrucción echo para realizar salida a pantalla, esta
instrucción es bastante limitada ya que no nos permite formatear la salida. En esta página
veremos la instrucción printf que nos da mucha más potencia.
Sentencia printf
<?php
printf(cadena formato, variable1, variable2...);
?>
Desarrollo de Portales -28- Ing.Alberto Moreno C.
La cadena de formateo indica cómo se han de representar las valores que posteriormente le
indicaremos. La principal ventaja es que además de poder formatear los valores de salida,
nos permite intercalar texto entre ellos.
<!-- Manual de PHP de WebMoreno.com -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
printf("El numero dos con diferentes formatos: %d %f %.2f",2,2,2);
?>
</body>
</html>
La cadena de formato puede incluir una seria de carácteres especiales que indican como
formatear las variables que se incluyen en la instrucción.
Elemento Tipo de variable
%s Cadena de carácteres.
%c Carácter ASCII.
Manejo de cadenas
Desarrollo de Portales -29- Ing.Alberto Moreno C.
Dado el uso del lenguaje PHP el tratamiento de cadenas es muy importante, existen
bastantes funciones para el manejo de cadenas, a continuación explicaremos las más
usadas.
$resultado=sprintf("8x5 = %d <br>",8*5);
echo $resultado,"<br>";
?>
</body>
</html>
Resultado
5
Esto
es
una
prueba
8x5 = 40
Desarrollo de Portales -30- Ing.Alberto Moreno C.
Salida
Ejemplo.- Para ver el nombre del fichero,del servidor y el Servidor Web instalado
Desarrollo de Portales -31- Ing.Alberto Moreno C.
Objetos
PHP permite la construcción de objetos con atributos y métodos propios , con herencia y
redefinición de funciones.
Por ejemplo creamos una clase llamada persona , que determina todas las características de
los objetos que van a pertenecer a dicha clase . Para ello en la definición de la clase se
detallan tanto loa atributos(variables de la clase que tomaran un determinado valor en cada
objeto de dicha clase. Como los métodos (mediante una función para cada método ) la palabra
reservada para la definición es class.
Ejemplo 11.
salida:
Desarrollo de Portales -34- Ing.Alberto Moreno C.
Arreglos o Matrices
Una matriz es una serie de varibles agrupados con un nombre comín , cada uno se diferencia
del otro mediante su indice:
Ejem:
$matriz[1]= Ana ;
$matriz[2]= Jose
Cada elemento es accesado por su indice
<!--media.php -->
<HTML>
Desarrollo de Portales -35- Ing.Alberto Moreno C.
<HEAD>
<TITLE>Cálculo de la media</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>Cálculo de la media</H1>
<HR>
<?php
function listar($matriz)
{
echo "<TABLE BORDER=3>\n";
for ($i = 0; $i < count($matriz); $i++)
{
echo "<TR>\n";
echo "<TD>Elemento $i</TD>\n";
echo "<TD>$matriz[$i]</TD>\n";
echo "</TR>\n";
}
echo "</TABLE>\n";
}
function media ()
{
$limite = func_num_args();
$acumulado = 0;
echo "<TABLE WIDTH=175>\n";
echo "<CAPTION ALIGN=TOP>Numero de argumentos: $limite
</CAPTION>\n";
for ($i = 0; $i < $limite; $i++)
{
echo "<TR>\n";
echo "<TD ALIGN=CENTER>Parámetro $i</TD>\n";
echo "<TD align=center>", func_get_arg($i), "</TD>\n";
echo "</TR>\n";
$acumulado += func_get_arg($i);
}
echo "</TABLE>\n";
listar(func_get_args());
return $acumulado/$limite;
}
$valor_media = media(12, 13, 15);
echo "<H2>Valor de la media: ", $valor_media, " </H2>\n";
?>
</CENTER>
</BODY>
</HTML>
Nota.-
func_get_arg
Desarrollo de Portales -36- Ing.Alberto Moreno C.
(PHP 4 )
func_get_arg -- Devuelve un elemento de la lista de argumentos.
ejemplo 10.. Cuando cada elemento de un arreglo tiene asociado otro elemento o indice
llamdo clave:
Opcionalmente podemos pasarle parámetros a las funciones que se trataran como variable
locales y así mismo podemos devolver un resultado con la instrucción return valor; Esto
produce la terminación de la función retornando un valor.
echo media_aritmetica(4,6),"<br>";
echo media_aritmetica(3242,524543),"<br>";
?>
</body>
</html>
Resultado
5
263892.5
function listar($matriz)
{
Desarrollo de Portales -39- Ing.Alberto Moreno C.
echo "<TABLE BORDER=3 ALIGN=CENTER>\n";
while (list($clave, $valor) = each($matriz))
{
echo "<TR>\n";
echo "<TD>$clave</TD>\n";
echo "<TD>$valor</TD>\n";
echo "</TR>\n";
}
echo "</TABLE>\n";
}
function frecuencia()
{
echo "<TABLE BORDER=3 ALIGN=CENTER>\n";
$matriz2 = array_count_values(func_get_arg(0));
// Listar el contenido del array 2
while ($elemento = each($matriz2))
{
echo "<TR>\n";
echo "<TD>Clave: $elemento[0]</TD>\n";
echo "<TD>Valor: $elemento[1]</TD>\n";
echo "</TR>\n";
}
echo "</TABLE>\n";
}
$func = 'listar';
$func($matriz);
$func = 'ksort';
$func($matriz);
$func = 'listar';
$func($matriz);
$func = 'frecuencia';
$func($matriz);
?>
Funciones Fecha:
Ejemplos:
Desarrollo de Portales -40- Ing.Alberto Moreno C.
Funciones Empleadas:
Descripción
Devuelve una cadena formateada de acuerdo con la cadena de formato dada, utilizando el
valor de timestamp dado o la hora local actual si no hay parámetro.
Se reconocen los siguientes caracteres en la cadena de formato:
• a - "am" o "pm"
• A - "AM" o "PM"
• d - día del mes, dos dígitos con cero a la izquierda; es decir, de "01" a "31"
• D - día de la semana, en texto, con tres letras; por ejemplo, "Fri"
• F - mes, en texto, completo; por ejemplo, "January"
• h - hora, de "01" a "12"
• H - hora, de "00" a "23"
• g - hour, sin ceros, de "1" a "12"
• G - hour, sin ceros; de "0" a "23"
• i - minutos; de "00" a "59"
• j - día del mes sin cero inicial; de "1" a "31"
• l ('L' minúscula) - día de la semana, en texto, completo; por ejemplo, "Friday"
• L - "1" or "0", según si el año es bisiesto o no
• m - mes; de "01" a "12"
• n - mes sin cero inicial; de "1" a "12"
• M - mes, en texto, 3 letras; por ejemplo, "Jan"
• s - segundos; de "00" a "59"
• S - sufijo ordinal en inglés, en texto, 2 caracteres; por ejemplo, "th", "nd"
• t - número de días del mes dado; de "28" a "31"
Desarrollo de Portales -44- Ing.Alberto Moreno C.
• U - segundos desde el valor de 'epoch'
• w - día de la semana, en número, de "0" (domingo) a "6" (sábado)
• Y - año, cuatro cifras; por ejemplo, "1999"
• y - año, dos cifras; por ejemplo, "99"
• z - día del año; de "0" a "365"
• Z - diferencia horaria en segundos (de "-43200" a "43200")
Los caracteres no reconocidos se imprimen tal cual. El formato "Z" siempre devuelve "0" en
la función gmdate()()
Ejemplo 1. Ejemplo de date()
print (date("l dS of F Y h:i:s A"));
print ("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));
Es posible usar date() y mktime() juntas para obtener fechas futuras o pasadas.
Ejemplo:
// Proceso Principal
$a = array('AZUL','VERDE','ROJO','NEGRO','MARRON');
$b = array('Administracion','Contabilidad','Computacion');
$c= array(23,45,67,45,45,78,8,34,57,32,23,43,12,123,234);
echo CreaCombo("cboPRO", $a)."<br>";
echo CreaCombo("cboCAR", $b);
echo CreaCombo("cbopre", $c);
?>
</body>
</html>
Desarrollo de Portales -46- Ing.Alberto Moreno C.
Ejemplo3.- Elaboración de Una Factura simple , los valores de entrada se conservan después
de una ida y vuelta al servidor.
<body>
<? function ImprimeFactura($pro1,$pro2,$can1,$can2,$pre1,$pre2,$sub1,$sub2,$stotal,$igv,$total){
?>
<form method="get" action="factura.php">
<table width="500" border="1" align="center" cellpadding="1" cellspacing="1" bgcolor="#FFFFCC">
<tr>
<td><div align="center">
<h1>FACTURA</h1>
</div></td>
</tr>
<tr>
<td><table width="479" height="69" border="0" align="center" cellpadding="1" cellspacing="1">
<tr>
<td><div align="center"><strong>PRODUCTO</strong></div></td>
<td><div align="center"><strong>CANTIDAD</strong></div></td>
<td><div align="center"><strong>PRECIO</strong></div></td>
<td><div align="center"><strong>SUB-TOTAL</strong></div></td>
</tr>
<tr>
<td><input name="pro1" value=<? echo $pro1; ?>></td>
<td><input name="can1" value=<? echo $can1; ?>></td>
<td><input name="pre1" value=<? echo $pre1; ?>></td>
<td><input name="stot1" value=<? echo $sub1; ?>></td>
Desarrollo de Portales -47- Ing.Alberto Moreno C.
</tr>
<tr>
<td><input name="pro2" value=<? echo $pro2; ?>></td>
<td><input name="can2" value=<? echo $can2; ?>></td>
<td><input name="pre2" value=<? echo $pre2; ?>></td>
<td><input name="stot2" value=<? echo $sub2; ?>></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="367" height="55" border="0" align="right" cellpadding="1" cellspacing="1">
<tr>
<td width="78"><input type="submit" value="Calcular"></td>
<td width="282"><div align="left">
<table width="232" height="57" border="0" align="right" cellpadding="1" cellspacing="1">
<tr>
<td><strong>SUB-TOTAL</strong></td>
<td><input name="stotal" value=<? echo $stotal; ?>></td>
</tr>
<tr>
<td><strong>IGV</strong></td>
<td><input name="igv" value=<? echo $igv; ?>></td>
</tr>
<tr>
<td><strong>TOTAL</strong></td>
<td><input name="total" value=<? echo $total; ?>></td>
</tr>
</table>
</div></td>
</tr>
</table></td>
</tr>
</table>
</form>
<? } ?>
<?
if($_GET){
// Recuperar valores
$pro1 = $_GET['pro1']; $pro2 = $_GET['pro2'];
$can1 = $_GET['can1']; $can2 = $_GET['can2'];
$pre1 = $_GET['pre1']; $pre2 = $_GET['pre2'];
// Calculos
$sub1 = $can1 * $pre1; $sub2 = $can2 * $pre2;
$sumasub = $sub1 + $sub2;
$igv = $sumasub * 0.19;
$total = $sumasub + $igv;
ImprimeFactura($pro1,$pro2,$can1,$can2,$pre1,$pre2,$sub1,$sub2,$sumasub,$igv,$total);
}
else
ImprimeFactura("","","","","","","","","","","");
?>
</body>
</html>
Desarrollo de Portales -48- Ing.Alberto Moreno C.
En las lecciones anteriores hemos aprendido el uso básico de las funciones de PHP para
trabajar con MySQL. En esta lección y sucesivas vamos a ver nuevas funciones que nos
facilitan y potencian nuestras páginas web.
Por lo general, todos nuestros script tienen partes de código iguales, las funciones include(
) y require( ) nos van ahorrar muchas de estas líneas de código. Ambas funciones hacen
una llamada a un determinado fichero pero de dos maneras diferentes, con include( ),
insertamos lo que contenga el fichero que llamemos de manera literal en nuestro script,
mientras que con require( ), que decimos que el script necesitará parte de código que se
encuentra en el fichero que llama require( ).
Como todo esto es un poco lioso, veamos unos ejemplos que nos lo aclara.
<?php
include ("header.inc");
echo "Hola Mundo";
include ("footer.inc");
?>
Si tenemos en cuenta que el fichero header.inc contiene:
<html>
<body>
y el fichero footer.inc contiene:
</body>
</html>
Nuestro script sería equivalente a:
<html>
<body>
<?php
echo "Hola Mundo";
?>
</body>
</html>
Ahora veamos el script de ejemplo para la función require( ):
<?php
require ("config.inc");
include ("header.inc");
echo $cadena;
include ("footer.inc");
?>
Donde el fichero config.inc tendría algo como ésto:
<?php $cadena = "Hola Mundo";
?>
Librería
Desarrollo de Portales -49- Ing.Alberto Moreno C.
El uso de librerías es tremendamente útil, nos permiten agrupar varias funciones y variables
en un mismo fichero, de manera que luego podemos incluir esta librería en distintas páginas
y disponer de esas funciones fácilmente.
<!-- Manual de PHP de WebMoreno.com -->
<?php
function CabeceraPagina()
{
?>
<FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR>
<hr>
<?
}
function PiePagina()
{
?>
<hr>
<FONT SIZE="-1">Este es el pie de página.</FONT><BR>
<?
}
?>
Ahora vamos a crear 2 páginas que usan la librería definida anteriormente para conseguir que las dos
paginas tengan la misma cabecera y pie de pagina.
La instrucción para incluir una librería en nuestra página es include("nombre de librería")
Página 1
<BR><BR><BR><BR><BR>
fin<BR><BR>
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php include("libreria01.phtml") ?>
Desarrollo de Portales -50- Ing.Alberto Moreno C.
<?php CabeceraPagina(); ?>
completamente distinta
PRACTICA NRO 2
2.- Ingrese un conjunto de valores en una caja de texto , luego en php realizar las funciones
para determinar:
a) el valor máximo
b) El valor mínimo
c) La suma de los elementos
d) Su promedio
e) Mostrar los datos ordenados
3.- Una compañía desea pronosticar sus ventas respecto a un año, ya que las ventas son variables se
van a generar con valores aleatorios de 500 6000, las ventas que son mayores al promedio en valor
de 200 colocar un incono (carita feliz) y pintar las ventas con color azul, si esta en el rango del
promedio (+)( -) 200 colocar otro icono como se muestra en la figura y el color de letra negro, si es
menor al promedio en menos de doscientos mostrar con color rojo e icono (carita triste).
Desarrollo de Portales -52- Ing.Alberto Moreno C.
4.-crear una pagina para la venta de DVD ,Mostrar en una lista desplegables con una lista de
videos (*.avi, *.mpg) al seleccionar un video será mostrado el video seleccionado , con una
descripción pequeña del video.
(debe emplear una clase luego adaptarlo con códigos en php)
5.- realizar una pagina en php para envió de postales , Ud. Puede seleccionar otras imágenes ,
primero se mostrara una pagina HTM para seleccionar el fondo , la imagen y el mensaje
respectivo la pagina PHP compondrá la postal :
Desarrollo de Portales -53- Ing.Alberto Moreno C.
5.- Empleando funciones realizar una pagina para convertir números a letras para ello se
ingresa un valor numérico máximo de 6 dígitos.
<html>
<head>
<title>sELECCION</title>
</head>
<body>
<?php
$pais=array("Peru","Japon","Mexico");
$alumno[]=array("A001","Juana Solis","Peru");
$alumno[]=array("A002","Mirtha Torres","Peru");
$alumno[]=array("A003","Luis Perez","Japon");
$alumno[]=array("A004","Pedro Solano","Japon");
$alumno[]=array("A005","Manuel Braybar","Alemania");
$alumno[]=array("A006","Iris Montalvo","Alemania");
$alumno[]=array("A007","Cinthya Perez","Peru");
$alumno[]=array("A008","Ivette Horna","Alemania");
$alumno[]=array("A009","Mariano Marin","Mexico");
$alumno[]=array("A0010","Juan Lopez","Mexico");
?>
<form name="form1" method="post" action="">
<p>Seleccione Pais :
<select name="cbopais" onChange="form1.submit()">
<option value="">Seleccione Pais</option>
Desarrollo de Portales -55- Ing.Alberto Moreno C.
<?php
for($i=0;$i<count($pais);$i++){
if($pais[$i]==$_POST["cbopais"]){
echo "<option value='$pais[$i]' selected>$pais[$i]</option>";
}else{
echo "<option value='$pais[$i]'>$pais[$i]</option>";
}
}
?>
</select>
</p>
<table width="368" border="1">
<tr>
<td width="65"><strong>Codigo</strong></td>
<td width="189"><strong>Nombre</strong></td>
<td width="92"><strong>Pais</strong></td>
</tr>
<?php
foreach($alumno as $valor){
if($valor[2]==$_POST["cbopais"]){
echo "<tr>";
echo "<td>$valor[0]</td>";
echo "<td>$valor[1]</td>";
echo "<td>$valor[2]</td>";
echo "</tr>";
}
}
?>
</table>
</form>
</body>
</html>
</head>
<?php
$respuesta="";
$respuesta2="";
if(isset($_POST["txtn"])){
if(empty($_POST["txtn"])){
$respuesta="esta vacio";
$respuesta2=
"onLoad=\"alert('ingerse un valor');form1.txtn.focus();\"";
}else { $respuesta="ud. ha digitado ".$_POST["txtn"];
}
}
?>
<body <?php echo $respuesta2 ?>>
<div align="center">
<p>uso de empty</p>
<form name="form1" method="post" action="">
<table width="337" border="5" cellspacing="0" cellpadding="5">
<tr>
<td width="66" height="53">ingrese numero </td>
<td width="164"><input name="txtn" type="text" id="txtn"></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="verifica numero"></td>
<td><?php echo $respuesta ?></td>
</tr>
</table>
</form>
<p> </p>
</div>
</body>
</html>
Desarrollo de Portales -57- Ing.Alberto Moreno C.
3.- Seleccionar una lista de Artefacto mediante los checkbox en tiempo de ejecución y al seleccionar
uno o varios va mostrar en otra pagina los artefactos seleccionados:
CARRITO.PHP
</form>
</body>
</html>
4.- Empleando una funcion que permita similar un combo luego al seleccionar un curso que
afecte al otro combo( lista de cursos)
<body>
<?
function combo($arr,$nom,$sel)
{
$cad="<select name=$nom onchange='submit();'>";
for($a=0;$a<count($arr);$a++)
Desarrollo de Portales -60- Ing.Alberto Moreno C.
{
if($sel==$arr[$a])
$cad=$cad ."<option selected>$arr[$a]";
else
$cad=$cad ."<option >$arr[$a]";
}
$cad .= "</select>";
return $cad;
$vec1=array("Web","BDD","Office");
$vec2=array("ASP","PHP","Macromedia");
$vec3=array("oracle","SQL server","Iseris","Informix");
$vec4=array("Word","Execel","POwer Point");
<?
if(isset($_POST['cur'])) // si la variable esta en memoria
{
echo "<br> Ud selecciono el curso de : ".$_POST['cur'];
}
?>
</body>
</html>
Desarrollo de Portales -61- Ing.Alberto Moreno C.
Envio de emails
PHP nos ofrece la posibilidad de enviar emails de una manera sencilla y fácil, para ello el lenguaje
nos proporciona la instrucción mail( )
<?php
mail(destinatario, tema, texto del mensaje);
?>
email.php
<!-- Manual de PHP de WebMoreno.com -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de envio de email</H1>
<? if ($direccion!=""){
if ($tipo=="plano"){
// Envio en formato texto plano
Si existe una consulta repetida en las listas de PHP, es la relativa al uso de las sesiones. El
uso de sesiones es un método ampliamente extendido en cualquier aplicación de cierta
entidad. Básicamente una sesión es la secuencia de páginas que un usuario visita en un
sitio web. Desde que entra en nuestro sitio, hasta que lo abandona.
El término sesión en PHP, session en inglés, se aplica a esta secuencia de navegación,
para ello crearemos un identificador único que asignamos a cada una de estas sesiones de
navegación. A este identificador de sesión se le denomina, comúnmente, como la sesión.
El proceso en cualquier lenguaje de programación podría ser algo así:
Y para que no perdamos el hilo de la navegación del usuario deberemos asociar esta sesión
a todas las URLs y acciones de formulario. Podemos también crear un cookie que incluya el
identificador de sesión, pero es conveniente recordar que la disponibilidad o no de las
cookies depende del usuario, y no es conveniente fiarse de lo que un usuario pueda o no
tener habilitado.
Lo contado hasta ahora es teoría pura y es aplicable a cualquier lenguaje de programación
C, Perl, etc. Los que programamos en PHP4 tenemos la suerte de que toda la gestión de
sesiones la hace el mismo PHP.
Por lo tanto lo comentado a partir de aquí es solo aplicable a PHP4. Si aún desarrollas
PHP3, tendrás que crear tus propias librerías de gestión de sesiones o recurrir a alguna de
las existentes, como la de PHPLIB .
Inicialización de la sesión
session_start();
Desarrollo de Portales -63- Ing.Alberto Moreno C.
echo "He inicializado la sesión";
?>
Esta es la forma más básica, si el usuario tiene los cookies activados, PHP habrá insertado
de forma automática la sesión y ésta será pasada de una página a otra sin hacer nada más.
Desde un punto de vista práctico la sesión es operativa, pero no vemos nada. Podemos
obtener la sesión en cualquier momento mediante la función session_id(). Inserta en las
sucesivas páginas la siguiente línea para ver si la sesión está disponible:
<?php // Manual de PHP de WebMoreno.com
session_start();
echo 'La sesión actual es: '.session_id();
?>
En este caso session_start() comprueba en los cookies que existe una sesión y continua
con ella, session_id() devuelve el identificador actual.
Ejemplo práctico
<?php
session_register('contador');
echo '<a href="'.$PHP_SELF.'?'.$SID.'">Contador vale: '.++$contador.'</a>';
?>
En nuestro ejemplo anterior, registramos la variable $contador en la primera línea del script.
En la segunda línea, entre otras cosas, cada vez que recarguemos la página o hagamos
click sobre el enlace, el valor de $contador se incrementará en 1.
En esta línea hacemos uso de la variable reservada $PHP_SELF, que hace referencia al
propio script en ejecución y una constante propia de PHP5, $SID, que contiene el nombre
de la sesión y el identificador de la misma.
Podemos averiguar también el nombre de la sesión, o modificarlo, mediante la función
session_name(). Veamos una prueba práctica:
<?php
session_name('misesion');
session_register('contador');
echo '<a href="'.$PHP_SELF.'?'.SID.'">Contador vale: '.++$contador.'</a><br>';
echo 'Ahora el nombre es '.session_name().' y la sesión '.$misesion.'<br>';
?>
La asignación del nombre de sesión debe realizarse antes que ninguna otra función con
sesiones, antes que session_start() o session_register().
Desarrollo de Portales -64- Ing.Alberto Moreno C.
Error común
Uno de los errores más comunes cuando se utilizan sesiones es dejar líneas en blanco
antes de la inicialización de PHP o enviar alguna salida a la pantalla. Para probarlo crea una
línea en blanco o con cualquier cosa antes de <?php.
Si tienes los cookies activados, te encontrarás un error de este tipo:
Warning: Cannot send session cookie - headers already sent by (output started at
/home/session.php:2) in /home/session.php on line 4
PHP está informando de que no puede activar los cookies en el navegador del usuario,
porque las cabeceras ya han sido enviadas. Simplemente por la existencia de una línea en
blanco. Como medida práctica, no dejes espacios ni antes del inicio del script, ni después de
la finalización.
Te ahorrará muchos disgustos.
Si después de todo lo comentado aún no entiendes para que sirven las sesiones, veamos
un ejemplo práctico. Imagina que quisieras crear un sistema de cesta de la compra.
Carrito de compra
<?php
session_start();
session_register('itemsEnCesta');
if ($item){
if (!isset($itemsEnCesta)){
$itemsEnCesta[$item]=$cantidad;
}else{
foreach($itemsEnCesta as $k => $v){
if ($item==$k){
$itemsEnCesta[$k]+=$cantidad;
$encontrado=1;
}
}
if (!$encontrado) $itemsEnCesta[$item]=$cantidad;
}
}
?>
<html>
<body>
<tt>
<form action="<?=$PHP_SELF."?".SID?>" method="post">
Dime el producto <input type="text" name="item" size="20"><br>
Cuantas unidades <input type="text" name="cantidad" size="20"><br>
<input type="submit" value="Añadir a la cesta"><br>
</form>
<?
if (isset($itemsEnCesta)){
echo'El contenido de la cesta de la compra es:<br>';
foreach($itemsEnCesta as $k => $v){
Desarrollo de Portales -65- Ing.Alberto Moreno C.
echo 'Artículo: '.$k.' ud: '.$v.'<br>';
}
}
?>
</tt>
</body>
</html>
Dime el producto
Cuantas unidades
Enviar
Funcionamiento
El navegador las envía, permitiendo la identificación del usuario por parte del servidor.
A continuación vamos a ver como usar las cookies para nuestro beneficio.
Ejemplo
En este ejemplo vamos a ver como establecer una cookie y cómo se recupera el valor
establecido. Para ello pediremos al usuario que introduzca su nombre, que guardaremos en
una cookie.
Primero pedimos al usuario que introduzca el valor de su nombre, usamos un formulario que
procesará la página procesar_cookie.phtml.
<!-- Manual de PHP de WebMoreno.com -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de uso de cookie</H1>
Introduzca su nombre:
<FORM ACTION="procesar_cookie.phtml" METHOD="GET">
<INPUT TYPE="text" NAME="nombre"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
Introduzca su nombre:
Enviar
Se ha establecido una cookie de nombre ejemusuario con el valor: Laura que será válida
durante 1 hora.
Desarrollo de Portales -68- Ing.Alberto Moreno C.
Se establece la cookie ejemusuario con el valor introducido anteriormente, y cuya duración
es una hora.
PRACTICA CONTINUA 3
Aunque esta pagina tendrá una presentación similar cuando se lija los Cds por Estilo
(Rock,balada, etc ) modificando datos en el combo.
2.-Al hacer un clic sobre la imagen o foto de la cantante mostrara en una ventana la
información mas ampliada como se muestra en la figura 2.
3.- Cuando hace un clic en el carrito debe mostrar la siguiente pagina (cesta.php) para el
usuario vea las compras que ha realizado, teniendo la opción de comprar mas CDs y
actualizar su compra (para ello es necesario trabajar con sesiones)
Desarrollo de Portales -70- Ing.Alberto Moreno C.
4.- al aceptar la compra se va a guardar en un archivo texto el nombre del cliente su tarjeta de
crédito y el total importe a pagar y la fecha de compra , luego de efectuar la compra cerrará
la sesión.
5.- En una pagina se mostrara por fecha (ingresar la fecha) todas las compras que se han
realizado para llevar un control respectivo.
Nota.- la presentación es importante, puede agregar efectos flash , u otras animaciones que se
considerara en la nota.
1.- Introducción
MySQL es un sistema de administración de bases de datos muy potente. La principal virtud
es que es totalmente gratuito, por lo que es una fuerte alternativa ante sistemas como SQL
u Oracle.
Muchas empresas han decidido comenzar a utiliza MySQL como gestor de bases de datos
para sus proyectos Web, y se han dado cuenta de que es realmente muy poderoso, y no
tiene nada que envidiarle a sus competidores. Otra de las razones es que tiene un costo
nulo y se distribuye bajo licencia GNU (General Public License).
2.- Instalacion
Donde todas las bases creadas se situan el directorio ..\mysql\data , que fácilmente
se puede transportar y colocar automáticamente en dicha carpeta , su gestion de
datos es muy similar al SQL SERVER . La creación de BDD , tablas y consulta
puden realizarle a trves de consola o un asistente.
Mediante asistente hay que instalarlo de manera a parte, que es el FrontMysql y que
se puede descargar de manera gratuita.
Inicialización
Nos dirigimos hacia el directorio c:\mysql\bin y ejecutamos el archivo
winmysqladmin.exe o puede acceder del menu. Aquí aparecerá una pantalla:
Administración de
MySQL
Para administrar
MySQL bajo Windows
es recomendable
utilizar una
herramienta visual,
uno de los más
populares para este
trabajo es el
MysqlFront
Trabajar con
MysqFront es muy
similar que hacerlo
Desarrollo de Portales -72- Ing.Alberto Moreno C.
desde SQL Server. Una vez creada la conexión puedes administrar las tablas y
usuarios de manera sencilla. Otra de las características importantes, es que incluye
un asistente de importación, que ayuda a migrar de una base de datos Access u otra
compatible con ODBC.
Las sentencias SQL en Mysql llevan punto y coma al final, aquí algunas sentencias:
Instrucción Descripción
Show databases; Muestra el conjunto de bases de datos
presentes en el servidor
Desarrollo de Portales -73- Ing.Alberto Moreno C.
Use nombreBD; Determina la base de datos sobre la que
vamos a trabajar
Create Database nombreBD; Crea una nueva bd con el nombre especificado
Elimina la base de datos del nombre
Drop Database nombreBD;
especificado
Muestra las tablas presentes en la base de
Show tables;
datos actual
Describe nomTabla; Describe los campos que componen la tabla
Drop Table nomtabla; Borra la tabla de la base de datos
Crea una tabla y entre paréntesis se pone los
Create table nomtab(Nomcampo1
campos y el tipo de dato que contendra esa
tipo,Nomcampo2 tipo)
tabla
3.5.- Ejemplo: Crear una base de datos llamada IDAT y una tabla llamada Articulos que
tendra los sgtes campos codigo, nombre, unidad de medida, precio y stock)
NOTA: Si nos damos cuenta las sentencias SQL que utilizamos para SQL server tambien
nos sirve para Mysql.
Todo el script hecho se puede guardar tambien.
Desarrollo de Portales -76- Ing.Alberto Moreno C.
Tambien se puede crear base de datos y tables con el asistente que tiene el MysqlFront .
Si nos vamos al menu tools podremos observar que hay una opcion para crear Base de
datos, Crear tablas , etc.
Articulos
Clientes
Fac_cabe
Desarrollo de Portales -77- Ing.Alberto Moreno C.
Fac_deta
Aquí vamos a ver algunas funciones utiles para poder trabjar desde Php con Mysql.
4.1.- mysql_connect
Todos los argumentos son optativos, y si no se especifican, los valores por defecto son (' el
localhost', nombre del usuario del usuario que posee el proceso del servidor, la contraseña
vacía). La cadena hostname también puede incluir un número del puerto, "hostname:port".
La conexión al servidor se cerrará en cuanto la ejecución del script acabe, a menos que la
cerremos antes con la función mysql_close.
Ejemplo:
$cn=mysql_connect("mysql.webcindario.com","SUPER","CONTRA");//Aqui no estamos
conectando al //servidor de miarroba el usuario es super y la contraseña es contra
Desarrollo de Portales -78- Ing.Alberto Moreno C.
4.2.- mysql_close
Ejemplo:
4.3.- mysql_db_query
Ejemplo:
4.4.- mysql_fetch_row
mysql_fetch_row(result);
Devuelve un tabla con los valores de los campos de la fila actual de la consulta, la que
especificar el indicador (result) , y mueve el puntero interno que marca la fila actual a la
siguiente fila, si no hay mas filas devuelve FALSE. El índice de la tabla comienza en 0.
Ejemplo:
//$rs es el result (algo asi como el recordset) que guarda todos los datos de los clientes
while($fila){ //Si no llega al final del archivo la variable Fila tomara el valor de true
}
Desarrollo de Portales -79- Ing.Alberto Moreno C.
Tambien se puede usar mysql_fetch_array, la diferencia entre usar mysql_fetch_array y
mysql_fetch_row es que la primera te guarda los datos en un array con el nombre de los
campos ( $row[nombre], $row[apellidos]...etc) y la segunda te guarda el array numerico
($row[0], $row[1]...etc)
4.5..- mysql_fetch_array
mysql_fetch_array(result);
Ejemplo:
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_array($result)) {
echo $row["user_id"];
echo $row["fullname"];
}
mysql_free_result($result); //libera dela memoria la variable Rs
mysql_free_result($rs)
4.7.- mysql_num_rows
mysql_num_rows(result);
Ejemplo: mysql_num_rows($rs);
Desarrollo de Portales -80- Ing.Alberto Moreno C.
a).-Se pide elaborar las siguiente consulta, como resultado del examen de admisión,
seleccionando una facultad a través de una lista, que muestre el resultado del examen
Ordenados por apellido, con el mensaje ingreso o no ingreso (azul y rojo) , el puntaje
mínimo de ingreso es de acuerdo a la cantidad de vacantes que ofrece cada especialidad. Y el
puntaje obtenido en el examen, por ejemplo si Ing. De Sistema ofrece 10 vacantes y tiene 30
alumnos matriculados entonces solo ingresan aquellos que tengan los mayores puntajes, si
hay empates con el ultimo puesto entonces dichos alumnos también ingresan. (7 Puntos)
b) Muestre los puntajes mínimos y máximo que se dieron en cada facultad( 5 Puntos)
Código Especialidad Ptj. Mínmo Máximo Nro vacantes
d) Graficar La cantidad de alumnos por cada especialidad teniendo opcion a elegir el tipo
barras o tortas. (5 puntos)
d) Unir las tres opciones en una página principal a través de un Frame (Divido para dos
secciones verticales uno para el menú y el otro para ver los resultados.
Desarrollo de Portales -81- Ing.Alberto Moreno C.
while($fila=mysql_fetch_row($rs))
echo "<tr>";
echo "<td>$fila[0]</td>";
echo "<td>$fila[1]</td>";
echo "</tr>";
}
en todo caso con mysql_fetch_array
Desarrollo de Portales -82- Ing.Alberto Moreno C.
while($fila=mysql_fetch_array($rs)){
echo "<tr>";
echo "<td>$fila[0]</td>";
echo "<td>$fila[1]</td>";
echo "</tr>";
}
<?php
$link = mysql_connect("localhost", "root", );
mysql_select_db("Facturas", $link);
$result = mysql_query("SELECT * FROM Clientes", $link);
echo "id: ".mysql_result($result, 6, "cli_codigo")."<br>";
echo "Nombre: ".mysql_result($result, 6, "cli_nombre")."<br>";
echo "Telefono: ".mysql_result($result, 6, "cli_telefono")."<br>";
?>
5.- Otras funciones (Crear Base de datos desde php, controlar los errores y
como crear una tabla desde php)
Ejemplo 1: Crear Base de Datos
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin título</title>
Desarrollo de Portales -83- Ing.Alberto Moreno C.
</head>
<body>
<?php
$cn=mysql_connect("localhost"); //Nos conectamos
if (mysql_create_db ("NuevaBD")) { //Aqui se crea una base de datos llamada
NuevaBD la funcion devolvera True si lo hace bien
echo "<p>Base de Datos creada con éxito";
} else {
echo "<br>ERROR al crear la base de datos";
echo "<br>Numero del error:".mysql_errno ();//mysql_nro muestra el
numero del ultimo error ocurrido
echo "<br>Descripcion del error:".mysql_error ();//mysql_error muestra
la descricpion del ultimo error ocurrido
}
?>
</body>
</html>
FacCli.PHP
En esta pagina se recibira el valor del combo y lo guardaremos en la variable COD luego en
una variable cad se guardara el select de las facturas del cliente que se escogio, el resto ya
lo sabemos.
Facil no???
<body>
<table width="284" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="133">Numero de Factura </td>
<td width="151">Fecha de Fatura </td>
</tr>
<?php
$cn=mysql_connect("localhost");
$cod=$_POST["cbocliente"];
$cad="Select Fac_numero,Fac_fecha from Fac_cabe where cli_codigo='$cod'";
$rs=mysql_db_query("facturas","Select * from Clientes",$cn);
while($fila=mysql_fetch_row($rs)){
echo "<tr>";
echo "<td>$fila[0]</td>";
echo "<td>$fila[1]</td>";
Desarrollo de Portales -85- Ing.Alberto Moreno C.
echo "</tr>";
}
mysql_free_result($rs);
mysql_close($cn);
?>
</table>
</body>
$rs=mysql_db_query("facturas",$cad,$cn);
while($fila=mysql_fetch_row($rs)){
echo "<tr>";
Desarrollo de Portales -86- Ing.Alberto Moreno C.
echo "<td>$fila[0]</td>";
echo "<td>$fila[1]</td>";
echo "<td>$fila[2]</td>";
echo "<td>$fila[3]</td>";
echo "</tr>";
}
mysql_free_result($rs);
mysql_close($cn);
?>
</table>
</form>
</body>
</html>
Ahora para llenar la tabla con el detalle de la factura primero recuperamos el numero de
factura
$fac = $_GET["num"];
Ahora para solo mostrar el detalle de la factura seleccionada hacemos el select
$cad ="Select A.art_nombre,A.art_precio,D.art_cantidad,(A.art_precio*D.art_cantidad) as
monto ".
"From Articulos as A,Fac_deta as D Where A.art_codigo=D.art_codigo ".
"and D.Fac_numero='$fac'";
Noten que se pone . para concatenar y la condicion es donde el numero de factura sea = a
fac osea al valor recuperado del combo
Bueno lo que viene ya es lo mismo de los anteriores ejercicios
Ingreso.HTML
En esta pagina se ingresara los
datos a grabar asi que no es
necesario que sea PHP lo unico
que hay que tener en cuenta es
que en ACTION del formulario
debemos de poner el nombre de la
pagina a la cual vamos a enviar los
datos en este caso GRABA.PHP
Graba.PHP
Esta pagina se encarga de grabar
los datos.
<body>
<?php
$cn= mysql_connect("localhost");
//Aqui recuperamos los datos de la pagina ingreso.html
$cod = $_POST["txtcod"];
$nom = $_POST["txtnom"];
$tel = $_POST["txttele"];
$ruc = $_POST["txtruc"];
$dir = $_POST["txtdir"];
<body>
<table width="754" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="103">Codigo</td>
<td width="260">Nombre</td>
<td width="128">Telefono</td>
<td width="109">Ruc</td>
<td width="154">Direccion</td>
</tr>
<?PHP
Desarrollo de Portales -88- Ing.Alberto Moreno C.
$cn= mysql_connect("localhost");
$rs= mysql_db_query("Facturas","Select * From Clientes",$cn);
$fila=mysql_fetch_row($rs);
while($fila){
echo "<tr>";
echo "<td><a href='ResulClientes.php?codcli=$fila[0]'>$fila[0]<a/></td>";
echo "<td>$fila[1]</td>";
echo "<td>$fila[2]</td>";
echo "<td>$fila[3]</td>";
echo "<td>$fila[4]</td>";
echo "</tr>";
$fila=mysql_fetch_row($rs); //se avanza a la sgte fila
}
?>
</table>
<?php
mysql_free_result($rs); //libera de la memoria el rs
mysql_close($cn)//cierra la conexion
?>
</body>
Aquí lo nuevo es esto:
echo "<td><a href='ResulClientes.php?codcli=$fila[0]'>$fila[0]<a/></td>";
pero si vemos se esta llamando a la pagina resultclientes y se esta enviando como
parámetro una variable llamada codcli que contendra el codigo el cliente
ResulClientes.PHP
<html>
<head>
<title>Documento sin título</title>
</head>
<?php
$cn=mysql_connect("localhost");
$cod=$_GET["codcli"];
$cad="Select * from clientes where cli_codigo='$cod'";
$rs= mysql_db_query("Facturas",$cad,$cn);
$fila=mysql_fetch_row($rs);
if($fila){
$nom =$fila[1];
$tel =$fila[2];
Desarrollo de Portales -89- Ing.Alberto Moreno C.
?>
<body>
<table width="258" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="107">Codigo:</td>
<td width="145"><input name="txtcod" type="text" id="txtcod" value="<?php echo
$cod;?>"></td>
</tr>
<tr>
<td>Nombre:</td>
<td><input name="txtnom" type="text" id="txtnom" value="<?php echo $nom;?>"></td>
</tr>
<tr>
<td>Telefono:</td>
<td><input name="txttele" type="text" id="txttele" value="<?php echo $tel;?>"></td>
</tr>
</table>
<?php
}else{
echo "No se Encontro ningun cliente";
}
?>
</body>
</html>
Aquí se hace la conexión después se recupera el parámetro codcli osea el codigo del cliente
que se escogio y se guarda en cod
Luego hacemos el select de la tabla clientes pero solo donde el codigo sea igual al codigo
recuperado
Después en la variable fila guardamos el primer registro del RS si fila es igual a true quiere
decir que si encontro un registro, caso contario no encontro ningun registro
Ahora hay que fijarse donde se esta cerrando el If por que solo si hay datos debe de
mostrarse los textos.
Desarrollo de Portales -90- Ing.Alberto Moreno C.
Aplicaciones
Una consulta en cascada empleando la BDD BDFACTURA ,como se muestra en la figura
<?php
Desarrollo de Portales -92- Ing.Alberto Moreno C.
$cbocliente = $_POST['cbocliente'];
$cbofactura = $_POST['cbofactura'];
$conexio = mysql_connect("localhost","root","");
mysql_select_db ("bdfactura", $conexio) OR die ("No se puede conectar");
$sql="SELECT * FROM Clientes";
$rs=mysql_query($sql,$conexio);
?>
<html>
<body>
<form action="cascada.php" method="POST" name='frm1'>
<table border='1'>
<tr><td><b>Seleccione un cliente:</b></td>
<td>
<select name='cbocliente' onChange="frm1.submit();">
<option value=''>-selecciona-</option>
<? while($fila=mysql_fetch_array($rs)) { ?>
<? if ($cbocliente==$fila[0]) { ?>
<option value='<? echo $fila[0]; ?>' selected><? echo $fila[1]; ?></option>
<? } else { ?>
<option value='<? echo $fila[0]; ?>'><? echo $fila[1]; ?></option>
<? } ?>
<? } ?>
</select>
</td>
</tr>
<tr>
<td><b>Facturas del codigo :</b></td>
<td>
<?
$sql="SELECT * FROM Fac_cabe where cli_codigo='". $cbocliente ."'";
$rs2=mysql_query($sql,$conexio);
?>
<select name='cbofactura' onChange="frm1.submit();">
<option value=''>-selecciona-</option>
<? while($fila2=mysql_fetch_array($rs2)) { ?>
<? if ($cbofactura==$fila2[0]) { ?>
<option value='<? echo $fila2[0]; ?>' selected><? echo $fila2[0]; ?></option>
<? } else { ?>
<option value='<? echo $fila2[0]; ?>'><? echo $fila2[0]; ?></option>
<? } ?>
<? } ?>
</select>
</td>
</tr>
</table>
<?
$sql="SELECT * FROM Fac_deta where fac_numero='". $cbofactura ."'";
$rs3=mysql_query($sql,$conexio);
?>
<h3>Detalle de la factura <? echo $cbofactura ?></h3>
Desarrollo de Portales -93- Ing.Alberto Moreno C.
<table border="1">
<tr>
<? for($i=0;$i<= mysql_num_fields($rs3) - 1 ;$i++) { ?>
<th><? echo mysql_field_name($rs3,$i); ?></th>
<? }?>
</tr>
</form>
</body>
</html>
Codificación:
<html>
Desarrollo de Portales -94- Ing.Alberto Moreno C.
<?php
$xcod=$_GET["cli"];
if($xcod==""){
$xcod=$_POST["cbcli"];
}
$xfac=$_GET["cbfac"];
$conexio = mysql_connect("localhost","","");
mysql_select_db ("bdfactura", $conexio) OR die ("No se puede conectar");
if($xcod){
$xcli="select cli_nombre,cli_direccion from clientes where cli_codigo = '$xcod'";
$rscli=mysql_query($xcli,$conexio);
$filacli=mysql_fetch_array($rscli);
$nom=$filacli[0];
$dir=$filacli[1];
}
AdiCliente.PHP
Desarrollo de Portales -97- Ing.Alberto Moreno C.
En Caso que el numero de cuenta no exista mostrar un mensaje de error, en caso que exista muestre la
otra pagina pintando los montos depositados en Azul y los retiros en rojo
Desarrollo de Portales -98- Ing.Alberto Moreno C.
2.-
El numero de operación se genera
a partir de 1, solo se ingresa el
monto de operación y el tipo de
operación , calculando
automáticamente el saldo actual.
Además mostrar un mensaje de
error saldo no disponible en caso
que el retiro sea mayor a su
saldo.
Al confirmar la operación se
debe actualizar el saldo.
Desarrollo de Portales -99- Ing.Alberto Moreno C.
EMPLEANDO CLASES:
Y grabamos su script:
INSERT INTO `clientes` ( `dni` , `nombre` , `direccion` , `edad` , `correo` )
VALUES (
'11111111', 'Miguel Grau', 'Av Grau 454', '50', 'mgrau@hotmail.com'
);
Desarrollo de Portales -101- Ing.Alberto Moreno C.
Bdclases.php
<?php
class bdclientes{
var $cn;
var $bd;
function bdclientes(){
$servidor="localhost";
$usuario="root";
$clave="";
@$this->cn=mysql_pconnect($servidor,$usuario,$clave)
or die("Error de conexion");
$this->bd="bdclientes";
mysql_select_db($this->bd,$this->cn)
or die("Error de conexion");
}
function insertar($v1,$v2,$v3,$v4,$v5){
if(!empty($v1) &&
!empty($v2) &&
!empty($v3) &&
!empty($v4) &&
!empty($v5)){
$sql="insert into clientes values ('$v1','$v2','$v3','$v4','$v5')";
$rs=mysql_query($sql,$this->cn)
or die ("Consulta no realizadaxxx");
return $rs;
}
}
function listado($campo){
$sql="select * from `clientes` order by $campo";
$rs=mysql_query($sql,$this->cn)
or die ("Consulta no realizada");
$t="";
while($filas=mysql_fetch_assoc($rs)){
$c=$filas["dni"];
$t=$t."<tr>";
$t=$t."<td><input type=\"checkbox\" name=\"chk$c\"
value=\"$c\"></td>";
$t=$t."<td>".$c."</td>";
$t=$t."<td>".$filas["nombre"]."</td>";
$t=$t."<td>".$filas["direccion"]."</td>";
$t=$t."<td>".$filas["edad"]."</td>";
$t=$t."<td>".$filas["correo"]."</td>";
$t=$t."<td><a
href=\"modificar.php?modifica=$c\">Modificar</a></td>";
$t=$t."<td><a
href=\"javascript:elimina('$c')\">Eliminar</a></td>";
$t=$t."</tr>";
}
return $t;
}
Desarrollo de Portales -102- Ing.Alberto Moreno C.
function modificar($v1,$v2,$v3,$v4,$v5){
if(!empty($v1) &&
!empty($v2) &&
!empty($v3) &&
!empty($v4) &&
!empty($v5)){
$sql="update clientes set nombre='$v2', direccion='$v3',
edad=$v4 ,correo='$v5' where dni='$v1'";
$rs=mysql_query($sql,$this->cn) or die ("Consulta no
realizada");
return $rs;
}
}
function buscar($c){
$sql="select * from clientes where dni='$c'";
$rs=mysql_query($sql,$this->cn);
$filas=mysql_fetch_assoc($rs);
return $filas;
}
function elimina($v1){
$sql="delete from clientes where dni='$v1'";
$rs=mysql_query($sql,$this->cn);
return $rs;
}
function mensaje($msg){
$cad="";
$cad=$cad."<script language =\"javascript\">";
$cad=$cad."alert(\"$msg\");";
$cad=$cad."</script>";
return $cad;
}
function login($u,$p){
$sql="select dni, nombre from clientes where dni='$p' and
nombre='$u'";
$rs=mysql_query($sql,$this->cn);
$nfilas=mysql_num_rows($rs);//retorna la cantidad de filas de de una
consulta
return $nfilas;
}
}
?>
insertar.php
<body onload="document.form1.txtdni.focus();">
<?php echo $msg; ?>
<p align="center" class="Estilo17 Estilo27">Insertar nuevo cliente</p>
<p align="right" class="Estilo17 Estilo27"><a href="<?php echo $salir ?>"><img src="cs.gif"
alt="Salir" width="100" height="19" border="0"></a></p>
Desarrollo de Portales -104- Ing.Alberto Moreno C.
<form name="form1" method="post" action="">
<table width="450" border="0" align="center" cellpadding="0" cellspacing="2">
<tr bgcolor="#0099FF">
<td colspan="2"> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><div align="right" class="Estilo28">DNI </div></td>
<td>
<input name="txtdni" type="text" id="txtdni" size="10" maxlength="8"></td>
</tr>
<tr>
<td><div align="right" class="Estilo28">Nombre </div></td>
<td>
<input name="txtnombre" type="text" id="txtnombre"></td>
</tr>
<tr>
<td><div align="right" class="Estilo28">Direccion </div></td>
<td>
<input name="txtdireccion" type="text" id="txtdireccion"></td>
</tr>
<tr>
<td><div align="right" class="Estilo28">Edad </div></td>
<td>
<input name="txtedad" type="text" id="txtedad" size="5" maxlength="3"></td>
</tr>
<tr>
<td><div align="right" class="Estilo28">Correo </div></td>
<td>
<input name="txtcorreo" type="text" id="txtcorreo"></td>
</tr>
<tr>
<td><div align="right"><span class="Estilo18">
<input name="Submit" type="submit" value="Insertar">
</span></div></td>
<td>
<input name="Submit" type="submit" value="Limpiar">
<input name="Submit" type="button" onClick="window.location='listado.php';"
value="Cancelar"></td>
</tr>
<tr>
<td><div align="right" class="Estilo18">
</div></td>
<td> </td>
</tr>
<tr bgcolor="#009AFF">
<td colspan="2"> </td>
</tr>
</table>
Desarrollo de Portales -105- Ing.Alberto Moreno C.
</form>
<p class="Estilo1"> </p>
</body>
</html>
listado.php
<?php include("bdclases.php"); ?>
<?php
session_start();
if(!isset($_SESSION["usuario"])){
header("location:login.php");
exit;
}
$salir=$_SERVER['PHP_SELF']."?cerrar=ok";
//$_SERVER['PHP_SELF'] es el nombre del mismo nombre del archivo activo
if(isset($_GET["cerrar"]) && $_GET["cerrar"]=="ok"){
//para salir se pregunta si existe un valor en cerrar y si este es "ok"
session_unregister("usuario");//se limpia el registro
header("location:login.php");
exit;
}
$obj=new bdclientes;
if(isset($_GET["dni"])){
$obj->elimina($_GET["dni"]);
}
$campo="dni";
//siguiente clase
$tabla=$obj->listado($campo);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin título</title>
<style type="text/css">
<!--
.Estilo1 {
font-size: 12px;
font-weight: bold;
color: #0000FF;
}
-->
</style>
</head>
<script language="JavaScript" type="text/JavaScript">
//alert : ventana de dialogo que muestra un mensaje
//confirm : ventana de dialogo que permite realizar una confirmacion
//prompt : ventana de dialogo que permite ingresar valores por teclado
function elimina(dni){
if(window.confirm("¿Estas seguro de eliminar el registro?")){
alert(dni);
window.location="listado.php?dni="+dni;
Desarrollo de Portales -106- Ing.Alberto Moreno C.
}
}
</script>
<body>
<h1 align="center">Listado de clientes registrados</h1>
<p align="right"><a href="<?php echo $salir ?>"><img src="cs.gif" alt="Salir" width="100"
height="19" border="0"></a><span class="Estilo1"> </span></p>
Elaborar un examen mecanizado de cualquier curso : las tablas serán proporcionadas por el
instructor aunque Ud. Puede también Modificarlas con Criterio:
1.- Primero el alumno ingresara su código mediante el siguiente formato, sino existe
mostrara en una ventana código no existe por dos segundos volviendo a mostrar la pantalla
Inicial.:
Fig. 1
Fig 2.0 Debe mostrar las preguntas del curso, las opciones dependerá la tabla preguntas
máximo tendrá un cierto tiempo de duración llevándolo automáticamente hacia otra pagina
de resultados.
Desarrollo de Portales -108- Ing.Alberto Moreno C.
5.- Mostrar el resultado del examen ordenados de por nota de forma descendente
Notas
Respuestas
Desarrollo de Portales -111- Ing.Alberto Moreno C.
Curso
Preguntas
Desarrollo de Portales -112- Ing.Alberto Moreno C.
CAPITULO DE GRAFICOS
La Clase Graph.- La clase del Gráfico es la clase de la fuente principal para todo
grafico de eje x,y, Ud. siempre debe instanciar la clase para crear un gráfico. A
través de esta clase uno controla muchas escenas globales de la imagen desplegadas.
Propiedades publicas:
Nombre Tipo Description
xaxis Axis X-axis
yaxis Axis Y-axis
xgrid Grid Lineas Cuadriculas para X-axis
ygrid Grid Lineas Cuadriculas para Y-axis
legend Legend Propiedades de la caja de leyendas
title Text Titulo principal
subtitle Text SubTitulo
subsubtitle Text Sub title
Nota.- Para elaborar graficos en php, se debe primero colocar una carpeta Graph que
contiene todas las funciones graficas, que seran incluidas en nuestra pagina.
Metodos de Clases
Cada parcela que debe desplegarse dentro del gráfico tiene que ser agregada al gráfico.
Éste es el método principal para agregar el objeto. Usted puede usar este método para
agregar :
Las parcelas
Los textos
Las líneas de la parcela
Ejemplo:
Example
// Displaya el grafico
$graph->Stroke();
FF_TREBUCHE=17;
$grafico->Setcolor(color) .- define el color para el titulo , los valores los valores pueden
ser constantes o valores hexadecimales.
Desarrollo de Portales -114- Ing.Alberto Moreno C.
CAPITULO DE GRAFICOS:
1.- Alumnos por especialidad
$bplot->SetFillColor("orange");
$bplot->SetShadow();
//$bplot->value->SetFormat(" $ %2.1f",70);
$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
$bplot->value->SetColor("blue");
$bplot->value->Show();
$graph->Add($bplot);
$graph->title->SetFont(FF_ARIAL,FS_BOLD,20);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
// Mostrar el grafico
$graph->StrokeCSIM('barras.php');
//$graph->Stroke();
Desarrollo de Portales -116- Ing.Alberto Moreno C.
?>
include("graph/jpgraph.php");
include("graph/jpgraph_pie.php");
include("graph/jpgraph_pie3d.php");
//$data=array(456,234,778,123);
$g=new PieGraph(350,300,"auto");
$g->Shadow;
$g->title->Set("Ejemplo de torta");
$g->title->SetFont(FF_TIMES, FS_BOLD,12);
$g->title->SetColor("darkblue");
$g->legend->pos(0.05,0.08); //la ubicacion de la leyenda
$p=new PiePlot3d($data);
$p->value->SetFont(FF_VERDANA,FS_NORMAL,10);
//$p->SetLegends(array("enero","feber","marzo","abril"));
$p->SetLegends($legen);
$g->add($p);
$g->Stroke()
?>
Desarrollo de Portales -117- Ing.Alberto Moreno C.
Ejemplo 3.- Gráficos con imágenes de fondo y con series, supongamos que tenemos 4
sucursales donde se realiza la compra y venta de mercaderías, elaborar un grafico que
permita mostrar los montos por las cuatro tiendas.
Los montos son representados con un vector dinámico, aunque también como en el
anterior los datos pueden ser leídos desde una tabla.
PRACTICA CONTINUA 7
Realizar :
Grafico1.php
2.- Ingresando un año Graficar los 10 productos con mayor Venta en ese año
seleccionado:
Grafico2.php
3.- Graficar las ventas por cada empleado de acuerdo al siguiente modelo
Desarrollo de Portales -119- Ing.Alberto Moreno C.
Grafico3.php
graficos de barras.php
4.- Seleccione un pais desde un combo (mexico, brazil, Argentina, ..) luego muestre en
una tabla los clientes de ese pais :
Realizar la paginación de 5 en 5
Observe que la opción etiqueta puede colocar etiquetas mas explicitas como por
ejemplo en vez de apealumno se puede colocar Apellidos y así puede cambiar los demás
campos.
Para el campo Idesp vamos asociarlo la tabla especialidad:
En mostrar como elegir Menu y hacer
clic en propiedades del menu
luego acepte
5.- en el campo procedencia mostrar como
y escoja recordset1 ,Claro que inicialmente recordset1 fue asociado a la tabla alumno
Puede agregarle
atributos centrado,
colores, generación
de códigos etc.
Desarrollo de Portales -127- Ing.Alberto Moreno C.
Bibliografía
Direcciones
www.php.net
www.php.linux
www.desarrolloweb.com
E-mail :mmoreno@ucss.edu.pe