SlideShare una empresa de Scribd logo
El Lenguaje PHP
PHP es un lenguaje interpretado(el compilador ejecuta línea por línea) del lado del servidor que se
caracteriza por su potencia, versatilidad, robustez y modularidad. Los programas escritos en PHP son
embebidos directamente en el código HTML y ejecutados por el servidor web a través de un intérprete
antes de transferir al cliente que lo ha solicitado un resultado en forma de código HTML puro. Al ser un
lenguaje que sigue la corriente open source, tanto el intérprete como su código fuente son totalmente
accesibles de forma gratuita en la red. En concreto, la dirección oficial en la que puede descargarse es:
http://www.php.net/
Por su flexibilidad, PHP resulta un lenguaje muy sencillo de aprender; especialmente para programadores
familiarizados con lenguajes como C, Perl o Java, debido a la similitud de sintaxis entre ellos.
Por supuesto es un lenguaje multiplataforma; los programas funcionan igual sobre diferentes plataformas,
trabajando sobre la mayoría de servidores web y estando preparado para interactuar con más de 20 tipos
de bases de datos. No obstante, al ser un lenguaje inicialmente concebido para entornos UNIX, es sobre
este sistema operativo sobre el que se pueden aprovechar mayor sus prestaciones.
Primer Ejemplo de PHP
En un nuevo documento escriba el siguiente código y grabarlo con el nombre primer.php
<HTML>
<HEAD>
<TITLE>Primer Ejemplo de PHP</TITLE>4
</HEAD>
<BODY>
<U>
<?PHP
echo(o print:) "Este es mi primer programa en PHP";
?>
</U>
</BODY>
</HTML>
FORMAS DE INCRUSTAR EL CODIGO PHP EN LOS DOCUMENTOS HTML
Existen 4 formas de incrustar código PHP, dos de ellas están siempre disponible y las dos restantes
dependen da la configuración particular del servidor.
Las dos formas siempre disponibles de delimitar código PHP son:
<?PHP
Instrucciones PHP
?>
o
<SCRIPT LANGUAGE=”php”>
Instrucciones PHP
</SCRIPT >
De estas dos formas, la primera es la sintaxis especifica del lenguaje PHP, mientras que la segunda es la
sintaxis general que se utiliza para insertar scripts programados en diferentes lenguajes
Las otras dos formas de incrustar el código PHP son:
<?
Instrucciones PHP
?>
o
<%
Instrucciones PHP
%>
La primera de estas sintaxis es la que se denomina de “etiquetas de formato corto” y requiere que el
servidor tenga configurado su fichero php.ini para aceptarlas.
Finalmente la última sintaxis es la que resulta compatible con ASP, pero tampoco es aceptada por todos
los servidores.
De las 4 formas de incrustar el código PHP, la más recomendable es la primera (<?php ….. ?>), por varias
razones: por ser la especifica de PHP, por estar disponible en cualquier servidor, y por ser además la
única que permite incrustar código PHP también en XML y en XHTML.
ASPECTOS SOBRE LA SINTAXIS DEL LENGUAJE
La sintaxis del Lenguaje PHP es muy similar a la de otros lenguajes conocidos como C o Perl, algunos
aspectos iniciales sobre la sintaxis que deben ser considerados a la hora de ahondar la escritura del
código fuente de los programas son:
-

El uso de las mayúsculas y minúsculas es indiferente(solo instrucciones). A diferencia de otros
lenguajes similares, PHP permite que las diferentes sentencias estén escritas con cualquier
combinación de letras mayúsculas o minúsculas. Por ejemplo con las estructuras condicionales
sería totalmente equivalente utilizar la palabra if o IF. Una excepción importante a esta regla se
produce en los nombres de las variables, no es lo mismo nombrar una variable con letras
mayúsculas que hacerlo con minúsculas.

-

Se pueden colocar todos los espacios en blanco y cambios de línea que se deseen con objeto de
hacer mas legible el código fuente. Estos espacios adicionales no tienen efecto alguno en la
ejecución del programa, el interprete de PHP los ignora.

-

Las diferentes instrucciones deben terminar con “;”. Sin embargo PHP admite cierta flexibilidad
a este respecto, ya que el terminador punto y coma no sería necesario en la última sentencia del
script antes del terminador ?>, ni en los casos en los que al final de la instrucción se cierre un
bloque de código con una llave, por ejemplo en las estructuras condicionales o bucles

-

Las instrucciones se pueden partir en tantas líneas como se desee a efectos, de nuevo, de
mejorar la legilibilidad. Esta división de las instrucciones no afecta a la ejecución.

-

En una misma línea se pueden colocar, si así se desea, varias instrucciones diferentes separadas
por “;”. Esto puede ser útil en el caso, por ejemplo, de tener que hacer varias sentencias de
asignación diferentes

INSERCION DE COMENTARIOS EN EL CODIGO
-

Comentarios de una línea :
//

-

Comentarios de varias líneas
/*
*/

ELEMENTOS BASICOS DEL LENGUAJE
TIPOS DE DATOS
Como todo lenguaje de programación, PHP puede trabajar con una serie de tipos de datos básicos. En
concreto los tipos de datos admitidos son:
-

Números enteros: los enteros pueden ser dados tanto en base decimal como en base octal o
hexadecimal ( un 0 inicial indica que el valor esta representado en octal, un 0x indica que es
hexadecimal.
-

Ejemplos

de

números

Ejemplos

de

en

numero

base
en

10

:

45

-142

octal:

0123

783
(equivale

a

83)

- Ejemplos de números en hexadecimal: 0x12 (equivale a 18)
-

Números reales: Los números reales se pueden dar en dos formatos; como parte entera y parte
decimal,

usando

Ejemplos: 14.67
-

el

-76.0023

punto
1.4e3

como

separador,

o

en

notación

científica.

-78.5e-4

Cadenas de Caracteres: Las cadenas de caracteres pueden ser dadas en dos formatos usando
comillas dobles o usando comillas simples. El uso de una u otra forma de delimitación afecta a la
forma en la que se tratan las posibles variables que puedan haber dentro de la propia cadena.
Ejemplo: “Casablanca”, „cantando bajo la lluvia‟

-

Arrays o Matrices:Constituyen colecciones de datos que se referencian bajo un mismo nombre
común. Como se verá al capítulo dedicado a estas estructuras de datos, PHP admite la posibilidad
de construir dos tipos de arrays: arrays asociativos e indexados.

-

Objetos: finalmente PHP admite también la posibilidad de crear objetos y realizar acción con
ellos. Mediante el uso de objetos se puede entender como una misma entidad los datos y las
acciones que se realizan con ellos. Esta es la base de la programación orientada a objetos.

VARIABLES
Algunas de las peculiaridades de las variables en PHP son:
No es necesario declarar explícitamente, sino que basta con utilizarlas cuando se necesite.
En principio las variables no tienen un tipo predefinido, puede asignarse cualquier tipo de valor.
La asignación de valores a las variables se hace con el singo “=”.
Los nombres de las variables en PHP siempre comienzan con el signo “$”.
Se pueden usar nombres de variables de cualquier longitud, formados por letras, digitos y
carácter de subrayado, pero nunca comenzando por un digito. Entre las letras que pueden
utilizarse se encuentran los caracteres cuyo código ASCII se encuentran entre 127 y 255 por lo
que se pueden utilizar letras acentuadas o ñ en los nombres de variables.
En los nombres de variables si se distingue el uso de mayúsculas y minusculas, de manera que
$area y $AREA serian variables diferentes.
Una variable se puede utilizar asignándole a la lo largo del tiempo datos incluso de distinto tipo.
Ejemplo de nombres de variables validas
$titulo $fecha_nacimiento $año $precio
En cambio no serian validos los siguientes:
$dir-pelicula $4fila genero $dto%
Ejemplo:
<html>
<head>
<title>Variables en PHP </title>
</head>
<body>
<?php
$titulo="Buscando a Nemo";
$sala=2;
echo "En la sala $sala se proyectará la pelicula $titulo";
?>
</body>
</html>
En este caso, a la primera variable se le asigna una cadena de caracteres y a la segunda un número entero.
Las dos variables se utilizan dentro de la cadena a imprimir, cuando dicha cadena está delimitada por
comillas dobles como en este caso, la variables que se encuentran en su interior serán sustituidas por sus
valores.
Ejemplo:
<html>
<head>

</html>

<title>Variables en PHP</title>
</head>
<body>
<?php
$x="Importe: ";
echo $x;
$x=5;
echo $x . " (precio normal) "; (el . sirve para concatenar cadenas)
//también echo “$x (precio normal) ";
$x = $x * 0.85;
echo $x . " (precio reducido) ";
?>
</body>
Como puede observarse, en este programa se ha utilizado una única variable $x a la que inicialmente se le
asigno una cadena de caracteres, después se le asigno un numero entero y finalmente, el resultado de una
expresión que devuelve un numero real.
En este caso se ha utilizado el operador punto para realizar concatenaciones entre cadenas de caracteres
y variables. Esto es una alternativa a la inclusión de las variables directamente dentro de las cadenas.
Ejemplo:
<html>

<head>
<title>Variables en PHP</title>
</head>
<body>
<?php
$a="10 euros";
$b= 2.25;
$c= $a - $b;
echo "Valor de c = $c<br>";
$d = (integer)$c;
echo "Valor de d = $d<br>";
$e = $d/2;
echo "Valor de e = $e<br>";
?>
</body>

</html>

La conversión de tipo explicita se puede realizar mediante el operador cast:
(tipo) expresión;
O mediante la función settype();
$telef= (string) 949567894;
$x= (integer) 5.97;
$y=12.5;
settype($y,”integer”);
settype($y,”float”);
AMBITO DE LAS VARIABLES
El ámbitode las variables determina desde que lugares la variable es visible y, por tanto, puede ser
utilizada.
Las variables por defecto tienen un ámbito global que abarcaría el documento completo en el que son
definidas, a no ser que sean definidas dentro de una función, en cuyo caso solo pueden ser utilizadas
dentro de la propia función (ámbito local)
Esto significa que una variable definida en un script del documento fuera de cualquier función, puede ser
utilizada en cualquier otro lugar de ese script o incluso en otros posibles scripts que se encuentren en el
mismo documento.
<html>

<head>
<title>Ambito de las Variables en PHP</title>
</head>
<body>
<h1>Ambito de las variables </h1>
<hr>
<?php
$fila=12;
$num=6;
?>
luego de haber declarado en un script<br>
las variables pueden ser usadas en otro script<br>
<?php
echo "fila = $fila<br>";
echo "numero = $num<br>";
?>
</body>

</html>
Una variable global puede ser utilizada dentro de cualquier función, pero para hacer referencia a ella
debe declararse dentro de la función con la palabra global delante de su nombre.
Ejemplo:
$precio = 4.5;
function calcular_importe($num_entradas){
global $precio;
$i = $precio * $num_entradas;
return $i;
}
En este caso la variable $precio está definida fuera de la función y es utilizada dentro de la función
calcular_importe(). Por otro lado, la variable $i está definida dentro de la función y no puede ser
utilizada fuera de ella.
Funciones usadas con variables
isset() : Permite averiguar si una variable ha sido definida. Esta función es especialmente útil cuando se
quiere comprobar si se han recibido los valores correspondientes a todos los campos de un formulario.
unset(): Permite eliminar una variable, no solo borra el contenido de la variable sino que también libera el
espacio de memoria reservado para ella. Cualquier intento posterior de acceso a esa variable generaría un
error.
gettype():Devuelve el tipo de variable.
is_array(): determina si la variable contiene un array.
is_float(): Determina si la variable contiene un numero de coma flotante.
is_int(): Determina si la variable contiene un numero entero.
is_object(): Determina si la variable hace referencia a un objeto.
is_string(): Determina si la variable contiene una cadena de caracteres.
CONSTANTES
Una constante es un valor que permanece inalterable a lo largo de la ejecución del script y a la que se le
asigna un identificador. Solo puede definirse constantes con valores escalares (números o cadenas de
caracteres). Por ejemplo no podría definirse una constante cuya valor fuese un array.
La definición de constantes de realiza con la función define(), y una vez definidas su valor no puede
cambiarse. En cuanto a los identificadores de las constantes, estos siguen las mismas reglas que los
identificadores de las variables salvo que no comienzan con el símbolo $. Aunque no es una regla
obligatoria por convenio se suele utilizar identificadores con letras mayúsculas para las constantes.
Otra diferencia con las variables está en la ausencia de cualquier restricción de ámbito en las constantes.
Una constante definida en un documento será accesible desde cualquier punto de cualquier script que
esté en el mismo documento.
Ejemplo:
<html>

<head>
<title>Constantes en PHP</title>
</head>
<body>
<h1>Constantes en php</h1>
<hr>
<?php
define("NOMBRE","Juan");
define("EDAD",19);
define("PESO",72.85);
echo "constantes definidas <br>";
echo "nombre : ". NOMBRE . "<BR>";
echo "edad : ". EDAD . "<BR>";
echo "peso : ". PESO . "<BR>";
?>
</body>

</html>

El uso de constantes puede resultar especialmente adecuado para definir determinados parámetros del
programa que no se espera que cambien.
CADENAS DE CARACTERES Y VARIABLES
Las cadenas de caracteres constituyen uno de los tipos de datos básicos del lenguaje PHP. En su
definición se pueden utilizar como delimitadores tanto las comillas simples como las dobles, lo que no es
posible combinar ambos tipos de delimitadores, por ejemplo abriendo la cadena con comillas dobles y
cerrándola con comillas simples.
La inclusión de determinados caracteres en las cadenas exige la utilización de las denominadas secuencias
de escape. Entre estos caracteres especiales están las comillas, el signo dólar, la barra invertida y los
caracteres de tabulación y retorno de carro. En la siguiente tabla se muestran algunas de estas
secuencias de escape.
Secuencia de Escape
Significado
n
Nueva línea
r
Retorno de Carro
t
Tabulador

Barra invertida
‟
Comillas simples
”
Comillas dobles
xNum
Carácter cuyo código ASCII en hexadecimal es
Num
Num
Carácter cuyo código ASCII en octal es Num
Ejemplo:
<html>
<head>
<title>Cadenas de caracters en PHP</title>
</head>
<body>
<h1>Cadenas de caracteres en php</h1>
<hr>
<?php
echo "Pagina creada por :n "cinemas" t xA9 2004";
?>
</body>
</html>
En la cadena anterior se utilizan dos secuencias de escape que no tienen reflejo en la pagina que sería
visualizada por el navegador del cliente, pero si en el código fuente HTML: el carácter de nueva línea y el
tabulador se incluirían en el código fuente HTML, pero, como todos los espacios extra, serian ignorados
por el navegador.
Las otras secuencias de escape que han sido utilizadas en el ejemplo son las que permiten incluir comillas
en la propia cadena y que generan el signo copyright (correspondiente al carácter de código ASCII 169 o
A9 en hexadecimal).
La diferencia entre el uso de comillas dobles o simples como delimitadores de las cadenas de caracteres
está en la forma en la que se tratan los posibles identificadores de variables que aparezcan dentro de la
cadena:
Con las comillas dobles, las variables dentro de la cadena se expanden, es decir, se sustituyen
por su valor.
Con las comillas simples las variables no se expanden y por tanto en la propia cadena aparecerán
sus identificadores como cualquier otro carácter de la misma. Además de eso, en este caso las
únicas secuencias de escape reconocidas son  y ‟.
Ejemplo:
<html>
<head>
<title>Cadenas de caracters en PHP</title>
</head>
<body>
<h1>Comillas dobles en php</h1>
<hr>
<?php
$titulo="Todo sobre mi madre";
$director="Pedro Almodovar";
$año=1999;
print "Sesion Especial : "$titulo" de $director ($año)";

</html>

?>
</body>
Observar como al utilizar las comillas dobles, los nombres de variables que aparecen dentro de la cadena
son sustituidos por sus valores. Esta característica de PHP es especialmente útil y evita tener que
recurrir a engorrosas operaciones de concatenación de cadenas con variables.
En cambio la sentencia
print „Sesion Especial : "$titulo" de $director ($año)‟;

Escribiría el siguiente mensaje
Sesion Especial: ”$titulo”de $director ($año)
En este caso se observa como las secuencias de escape no son reconocidas y se escriben los nombres de
las variables dentro de la cadena y no sus valores.
Operador de Asignación
En diversos ejemplos previos ya se ha utilizado el operador de asignación para dar valores a las variables,
este operador se representa mediante el signo “=”. Su sentido es el evidente; la variable de la izquierda
del operador tomará el valor resultado de la expresión que se encuentra a la derecha.
$variable = valor o expresión;
También se puede asignar varias asignaciones en una sola sentencia.
$a = $b = $c =1;
Operadores Aritméticos
Los operadores aritméticos básicos son los habituales de cualquier lenguaje de programación
+
*
/
%

Suma
Resta
Multiplicación
División
Modulo: Residuo de la división de dos números enteros.

Además de los operadores anteriores se dispone de los operadores de incremento y decremento que
existen también en lenguajes C o C++
++$x
$x++
--$x
$x--

Incrementa una unidad el valor de $x
Incrementa una unidad el valor de $x, pero después de evaluar el resto de la expresión.
Disminuye una unidad el valor de $x
Disminuye una unidad el valor de $x, pero después de evaluar el resto de la expresión
PHP Y LOS FORMULARIOS HTML
formulario01.html
<html>
<head>
<title>Rectangulo</title>
</head>
<body>
<h1>Rectangulo</h1>
<hr>
<form action="calculo01.php" method="POST">
<table>
<tr>
<td>BASE : </td>
<td><INPUT TYPE="TEXT" NAME="BASE"></td>
</tr>
<tr>
<td>ALTURA : </td>
<td><INPUT TYPE="TEXT" NAME="ALTURA"></td>
</tr>
<tr>
<td><INPUT TYPE="SUBMIT" VALUE="CALCULAR"></td>
<td><INPUT TYPE="RESET" VALUE="BORRAR"></td>
</tr>
</table>

</html>

</form>
</body>
calculo01.php
<html>

<head>
<title>Rectangulo</title>
</head>
<body>
<h1>Rectangulo</h1>
<hr>
<?php
$base=$_POST["BASE"];
$altura=$_POST["ALTURA"];
$area= $base*$altura;
$perimetro = 2*($base + $altura);
$diagonal = sqrt(pow($base,2) + pow($altura,2));
print "base
: $base <br>";
print "altura : $altura <br>";
print "area
: $area <br>";
print "perimetro : $perimetro <br>";
print "diagonal : $diagonal <br>";
?>
<a href="formulario01.html">regresar al formulario </a>
</body>

</html>
Variables de Formularios
Para acceder a las variables de formulario se puede hacer de dos maneras usando las variables
predefinidas $_ REQUEST[] que es un arreglo asociativo donde se guardan los valores de las variables o
con las variables $_POST[] Y $_GET[] dependiendo del método utilizado para el envío de datos del
formulario.

Variables de petición: $_REQUEST
Una matriz asociativa que consiste en los contenidos de $_GET, $_POST, y $_COOKIE.
Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible
en todos los contextos a lo largo de un script. No necesita hacer global $_REQUEST; para acceder a ella
dentro de funciones o métodos.
Variables HTTP GET: $_GET
Una matriz asociativa de variables pasadas al script actual a través del método HTTP GET. Global
automáticamente en cualquier contexto.
Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible
en todos los contextos a lo largo de un script. No necesita hacer global $_GET; para acceder a ella
dentro de funciones o métodos, como lo hace con $HTTP_GET_VARS.
$HTTP_GET_VARS contiene la misma información inicial, pero no es autoglobal. (Note que
HTTP_GET_VARS y $_GET son variables diferentes y que PHP las trata como tal)
Variables HTTP POST: $_POST
una matriz asociativa de variables pasadas al script actual a través del método HTTP POST. Global
automáticamente en cualquier contexto.
Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible
en todos los contextos a lo largo de un script. No necesita hacer global $_POST; para acceder a ella
dentro de funciones o métodos, como lo hace con $HTTP_POST_VARS.
$HTTP_POST_VARS contiene la misma información inicial, pero no es autoglobal. (Note que
HTTP_POST_VARS y $_POST son variables diferentes y que PHP las trata como tal)

Métodos de transferencia de datos en Formularios
Los datos que el usuario introduzca en un formulario de una página web pueden ser transferidos al
servidor para su procesamiento con dos métodos diferentes.
Método GET: los datos son enviados dentro del URL de localización del destino
Método POST: los datos son enviados de manera invisible para el usuario haciendo uso del
protocolo http y en un encabezado independiente.
El método de transferencia se especifica en la definición del formulario mediante el parámetro
METHOD, asignándole el valor “Get” o “Post” en función del método elegido. En caso de ausencia de ese
parámetro, se considera como método por defecto el método GET.
En el caso de que los datos deban ser transferidos por correo electrónico, es obligatorio el uso del
método POST.
OPERADORES DE COMPARACION
Sirven para comparar 2 valores devolviendo un valor verdadero si la comparación es positiva o falsa en
otro caso:
$x == $y
$x === $y
$x != $y
$x !== $y
$x < $y
$x > $y
$x <= $y
$x >= $y

Compara si $x e $y tienen el mismo valor (operador de igualdad)
Compara si $x e $y son iguales además si son del mismo tipo (operador de
identidad)
Comprueba si $x e $y tienen distinto valor (negación de igualdad)
Comprueba si $x e $y tienen distinto valor y/o tipo (negación de identidad)
Comprueba si el valor de $x es menor que el valor de $y
Comprueba si el valor de $x es mayor que el valor de $y
Comprueba si el valor de $x es menor o igual que el valor de $y
Comprueba si el valor de $x es mayor o igual que el valor de $y

&&
||
!
And
Or
Not

OPERADORES LOGICOS
y
o
negación

ESTRUCTURAS CONDICIONALES
Sentencia if.. else
Sirve para escoger uno de dos caminos en un programa de acuerdo al resultado de una comparación
if(expresión)
Instruccion1;
else
Instruccion2;
Si expresión es verdadera se ejecuta Instrucción1, si es falsa se ejecuta Instruccion2.
En PHP toda expresión que produzca como resultado un valor numérico distinto de cero, una cadena
diferente de la cadena vacia o un array no vacio, si aparece dentro de un contexto lógico es tratado como
el valor booleano verdadero (true).
Si se desea ejecutar un conjunto de Instrucciones al resultar verdadero o falsa la expresión, las
instrucciones se deben colocar entre llaves
if(expresión)
{
Instrucciones1;
}
else
{
Instrucciones2;
}
La sentencia else es Opcional
If(expresión)
{
Instrucciones;
}
Ejemplo:
<html>

<head>
<title>Estructuras Condicionales</title>
</head>
<body>
<h1>Estructura Selectiva Simple : if ... else</h1>
<hr>
<font color="blue">verifica Si un numero es par o impar</font><br>
<?php
$num=12;
if($num % 2==0)
echo "el valor $num es par <br>";
else
echo "el valor de $num es impar<br>";
?>
<br>
<font color="blue">verifica si un numero es positivo, negativo o cero </font><br>
<?php
$x=-20;
if($x>0)
echo "El numero es positivo<br>";
else
if($x<0)
echo "El numero es negativo<br>";
else
echo "El numero es cero <br>";
?>
<br>
<font color="blue">calcula las raices reales de una ecuacion cuadratica <br>
con coeficientes a=1 b=5 c=6<br></font>
<?php
$a=1;
$b=5;
$c=6;
if($a!=0)
{
$d = pow($b,2) - 4*$a*$c;
if($d>=0)
{
$x1 = (-$b + sqrt($d)) /(2*$a);
$x2 = (-$b - sqrt($d)) /(2*$a);
echo "Valor de x1 = $x1 <br> ";
echo "Valor de x2 = $x2 <br> ";
}
else
echo "Raices imaginarias<br>";
}
else
echo "No se puede calcular<br>";
?>
</body>
</html>

Sentencia if…elseif…..else
if(condicion1)
{
Instrucciones1;
}
elseif (condicion2)
{
Instrucciones2;
}
elseif(condicion3)
{
Instrucciones3;
}
else
{
Instrucciones a ejecutar si ninguna de las condiciones anteriores es cierta
}
El funcionamiento de esta sentencia es el siguiente: Si la primera condición es evaluada como cierta
entonces se ejecutan las sentencias del bloque correspondiente y tras ello finaliza la ejecución de la
sentencia, En el caso de que la primera condición sea falsa, el interprete continuará evaluando de manera
consecutiva las siguientes hasta encontrar la primera que es cierta, en cuyo caso se ejecutan las
sentencias de su bloque y se finaliza. Si ninguna de las condiciones es cierta se ejecutan las Instrucciones
que siguen a else.
Ejemplo:
<html>
<head>
<title>Estructuras Condicionales</title>
</head>
<body>
<h1>Sentencia if... elseif ... else</h1>
<hr>
<br>
<font color="blue">verifica si un numero es positivo, negativo o cero </font><br>
<?php
$x=-20;
if($x>0)
echo "El numero es positivo<br>";
elseif($x<0)
echo "El numero es negativo<br>";
else
echo "El numero es cero <br>";
?>
<br>
<font color="blue"> Calcula el precio de acuerdo a la edad de la persona</font><br>
<?php
$edad=35;
if ($edad<3)
$precio=0;
elseif($edad<=16)
$precio=8;
elseif($edad<65)
$precio=12;
else
$precio=10;
echo "El precio de la entrada es : $precio <br>";
?>
</body>
</html>
Sentencia switch
La sintaxis básicas de la sentencia es :
switch(expresión)
{
case valor1:
Instrucciones 1;
break;
case valor2:
Instrucciones 2;
break;
...
case valorN:
Instrucciones N;
break;
default:
Instrucciones;
}
Esta instrucción evalúa la expresión y sucesivamente compara el valor devuelto con los valores que van
apareciendo en cada una de las clausulas case, cuando el valor coincide ejecuta las instrucciones que van a
continuación hasta llegar al final de la estructura o encontrarse con una sentencia de finalización break.
La clausula default es opcional y permite indicar las sentencias a ejecutar cuando la expresión no toma
ninguno de los valores anteriores.
La expresión que se evalúa y compara en la sentencia switch puede ser cualquier expresión que se evalué a
un tipo simple, es decir, números enteros o de punto flotante y cadenas de caracteres
Ejemplo:
<html>
<head>
<title>Estructuras Condicional Multiple</title>
</head>
<body>
<h1>Sentencia swich</h1>
<hr>
<font color="blue">Reporta el dia que le corresponde de acuerdo un numero</font><br>
<?php
$num=4;
switch($num)
{
case 1: echo "Domingo <br>";
break;
case 2: echo "Lunes <br>";
break;
case 3: echo "Martes <br>";
break;
case 4: echo "Miercoles <br>";
break;
case 5: echo "Jueves <br>";
break;
case 6: echo "Viernes <br>";
break;
case 7: echo "Sabado <br>";
break;
default:
echo "Numero fuera de rango<br>";
}
?>
<br>
<font color="blue">Calculo de precio de acuerdo al dia de la semana <br>
En caso de que la variable $dia no coincida con ninguno de los valores predefinidos<br>
(L,M,X,J,V,S y D) la variable $precio no tendra ningun valor asignado.<br>
</font>
<br>

<?php
$dia="M";
switch($dia)
{
case "L":
$precio=4;
break;
case "M":
$precio=3; break;
case "X": case "J": case "D";
$precio=4.5;
break;
case "V": case "S":
$precio=5;
break;
default:
$precio=0;
}
echo "El precio es : $precio<br>";

?>
<br>

<p><font color="blue">
Calculo del numero de dias que tiene un mes concreto, considerando ademas si el año es bisiesto
o no (un año es bisiesto cuando es multiplo de 4 pero no de 100, o bien cuando es multiplo de
400)
</font></p>
<?php
$mes=2;
$año=2004;
switch($mes)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
$nd=31;
break;
case 4: case 9: case 11:
$nd=30;
break;
case 2:
if(($año%4==0 && $año%100!=0) || $año % 400==0)
$nd=29;
else
$nd=28;
break;
}
echo "el numero de dias del mes es : $nd <br>";
?>

</html>

</body>
Estructuras Repetitivas
1)

while (mientras)
while(expresión)
{
Instrucciones
}

Las instrucciones se ejecutan mientras la condición es verdadera. En otras palabras termina cuando la
expresión es falsa.
2)

do . . . while (Hacer mientras)

do{
Instrucciones;
}while(condición);
3)

for
for(expresion1;expresion2; expresion3)
{
Instrucciones;
}

4)

foreach
Permite recorrer todos los elementos de un array de una forma muy simple.
La sintaxis es la siguiente:
foreach( nombre_array as nombre_variable)
{
Sentencias a efectuar para cada elemento del array
}
Como puede apreciarse, debe indicarse el nombre del array en el que están almacenados todos
los datos y el nombre de una variable, En la iteración inicial esta variable contendrá el valor del
primer elemento del array y en las sucesivas iteraciones del bucle esta variable hará referencia
a los siguientes elementos.

Ejemplo:
<html>
<head>
<title>Estructuras Repetitivas</title>
<STYLE type="text/css">
<!-H1 {text-decoration: underline; text-align:center}
P {font-Family:arial,verdana; color: blue;}
// -->
</STYLE
</head>
<body>
<h1>Estructuras Repetitivas</h1>
<hr>
<p> Reportar los numeros 5, 10, 15, 20, ... 95, 100</p>

<?php
$n=5;
while($n<=100)
{
print "$n ";
$n +=5;
}

?>
<p> Reportar los numeros 40, 50, 60, ... 150</p>
<?php
$c=40;
do{
print "$c ";
$c +=10;
}while($c<=150);
?>
<p> Reportar los numeros 40, 50, 60, ... 150</p>
<?php
$c=40;
do{
print "$c ";
$c +=10;
}while($c<=150);
?>
<p> Calculo del factorial de un numero </p>
<?php
$n=5;
$fact=1;
for($i=1;$i<=$n;$i++)
$fact=$fact * $i;
print "El factorial de $n es : $fact <br>";
?>
<p> Listar los elementos de un arreglo usando foreach</p>
<?php
$lista=array("Juan","Carlos","Pedro","Susana");
foreach($lista as $valor)
print "$valor <br>";
?>

</html>

</body>
Ejercicios
1) Construir en forma aleatoria, una contraseña formada por 8 letras. Se puede utilizar la funcin
rand() para generar un numero aleatorio entre 97 y 122 (códigos ASCII correspondientes a la
letras minusculas) y la función chr() para obtener el carácter asociado a un código ASCII dado.
2) Construir la tabla de multiplicar del 1 al 10 en forma de tabla.
Solución
<html>

<head>
<title>Estructuras Repetitivas</title>
<STYLE type="text/css">
<!-H1 {text-decoration: underline; text-align:center}
P {font-Family:arial,verdana; color: blue;}
// -->
</STYLE
</head>
<body>
<h1>Estructuras Repetitivas</h1>
<hr>

<p>Construir en forma aleatoria, una contraseña formada por 8 letras.
Se puede utilizar la funcin rand() para generar un numero aleatorio
entre 97 y 122 (códigos ASCII correspondientes a la letras minusculas)
y la función chr() para obtener el carácter asociado a un código ASCII dado.
</p>
<?php
$codigo="";
for($i=1;$i<=8;$i++)
{
$letra=chr(rand(97,122));
$codigo=$codigo.$letra;
}
print("Contraseña asignada es : <b>$codigo</b>");

?>
<p> Construir la tabla de multiplicar desde el 1 al 10 en forma de tabla </p>
<?php
print ("<table border=1>");
// Generacion de la fila de la cabecera
print "<tr align='center'><th> * </th>";
for($i=1;$i<=10;$i++)
print "<th> $i </th>";
print "<tr>";
for($i=1; $i<=10; $i++)
{
print "<tr align='CENTER'><th>$i</th>";
for($j=1;$j<=10;$j++)
print "<td>". $i*$j . "</td>";
print "</tr>";
}
print "<table>";
?>

</html>

</body>
Sentencias break y continue
Las sentencias break y continue permiten alterar la ejecución prevista de una estructura iterativa; la
primera de ellas permite cancelar completamente la ejecución del bucle y la segunda permite cancelar una
de las iteraciones y pasar directamente a la siguiente.
La sentencia break, además de permitir abandonar una estructura iterativa se utiliza también dentro de
la estructura switch para terminar cuando se cumple una condición.

FUNCIONES EN PHP
PHP permite al programador la creación de sus propias funciones, ahorrando tiempo y esfuerzo y
facilitando un mejor diseño de los programas implementados.
La sintaxis que debe adoptarse a la hora de definir una función en PHP es:
function NombreFuncion(argumentos)
{
Instrucciones
return valorDevuelto;
}
Como puede apreciarse, toda definición de función comienza con la palabra reservada function seguida del
nombre asignado, la lista de argumentos y el bloque de definición de la función.
En los nombres de las funciones no se distingue entre mayúsculas y minúsculas aunque siempre es
aconsejable efectuar la llamada a una función tal y como ha sido definida.
Respecto a los argumentos estos son parámetros formales que vienen representados por variables.
Recordar que en PHP no se declaran tipos para las variables, por tanto en los argumentos de la función
tampoco es necesario indicar tipo alguno. Es posible definir funciones sin argumentos, en este caso, a
continuación del nombre deberían colocarse los paréntesis vacios.
function nombreFuncion()
La sentencia return permite que la función devuelva un valor de retorno. Una vez ejecutada esa sentencia
se abandona la función, sin ejecutar cualquier sentencia posterior que se encuentre en el cuerpo de la
misma. El valor devuelto puede ser una cadena de caracteres , un valor numérico, un valor booleano, un
array….
Debe destacarse que a la hora de definir una función no es indispensable que esta devuelva valores; en
este sentido en PHP no hay distinción sintáctica entre lo que en otros lenguajes son funciones y
procedimientos.
Ejemplos:
<?php
function mayor($x,$y,$z)
{
$may=$x;
if($y>$may)
$may=$y;
if($z>$may)
$may=$z;
return $may;
}
function factorial($n)
{
if($n<0)
return "Solo se admiten valores positivos";
elseif($n==0)
return 1;
else
{
$f=1;
for($i=1;$i<=$n;$i++)
$f=$f * $i;
return $f;
}
}
function saluda()
{
print "Bienvenido<br>";
print "¿Como estas?<br>";
}
function generaArray($vi,$vf)
{
$x=array();
for($valor=$vi;$valor<=$vf;$valor++)
$x[]=$valor;
return $x;
}

?>

<html>
<head>
<title>Funciones en PHP</title>
<STYLE type="text/css">
<!-H1 {text-decoration: underline; text-align:center}
P {font-Family:arial,verdana; color: blue;}
// -->
</STYLE
</head>
<body>
<h1>Funciones en PHP</h1>
<hr>

<p>Calcular el mayor de 3 numeros</p>
<?php

?>

$a=12;
$b=15;
$c=4;
$m=mayor($a,$b,$c);
print "el mayor de $a, $b y $c es: $m <br>";

<p>Calcular el factorial de un numero </p>
<?php

?>

$num=6;
$r=factorial($num);
print "el factorial de $num es : $r <br>";
<p> Funcion que permite saludar, no tiene parametros </p>
<?php
print saluda();
?>
<p> Funcion que permite generar un array a partir de dos valores numericos dados
un valor inicial y un valor final </p>
<?php
$x=generaArray(5,30);
print_r($x);

</html>

?>
</body>
Llamadas a las funciones
Se debe tener en cuenta lo siguiente
La función debe encontrarse definida antes del lugar en el que se efectuará la llamada. No
obstante es práctica habitual y recomendable definir las funciones incluso antes de cualquier
código HTML, por ejemplo, colocar los scripts que definen las funciones antes del comando
<HTML> o dentro del encabezado del documento.
En la llamada los parámetros, en el caso de que existan, deben ser pasados en el mismo orden en
el que aparecen en la definición. Como parámetros pueden pasarse variables, valores o
expresiones. Los valores numéricos pueden ser escritos directamente o entrecomillados. En el
caso de las funciones que tienen parámetros, en la llamada deben colocarse los paréntesis vacios.
Si se pasan menos parámetros que los que tiene la función, los últimos parámetros se asumirán
como nulos, la función ejecutará las instrucciones pero se generaran mensajes de aviso
(warnings)
Si la función devuelve un valor, este puede ser asignado a una variable en la llamada o utilizando
directamente en otra expresión.

PARAMETROS DE UNA FUNCION
PARAMETROS OPCIONALES
En php todos los parámetros de las funciones pueden ser considerados opcionales de manera que a la hora
de realizar la llamada a una función, pueden pasarse un numero de argumentos distinto del que acepta la
función. Si se pasan menos argumentos de los esperados, los últimos se asumirán que tienen valor nulo. En
el caso de pasarse más argumentos de los esperados, los que sobran pueden ser ignorados.
Al ejecutar la función se generan unos mensajes de aviso notificando el hecho de recibir menos
parámetros de los previstos.
<?php
function suma($a,$b,$c)
{
return $a+$b+$c;
}
?>
<html>

<head>
<title>Funciones con parametros opcioneles en PHP</title>
<STYLE type="text/css">
<!-H1 {text-decoration: underline; text-align:center}
P {font-Family:arial,verdana; color: blue;}
// -->
</STYLE
</head>
<body>
<h1> Funciones con parametros opcionales en PHP </h1>
<hr>

<?php
print "La suma
print "La suma
print "La suma
print "La suma
?>
</body>
</html>

es : "
es : "
es : "
es : "

.suma() . "<br>";
.suma(6) . "<br>";
.suma(6,15) . "<br>";
.suma(6,15,4) . "<br>";

Ejemplo:
Considere una función que reciba el valor de 3 números y retorne la suma de ellos.

PARAMETROS CON VALORES POR DEFECTO
Al definir funciones pueden darse valores por defecto para los parámetros , de tal forma que si un
parámetro no está presente en la llamada, se le asigna ese valor por defecto en lugar de tomar el valor
nulo. Para indicar un valor por defecto basta asignar dicho valor con el signo “=” en la lista de argumentos
de la cabecera de la función. Si la función tiene argumentos que no llevan valor por defecto y otros que si
lo llevan, estos últimos deben estar situados al final en la lista de argumentos de la función.
Ejemplo:
<?php
function suma($a=6,$b=15,$c=4)
{
return $a+$b+$c;
}
?>
<html>
<head>
<title>Funciones con parametros con valores por defecto en PHP</title>
<STYLE type="text/css">
<!-H1 {text-decoration: underline; text-align:center}
P {font-Family:arial,verdana; color: blue;}
// -->
</STYLE
</head>
<body>
<h1> Funciones con parametros con valores por defecto en PHP </h1>
<hr>
<?php
print "La suma es : " .suma() . "<br>";
print "La suma es : " .suma(8) . "<br>";
print "La suma es : " .suma(8,20) . "<br>";
print "La suma es : " .suma(8,20,32) . "<br>";
?>
</body>
</html>

LISTA DE PARAMETROS DE LONGITUD VARIABLE
Las funciones definidas por el usuario pueden recibir lista de argumentos de longitud variable. En este
caso a la hora de definir la función se puede dejar la lista de argumentos vacía y utilizar una serie de
funciones predefinidas para recuperar los argumentos que realmente han sido pasados a la hora de
efectuar la llamada a la función.
La primera de las funciones que puede ser utilizada es : func_num_args() que devuelve el numero de
parámetros que efectivamente han sido pasados.
Una vez que se sabe cuantos parámetros han sido pasados, es necesario también disponer de algún
mecanismo para recuperar los valores de los mismos. La siguiente función permite recuperar el valor del
argumento numero n: func_get_arg(n), debe tenerse en cuenta que la numeración de los argumentos
comienza en 0.
Si lo que se desea es recuperar todos los valores de los argumentos en una estructura de datos y en una
sola operación, puede usarse la función func_get_args() que devuelve un array con todos los valores de
los argumentos.
Ejemplo:
A continuación definimos una función que calcula la suma de los valores de todos los argumentos.
<?php
function suma()
{
$n=func_num_args();
$aux=0;
for($i=0;$i<$n;$i++)
$aux = $aux+ func_get_arg($i);
return $aux;
}
?>

<html>
<head>
<title>Funciones con parametros de longitud variable en PHP</title>
<STYLE type="text/css">
<!-H1 {text-decoration: underline; text-align:center}
P {font-Family:arial,verdana; color: blue;}
// -->
</STYLE
</head>
<body>
<h1> Funciones con parametros de longitud variable </h1>
<hr>
<?php
print "La suma es : " .suma(2,5,8) . "<br>";
print "La suma es : " .suma(1,2) . "<br>";
?>
</body>
</html>
PASO DE PARAMETROS POR VALOR O POR REFERENCIA
A la hora de efectuar la llamada a una función, los argumentos pueden ser pasados por valor o por
referencia. En el primer caso, lo que se pasa es realmente es una copia del correspondiente valor para que
la función lo reciba y realice con él las correspondientes operaciones.
En el segundo caso, en cambio, cuando se pasa una variable como argumento, no se pasa a la función una
copia de su valor sino la dirección de memoria donde se encuentra dicha variable. De esta forma la
función puede acceder directamente a esa zona de memoria y leer o modificar el valor de la variable.
Para indicar que es un parámetro por referencia se debe preceder el símbolo & a la variable.
<?php
function fValor($x)
{
$x= $x + 2;
}
function fReferencia(&$x)
{
$x= $x + 2;
}
?>
<html>

<head>
<title>Funciones con parametros con valores por defecto en PHP</title>
<STYLE type="text/css">
<!-H1 {text-decoration: underline; text-align:center}
P {font-Family:arial,verdana; color: blue;}
// -->
</STYLE
</head>
<body>
<h1> Funciones con parametros por valor y referencia </h1>
<hr>
<?php
print "Llamando a la funcion con parametro por valor <br>";
$a=12;
fValor($a);
print "El valor de a es : $a <br>";
print "Llamando a la funcion con parametro por referencia<br>";
$a=12;
fReferencia($a);
print "El valor de a es : $a <br>";
?>
</body>

</html>
AMBITO DE LAS VARIABLES
VARIABLES LOCALES
Toda variable definida dentro de una función tiene un ámbito local a la misma; es decir, únicamente podrá
ser utilizada dentro de la propia función.
VARIABLES GLOBALES
Una variable declarada fuera de una función tiene un ámbito global, y no puede ser utilizada dentro de
una función, a no ser que se declare explícitamente su globalidad.
Ejemplo:
$director=”Amenábar”;
function prueba()
{
global $director;
print $director;
}
VARIABLES ESTATICAS
Otro aspecto importante relacionado con el ámbito de las variables es la posibilidad de definir variables
estáticas. Una variable estática tiene un ámbito local a la función en la que se define pero no pierde su
valor cuando se termina la ejecución de la misma. Es decir conserva el valor entre llamadas sucesivas a la
función; en contra de lo que ocurre con las variables locales, que pierden su valor una vez que la ejecución
de la función ha finalizado.
Ejemplo:
La siguiente función declara una variable estatica, con valor inicial 0, y en cada llamada se incrementa una
unidad y escribe su nuevo valor.
<?php
function pruebaEstatica()
{
static $n=0;
$n++;
print "$n ";
}
?>
<html>
<head>
<title>Variables estaticas en PHP</title>
<STYLE type="text/css">
<!-H1 {text-decoration: underline; text-align:center}
P {font-Family:arial,verdana; color: blue;}
// -->
</STYLE
</head>
<body>
<h1> variables estaticas en php </h1>
<hr>

</html>

<?php
for($i=1;$i<=10;$i++)
pruebaEstatica();
?>
</body>

CLAUSULAS INCLUDE Y REQUIRE
Al programar es bastante frecuente que unas mismas líneas de código o conjunto de funciones se
necesiten en varios documentos. Puede tratarse por ejemplo de:
Funciones de validación de datos
Funciones para mostrar cabeceras o pies de paginas
Código de configuración para acceso a una base de datos
Definición de determinados parámetros del programa.
En lugar de copiar el código, se puede optar por escribir el código correspondiente en ficheros externos
e incluirlos tantas veces como se quiera en otros ficheros diferentes. Las clausulas include y require
permiten incluir y ejecutar el contenido del fichero indicado en aquel que contiene la clausula. De esta
forma pueden escribirse completas librerías de funciones y facilitar la portabilidad y reusabilidad.
La sintaxis de las dos sentencias de inclusión es idéntica:
include(“fichero.php”);
require(“fichero.php”);
La inclusión puede realizarse en cualquier punto del programa, incluso puede depender del flujo de
ejecución, por ejemplo, una inclusión dentro de un bloque if.
La única diferencia entre include y require es que, en caso de no localizar el fichero a incluir, require
produce un “Error Fatal” y no ejecuta el resto del programa ni continúa con la carga de la pagina. En
cambio con include, si el fichero no se encuentra se genera un aviso pero se sigue con la ejecución del
resto del programa y carga de la pagina.
Ejemplo
A continuación se muestra el uso de la clausula require para incluir en un programa las asignaciones
realizadas en el fichero de nombre definiciones.php
Fichero: definiciones.php
<?php
$titulo="Los increibles";
$director="Brad Bird";
$genero="aventuras";
?>
Si otro documento quiere incluir estas definiciones, deberá hacerlo de la siguiente manera:
<html>
<head>
<title>Include y Require</title>
</head>
<body>
<?php
require("definiciones.php");
print "Nuestro proximo extreno : $titulo<br>";
print "pelicula de genero : $genero<br> ";
print "dirigida por : $director<br>";
?>
</body>
</html>
ARRAYS
Un array o matriz es un conjunto de datos que se almacena bajo un nombre común y a los que se puede
acceder utilizando uno o mas índices. En PHP los datos que componen el array pueden ser de diferente
tipo, de manera que en un único array pueden almacenarse indistintamente cadenas de caracteres, valores
numéricos, otros arrays,.. Una de las particularidades que distinguen a PHP de otros lenguajes de
programación surge a la hora de crear el array: no es necesario determinar la dimensión antes de
inicializarlo. Esto dota de una gran flexibilidad a los programas pues permite la modificación posterior del
array, suprimiendo o añadiendo nuevos elementos cuando sea necesario.
Construccion de Arrays
Los elementos que componen un array, como cualquier otro elemento, son almacenados en una variable,
para indicar que dicha variable contiene un array se utilizan los caracteres [], situando entre ellos un
índice numérico que permitirá identificar a cada uno de los elementos individuales.
Ejemplo:
$x[0]=12;
$x[1]=”Hola”;
$x[2]=25.8;
$x[]=”Ultimo”;
A la hora de añadir un ultimo elemento no es necesario indicar el índice correspondiente. En este ejemplo,
automáticamente se asigna a la posición 3. Además, puede observarse como el array puede contener datos
de tipos diferentes, en este caso dos valores numéricos y dos cadenas de caracteres.
Otra manera de crear arreglos es con ayuda de la función array()
$x = array(12,”Hola”,25.8,”Ultimo”);
En este caso no se han considerado índices y se consideran por defecto los valores 0,1,2,….
Arrays Asociativos
Supóngase que se desea almacenar los años de un conjunto de películas. Se puede construir un array de
elementos numéricos (los años) indexados mediante una cadena de caracteres (el titulo de la película
correspondiente)
$peliculasAño[“La costilla de Adan”]=1949;
$peliculasAño[“La gran Ilusion”]=1937;
$peliculasAño[“Roma, la ciudad Abierta”]=1944;
$peliculasAño[“Sabrina”]=1954;
$peliculasAño[“Vive como quieras”]=1938;
Otra manera de generar este arreglo seria con la función array()
$peliculasAño = array(“La Costilla de Adan” => 1949, “La gran Ilusion”, => 1937, “Roma, la ciudad Abierta”
=> 1944,
“Sabrina” => 1954, “Vive como quieras” => 1938);
En este caso, al construir el array debe indicarse tanto la palabra clave que actua de índice como el valor
asociado a ese elemento del array. Aunque el array se haya construido con la función array, en cualquier
momento se puede añadir un nuevo elemento
$peliculasAño[“West Side Story”] = 1961;
Arrays Multidimensionales
El lenguaje PHP permite la creación de arrays ultimensionales, es decir, arrays cuyos elementos son
nuevos arrays. La sintaxis es similar al caso de una dimensión, siendo necesario indicar los dos índices por
separado.
Ejemplo:
A continuación creamos un array de nombre $M y de dos dimensiones.
$M[0][0] = 5;
$M[0][1] = 3;
$M[1][0] = -2;
$M[1][1] = 7;
La definición equivalente usando la función array() seria:
$M = array( array(5,3), array(-2,7));
Es posible definir arrays asociativos multidimensionales, e incluso combinar índices numéricos y
alfabéticos.
$pelicula[“George Lucas”][1949]= “La costilla de Adan”;
$pelicula[“Jean Renoir”][1937]= “La gran Ilusion”;
$pelicula[“Roberto Rosselini”][1944] = “Roma, Ciudad Abierta”;
$pelicula[“Billy Wilder”][1954] = “Sabrina”;
$pelicula[“Frank Capra”][1938] = “Vive como quieras”;
Tambien es posible indexar los elementos de un array multidimensional
$pelicula = array(
“La costilla de Adan” => array(“Director” =>”G. Cukor”, “Año” => 1949),
“La gran Ilusion” => array(“Director” =>”Jean Renoir”, “Año” => 1937),
“Roma, Ciudad Abierta” => array(“Director” =>”Roberto Rosselini”, “Año” => 1944),
“Sabrina” => array(“Director” =>”Billy Wilder”, “Año” => 1954),
“Vive como quieras” => array(“Director” =>”Frank Capra”, “Año” => 1938)
)
Recorrido de todos los elementos de un array
Una vez creado e inicializado un array unidimensional o multidimensional, pude que se esté interesado en
mostrar o manipular todos sus elementos. Para mostrar todos los elementos de un array, una primera
opción es el uso de la función print_r(), que aplicada sobre un array muestra en la pagina la estructura del
mismo de acuerdo al siguiente esquema:
( [índice] => elemento1
[índice] => elemento2
...
[índice] => elementon)
Para la manipulación de los elementos de arrays se dispone de estructuras iterativas que simplifican la
tarea en particular, es de destacar una sentencia especifica para recorrer todos los elementos de un
array:
foreach( array as valor)
Ejemplo: El siguiente código recorre todos los elementos de un arreglo y los muestra en la pagina
$actores = array(“Marlon Brando”,”Gary Cooper”,”Cary Grant”,”James Stewart”);
foreach( $actores as $nombre)
echo “ $nombre <br>”;
Si además de recuperar los elementos del array, se desea también conocer el índice, tanto en el caso de
índices numéricos como en array asociativos, se puede una sintaxis alternativa del bucle foreach
foreach(array as índice => valor)
Ejemplo:
Si tenemos el arreglo y queremos reportarlo
$peliculasAño = array (“La Costilla de Adan” => 1949, “La gran Ilusion”, => 1937, “Roma, la ciudad Abierta”
=> 1944,
“Sabrina” => 1954, “Vive como quieras” => 1938);
foreach($peliculasAño as $indice => $valor)
echo “<i>$indice,</i> ($valor) <br>”;
Tambien es posible utilizar estas estructuras iterativas anidadas para recorrer arrays
multidimensionales.
Ejemplo:
$peliculas = array(
“La costilla de Adan” => array(“Director” =>”G. Cukor”, “Año” => 1949),
“La gran Ilusion” => array(“Director” =>”Jean Renoir”, “Año” => 1937),
“Roma, Ciudad Abierta” => array(“Director” =>”Roberto Rosselini”, “Año” => 1944),
“Sabrina” => array(“Director” =>”Billy Wilder”, “Año” => 1954),
“Vive como quieras” => array(“Director” =>”Frank Capra”, “Año” => 1938)
);
foreach($peliculas as $indice => $titulo)
{
echo “Datos de $indice : <br>”;
foreach($titulo as $indice =>$valor)
echo ”&nbsp&nbsp $indice; $valor <br>”;
}

Ejercicio1: Crear y mostrar los arreglos unidimensionales anteriores
<html>
<head>
<title>Arreglos</title>
</head>
<body>
<h1>Arreglos</h1>
<hr>
<font color="blue">Mostrar los elementos de un arreglo</font><br>
<?php
$x[0]=12;
$x[1]="Hola";
$x[2]=25.8;
$x[]="Ultimo";
for($i=0;$i<count($x);$i++)
print " elemento $i : $x[$i]<br>";
?>
<br>
<font color="blue">Mostrar un arreglo de nombres creado con array </font><br>
<?php
$actores = array("Marlon Brando","Gary Cooper","Cary Grant","James Stewart");
foreach($actores as $nombre)
echo " $nombre <br>";

?>
<br>
<font color="blue">Mostrar un arreglo asociativo </font><br>
<?php
$peliculasAño=array("La Costilla de Adan" => 1949, "La gran Ilusion" => 1937, "Roma, la ciudad
Abierta" => 1944,"Sabrina" => 1954, "Vive como quieras" => 1938);
foreach($peliculasAño as $indice => $valor)
echo "<i>$indice,</i> ($valor) <br>n";
?>
</body>
</html>

Ejercicio2: Crear y mostrar las matrices de los ejemplos.
<html>

<head>
<title>Matrices</title>
</head>
<body>
<h1>Matrices</h1>
<hr>
<font color="blue">Mostrar los elementos de una matriz</font><br>
<?php
$M[0][0] = 5;
$M[0][1] = 3;
$M[1][0] = -2;
$M[1][1] = 7;

for($i=0;$i<2;$i++)
{

}

for($j=0;$j<2;$j++)
print $M[$i][$j]." ";
print "<br>";

?>
<br>
<font color="blue">Mostrar un arreglo asociativo multidimensional </font><br>
<?php
$peliculas = array("La costilla de Adan" => array("Director" =>"G. Cukor", "Año" => 1949),"La
gran Ilusion" => array("Director" =>"Jean Renoir", "Año" => 1937),
"Roma, Ciudad Abierta" => array("Director" =>"Roberto Rosselini", "Año" => 1944),
"Sabrina" => array("Director" =>"Billy Wilder", "Año" => 1954),
"Vive como quieras" => array("Director" =>"Frank Capra", "Año" => 1938)
);
foreach($peliculas as $indice => $titulo)
{
echo "Datos de : $indice : <br>";
foreach($titulo as $indice =>$valor)
echo "&nbsp&nbsp $indice : $valor <br>";
}
?>
</body>
</html>
PROGRAMACION ORIENTADA A OBJETOS
Crear una clase Rectángulo con atributos base y altura y mostrar el área, perímetro y diagonal
<?php
class Rectangulo{
private $largo,$ancho;
public function __construct($l,$a)
{
$this->largo=$l;
$this->ancho=$a;
}
public function setLargo($l)
{
$this->largo=$l;
}
public function setAncho($a)
{
$this->ancho=$a;
}
public function getLargo()
{
return $this->largo;
}
public function getAncho()
{
return $this->ancho;
}
public function area()
{
return $this->largo*$this->ancho;
}
public function perimetro()
{
return 2*($this->largo + $this->ancho);
}
public function diagonal()
{
return sqrt(pow($this->largo,2) + pow($this->ancho,2));
}
}

class Caja extends Rectangulo{
private $altura;
public function __construct($l,$a,$h)
{
parent::__construct($l,$a);
$this->altura=$h;
}
public function setAltura($h)
{
$this->altura=altura;
}
public function getAltura()
{
return $this->altura;
}
public function volumen()
{
return parent::area()*$this->altura;
}

}
?>

<html>
<head>
<title>Programacion Orientada a Objetos en PHP</title>
</head>
<body>
<h1>Programacion Orientada a Objetos</h1>
<hr>
<font color="blue">Crear un Objeto Rectangulo y mostrar area, perimetro, diagonal</font><br>
<?php
$r= new Rectangulo(3,4);
echo "Rectangulo <br>";
echo " Largo: ".$r->getLargo() . "<br>";
echo " Ancho: ".$r->getAncho() . "<br>";
echo " Area: ".$r->area() . "<br>";
echo " Perimetro : ".$r->perimetro() . "<br>";
echo " Diagonal : ".$r->diagonal() . "<br>";
echo "<br>";
?>
<font color="blue">Nuevos valores de atributos</font><br>
<?php
$r->setLargo(5);
$r->setAncho(12);
echo " Largo : ".$r->getLargo() . "<br>";
echo " Ancho : ".$r->getAncho() . "<br>";
echo " Area: ".$r->area() . "<br>";
echo " Perimetro : ".$r->perimetro() . "<br>";
echo " Diagonal : ".$r->diagonal() . "<br>";
?>
<font color="blue">Creacion del Objeto caja</font><br>
<?php
$c= new Caja(6,9,10);
echo "Largo : ". $c->getLargo() . "<br>";
echo "Ancho : ". $c->getAncho() . "<br>";
echo "Altura : ". $c->getAltura(). "<br>";
echo "Volumen : ". $c->volumen() . "<br>";
?>
</html>

</body>

Problema: Implementar una clase con atributos una lista de direcciones y una lista de títulos y muestre
una lista de hipervínculos en forma horizontal (básicamente un menú de opciones)
Lo primero que debemos pensar es que valores almacenará la clase, en este caso debemos cargar una lista
de direcciones web y los títulos de los enlaces. Podemos definir dos vectores paralelos que almacenen las
direcciones y los títulos respectivamente.
Definiremos dos métodos: cargarOpcion y mostrar.
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Menu {
private $enlaces=array();
private $titulos=array();
public function cargarOpcion($en,$tit)
{
$this->enlaces[]=$en;
$this->titulos[]=$tit;
}
public function mostrar()
{
for($f=0;$f<count($this->enlaces);$f++)
{
echo '<a href="'.$this->enlaces[$f].'">'.$this->titulos[$f].'</a>';
echo "-";
}
}
}
$menu1=new Menu();
$menu1->cargarOpcion('http://www.google.com','Google');
$menu1->cargarOpcion('http://www.yahoo.com','Yhahoo');
$menu1->cargarOpcion('http://www.msn.com','MSN');
$menu1->mostrar();
?>
</body>
</html>

Problema:Confeccionar una clase Tabla que permita indicarle en el constructor la cantidad de filas y
columnas. Definir otra responsabilidad que podamos cargar un dato en una determinada fila y columna.
Finalmente debe mostrar los datos en una tabla HTML.
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Tabla {
private $mat=array();
private $cantFilas;
private $cantColumnas;
public function __construct($fi,$co)
{
$this->cantFilas=$fi;
$this->cantColumnas=$co;
}

}

public function cargar($fila,$columna,$valor)
{
$this->mat[$fila][$columna]=$valor;

public function inicioTabla()
{
echo '<table border="1">';
}
public function inicioFila()
{
echo '<tr>';
}
public function mostrar($fi,$co)
{
echo '<td>'.$this->mat[$fi][$co].'</td>';
}
public function finFila()
{
echo '</tr>';
}
public function finTabla()
{
echo '</table>';
}
public function graficar()
{
$this->inicioTabla();
for($f=1;$f<=$this->cantFilas;$f++)
{
$this->inicioFila();
for($c=1;$c<=$this->cantColumnas;$c++)

{

$this->mostrar($f,$c);
}
$this->finFila();
}

}

$this->finTabla();
}

$tabla1=new Tabla(2,3);
$tabla1->cargar(1,1,"1");
$tabla1->cargar(1,2,"2");
$tabla1->cargar(1,3,"3");
$tabla1->cargar(2,1,"4");
$tabla1->cargar(2,2,"5");
$tabla1->cargar(2,3,"6");
$tabla1->graficar();
?>
</body>
</html>

Problema:Una página web es común que contenga una cabecera, un cuerpo y un pié de página. Estas tres
secciones podemos perfectamente identificarlas como clases. También podemos identificar otra clase
página. Ahora bien cómo podemos relacionar estas cuatro clases (pagina, cabecera, cuerpo, pie), como
podemos imaginar la cabecera, cuerpo y pie son partes de la pagina. Luego podemos plantear una clase
pagina que contenga tres atributos de tipo objeto
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Cabecera {
private $titulo;
public function __construct($tit)
{
$this->titulo=$tit;
}
public function graficar()
{
echo '<h1 style="text-align:center">'.$this->titulo.'</h1>';
}
}
class Cuerpo {
private $lineas=array();
public function insertarParrafo($li)
{
$this->lineas[]=$li;
}
public function graficar()
{
for($f=0;$f<count($this->lineas);$f++)
{
echo '<p>'.$this->lineas[$f].'</p>';
}
}
}
class Pie {
private $titulo;
public function __construct($tit)
{
$this->titulo=$tit;
}
public function graficar()
{
echo '<h4 style="text-align:left">'.$this->titulo.'</h4>';
}
}
class Pagina {
private $cabecera;
private $cuerpo;
private $pie;
public function __construct($texto1,$texto2)
{
$this->cabecera=new Cabecera($texto1);
$this->cuerpo=new Cuerpo();
$this->pie=new Pie($texto2);
}
public function insertarCuerpo($texto)
{
$this->cuerpo->insertarParrafo($texto);
}
public function graficar()
{
$this->cabecera->graficar();
$this->cuerpo->graficar();
$this->pie->graficar();
}
}
$pagina1=new Pagina('Título de la Página','Pie de la página');
$pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 1');
$pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 2');
$pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 3');
$pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 4');
$pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 5');
$pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 6');
$pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 7');
$pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 8');
$pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 9');
$pagina1->graficar();
?>
</body>
</html>
Base de datos con PHP y MYSQL
Apertura de la conexión
El primer paso para conseguir acceder a los datos de una base de datos MySQL es establecer la conexión
con el servidor de base de datos. Desde PHP esta conexión se realiza con la función.
mysql_connect(servidor,usuario,contraseña);
Los tres parámetros anteriores permiten identificar el servidor sobre el que está instalado MySQL, y el
nombre de usuario y contraseña necesarios para conectarse. Por supuesto, estos dos últimos datos deben
coincidir con los de un usuario registrado en MySQL
La función mysql_connect() devuelve un valor entero que se utilizara como identificador de la conexión en
las operaciones posteriores. Si se produce un error en la conexión, el valor devuelto por la función será 9.
Cierre de la Conexión
La conexión realizada se cierra automáticamente al terminar la ejecución del script en el que se ha
establecido, o bien explícitamente con la función mysql_close(). Esta función recibe como único
argumento el identificador de la conexión.
mysql_close(identificador);
El identificador de la conexión en la función mysql_close() es opcional, en caso de que no se indique se
cerrara la ultima conexión abierta.
La función mysql_close() devuelve un valor entero que será nulo en el caso de que se produzca algún error
en el proceso.
De esta manera, el esquema general de un programa que realiza conectividad con MySQL seria:
$c = mysql_connect(“localhost”,”root”,””);
if(!$c)
die(“Lo siento, error en la conexion”);
else
print “Conexión establecida correctamente”;
...
...
mysql_close();
Selección de la Base de Datos
Una vez abierta la conexión con el servidor MySQL, el siguiente paso será la selección de una base de
datos disponibles para la realización de las operaciones posteriores sobre ella. La función que permite
seleccionar una base de datos es :
mysql_select_db(nombreBaseDeDatos,identificadorConexion);
El primer parámetro será el nombre de la base de datos a seleccionar y el segundo el identificador de la
conexión.
De nuevo, como en todas las funciones de conexión, si se produce un error, por ejemplo, porque la base de
datos no existe, la función mysql_select_db() devolverá el valor 0.
$c=mysql_connect(“localhost”,”root”,””);
$bd = mysql_select_db(“bdejemplo”,$c);
if( !$c )
die(“Base de datos no existente”);
Ejecución de sentencias SQL sobre la base de datos seleccionada
La selección mysql_query() permite ejecutar cualquier sentencia SQL sobre la base de datos activa. Esta
función admite dos argumentos, el primero es una cadena de caracteres con el código SQL de la consulta
a realizar; el segundo argumento será el identificador de la conexión.
mysql_query(sentencia, identificadorDeConexion);
Esta función devuelve 0 si se produce algún error o un numero entero positivo en caso de ejecución
correcta.
En las sentencias de selección, este valor devuelto se utilizará posteriormente para acceder el resultado
de la consulta. En el caso de sentencias de creación, inserción, eliminación o actualización, este valor
devuelto únicamente sirve para comprobar si la sentencia se ejecuto correctamente.

Ejemplo:
$c = mysql_connect(“localhost”, “root”, “”);
if(!$c)
die(“conexion fallida”);
$ok = mysql_select_db(“bdejemplo”, $c);
if(!$ok)
die(“error en la seleccion de la base de datos”);
$consulta = “alter table producto add tipo varchar(20) not null”;
$resultado=mysql_query($consulta, $c);
if($resultado)
print(“Tabla actualizada”);
else
printt(“No se ha podido actualizar la tabla”);
mysql_close($c);
Funciones usadas en el manejo de base de datos
mysql_num_rows() : Devuelve el numero de filas de un resultado.
Ejemplo:
$resultado=mysql_query($consulta, $c);
if(mysql_num_rows($resultado))
{
...
}
-

die(mensaje): La función die() se encarga de imprimir un mensaje, pero además detiene hasta ese
punto la ejecución del script.
-

mysql_fetch_array(id_resultado): Extrae la fila de resultado como un array asociativo.
Devuelve una matriz que corresponde a la sentencia extraida, o falso si no quedan más filas_

Ejemplo:
<?php
$c= mysql_connect($host,$user,$password);
$ok= mysql_select_db(“bdejemplo”, $c);
$consulta=”select * from producto”;
$resultado = mysql_query($consulta, $c);
while($row = mysql_fetch_array($resultado)) {
echo $row["idproducto"];
echo $row["nombreproducto"];
}
mysql_free_result($resultado);
?>
-

mysql_fetch_object ( id_resultado ) : Extrae una fila de resultado como un objeto.
Devuelve un objeto con las propiedades que corresponden a la última fila extraída, o FALSE si no
quedan más filas.
mysql_fetch_object() es similar a mysql_fetch_array(), con la diferencia que un objeto es
devuelto en lugar de un array asociativo. Indirectamente, quiere decir que solo se puede aceder
a los datos por el nombre del campo, y no por su posición.
Nota: Los nombres de campos retornados por esta función diferencian entre mayúsculas y
minúsculas.

Ejemplo:
<?php
$c = mysql_connect("hostname", "user", "password");
$ok=mysql_select_db("mydb");
$result = mysql_query("select * from mytable", $c);
while ($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
mysql_free_result($result);
?>
-

mysql_fetch_row(id_resultado);Devuelve una fila de resultado como matriz.
Devuelve: Una matriz que corresponde a la fila selecionada, o FALSE si no quedan más filas.
mysql_fetch_row() seleciona una fila de datos del resultado asociado al identificador de
resultado especificado. La fila es devuelta como una matriz. Cada columna del resultdo es
guardada en un offset de la matriz, empezando por el offset 0.
La llamada a mysql_fetch_row() deberá devolver la proxima fila del resultado, o FALSE si no
quedan mas filas.

Ejemplo:
<?php
$c = mysql_connect("hostname", "user", "password");
$ok=mysql_select_db("mydb");
$result = mysql_query("select * from mytable", $c);
while ($row = mysql_fetch_row($result)) {
echo $row[0];
echo $row[1];
}
Ejercicio
Crear una base de datos llamada empresa, y luego una tabla llamada producto con los siguientes atributos;
idproducto, descripción, precio y stock.
Luego hacer un menú de opciones con los siguiente:
Registrar Productos
Mostrar Productos
Consultar Producto
Eliminar Producto
Modificar Producto

formularioRegistro.html
<html >
<head>
<title>Registro de Productos</title>
</head>
<body>
<h1>Registro de Productos</h1>
<hr color="#CC0000"/>
<form action ="insertaproducto.php" method="post">
idproducto <input type="text" name="idproducto"><br>
descripcion <input type="text" name="descripcion"><br>
precio <input type="text" name="precio"><br>
stock <input type="text" name="stock"><br>
<input type="submit" value="registrar">
<input type="reset" value="borrar">
</form>
<p>&nbsp;</p>
</body>
</html>

insertaproducto.php
<html>
<head>
<title>registro de nuevo producto</title>
</head>
<body>
<?php
// Comprobacion de la recepcion de las variables
$idproducto=$_POST["idproducto"];
$descripcion=$_POST["descripcion"];
$precio=$_POST["precio"];
$stock = $_POST["stock"];
if(isset($idproducto,$descripcion,$precio,$stock))
{
$host="localhost";
$usuario="root";
$password="";
$db="empresa";
$c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error());
mysql_select_db($db,$c) or die("Error ". mysql_error());
$consulta="INSERT INTO producto(idproducto,descripcion,precio,stock)
VALUES ('$idproducto','$descripcion','$precio','$stock')";
// Ejecucion de la consulta
if(mysql_query($consulta,$c))
print("<center><h2> PRODUCTO REGISTRADO</h2></center>");
}
else
print("No se han definido las variables");
?>
</body>
</html>

mostrarProductos.php
<html >
<head>
<title>Lista de Productos </title>
</head>
<body>
<h1 align="center"><font color="#CC0000">Lista de Productos Disponibles</font></h1>
<hr color="#0066CC" />
<?PHP
$host="localhost";
$usuario="root";
$password="";
$db="empresa";
$c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error());
mysql_select_db($db,$c) or die("Error ". mysql_error());

$consulta="SELECT * FROM producto";
$resultado = mysql_query($consulta,$c);
if($resultado)
{
echo "<table border width=100%>
<tr>
<th>numero</th>
<th>idproducto</th>
<th>descripcion</th>
<th>precio</th>
<th>stock</th>
</tr> ";
$cont=0;
while($registro=mysql_fetch_array($resultado))
{
$cont++;
echo "<tr align=center>
<td>$cont</td>
<td>$registro[0]</td>
<td>$registro[1]</td>
<td>$registro[2]</td>
<td>$registro[3]</td>
</tr>";
}
echo "</table>";
}
mysql_close($c);
?>
</body>
</html>

formularioConsultaProducto.html
<html>
<head>
<title>ConsultaProducto</title>
</head>
<body>
<div align="center">
<h1>Consulta de Productos
</h1>
</div>
<hr color="#0066FF"/>
<form action="consultaproducto.php" method="post">
idproducto : <input type="text" size="8" name="idproducto" ><br />
<input type="submit" value="enviar" />
<input type="reset" value="borrar" />
</form>
</body>
</html>

consultaproducto.php
<html>
<head>
<title>mostrar Producto </title>
</head>
<body>
<h1>Datos del Producto </h1>
<hr color="#CC0000"/>
<?php
$host="localhost";
$usuario="root";
$password="";
$db="empresa";
$c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error());
mysql_select_db($db,$c) or die("Error ". mysql_error());
$idproducto=$_POST["idproducto"];
$consulta="SELECT * FROM producto WHERE idproducto='$idproducto'";
$resultado=mysql_query($consulta,$c);
// comprobacion de la existencia de algun registro resultado
if(mysql_num_rows($resultado))
{
// se recupera el registro resultado en array
$registro=mysql_fetch_row($resultado);
echo "
<P align=center>
<table border=1 width=40% bgcolor=##99CCFF>
<tr>
<td>idproducto </td>
<td>$registro[0]</td>
</tr>
<tr>
<td>descripcion </td>
<td>$registro[1]</td>
</tr>
<tr>
<td>precio </td>
<td>$registro[2]</td>
</tr>
<tr>
<td>stock </td>
<td>$registro[3]</td>
</tr>
<table>
</p>
<br>
<A HREF="formularioConsultaProducto.html"> Volver a Consultar Producto</A>";
}
else
echo("EL ID DEL PRODUCTO NO EXISTE");
?>
</body>
</html>

formularioEliminaProducto.html
<html >
<head>
<title>elimina productos </title>
</head>
<body>
<div align="center">
<h1>Eliminacion de Productos
</h1>
</div>
<hr color="#FF0000"/>
<form action="eliminaproducto.php" method="post">
idproducto : <input type="text" size="8" name="idproducto" ><br />
<input type="submit" value="enviar" />
<input type="reset" value="borrar" />
</form>
</body>
</html>

eliminaproducto.php
<html >
<head><title>elimina producto </title>
</head>
<body>
<?php
$host="localhost";
$usuario="root";
$password="";
$db="empresa";
$c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error());
mysql_select_db($db,$c) or die("Error ". mysql_error());

$idproducto=$_POST["idproducto"];
$consulta="select * from producto where idproducto='$idproducto'";
$resultado=mysql_query($consulta,$c);
if(mysql_num_rows($resultado))
{
$consulta = "DELETE FROM producto where idproducto='$idproducto'";
$resultado=mysql_query($consulta,$c);
if($resultado)
echo "<center><I> registro eliminado </I><center>";
}
else
echo "<center><I> no existe el id del producto </I><center>";
mysql_close($c);
?>
<hr>
<div align="justify"><a href="formularioEliminaProducto.html"> Volver a eliminar </a>
</div>
</body>
</html>

formularioModificaProducto.html
<html >
<head><title> Modificar Producto</title></head>
<body>
<body>
<div align="center">
<h1>Modificacion de Productos
</h1>
</div>
<hr color="#0066FF"/>
<form action="modificaproducto.php" method="post">
idproducto : <input type="text" size="8" name="idproducto" ><br />
<input type="submit" value="enviar" />
<input type="reset" value="borrar" />
</form>
</body>
</html>

modificaproducto.php
<html>
<head>
<title> Modificacion de datos de un Producto</title>
</head>
<body>
<?php
$host="localhost";
$usuario="root";
$password="";
$db="empresa";
$c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error());
mysql_select_db($db,$c) or die("Error ". mysql_error());

$idproducto=$_POST["idproducto"];

{

if(isset($_POST["modificar"]))
$descripcion=$_POST["descripcion"];
$precio=$_POST["precio"];
$stock = $_POST["stock"];
$consulta = "UPDATE producto SET descripcion='$descripcion', precio=$precio,
stock=$stock where idproducto='$idproducto' ";

}

$resultado=mysql_query($consulta,$c);
if($resultado)
echo "<center><I> Datos actualizados </I><center>";
else
{
$consulta="select * from producto where idproducto='$idproducto'";
$resultado=mysql_query($consulta,$c);
// comprobacion de la existencia de algun registro resultado
if(mysql_num_rows($resultado))
{
// se recupera el registro resultado en array
$registro=mysql_fetch_row($resultado);
mostrarpagina($registro);
}
else
echo "<h2 align=center> Contraseña incorrecta</h2>";

}

mysql_close($c);
?>
<?php
function mostrarpagina($datos)
{
echo "<form action=modificaproducto.php method=post>";
echo "<table width=80% border bgcolor=##99CCFF>
<tr>
<th bgcolor=cyan>idProducto</th>
<td> $datos[0] </td>
</tr>
<tr>
<th bgcolor=cyan>descripcion</th>
<td><input type=text size=50 name=descripcion value='$datos[1]'></td>
</tr>
<tr>
<th bgcolor=cyan>precio</th>
<td><input type=text size=50 name=precio value=$datos[2]></td>
</tr>
<tr>
<th bgcolor=cyan>stock</th>
<td><input type=text size=50 name=stock value=$datos[3]></td>

</tr>
</table>";
echo " <input type=hidden name=modificar value=1>
<input type=hidden name=idproducto value=$datos[0]>
<br><input type=submit value=Actualizar>
</form> ";
}
?>

<hr>
<div align="justify"><a href="formularioModificaProducto.html"> Volver a modificar </a>
</div>
</body>
</html>

Más contenido relacionado

La actualidad más candente

Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlLismirabal
 
Programación c
Programación cProgramación c
Programación cvictdiazm
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
visionartificialitm
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacion
luismart05
 
19 Php. Utilizando Formularios
19 Php. Utilizando Formularios19 Php. Utilizando Formularios
19 Php. Utilizando FormulariosJosé M. Padilla
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeDunkherz
 
37 Php. Operadores Condicionales
37 Php. Operadores Condicionales37 Php. Operadores Condicionales
37 Php. Operadores CondicionalesJosé M. Padilla
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivasstarduslex
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
tacubomx
 
Clase3 - Identificadores y directivas en Delphi
Clase3 - Identificadores y directivas en DelphiClase3 - Identificadores y directivas en Delphi
Clase3 - Identificadores y directivas en Delphi
Julio Antonio Huaman Chuque
 
Programación en PHP
Programación en PHPProgramación en PHP
Instrucciones Básicas para C++
Instrucciones Básicas para C++Instrucciones Básicas para C++
Instrucciones Básicas para C++
pilgrim15
 
Programación en ‘‘c’’ ii
Programación en ‘‘c’’ iiProgramación en ‘‘c’’ ii
Programación en ‘‘c’’ iizamand14
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de php
angie barre
 
Curso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje CCurso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje Cguestbc0748
 

La actualidad más candente (15)

Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Programación c
Programación cProgramación c
Programación c
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacion
 
19 Php. Utilizando Formularios
19 Php. Utilizando Formularios19 Php. Utilizando Formularios
19 Php. Utilizando Formularios
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
 
37 Php. Operadores Condicionales
37 Php. Operadores Condicionales37 Php. Operadores Condicionales
37 Php. Operadores Condicionales
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Clase3 - Identificadores y directivas en Delphi
Clase3 - Identificadores y directivas en DelphiClase3 - Identificadores y directivas en Delphi
Clase3 - Identificadores y directivas en Delphi
 
Programación en PHP
Programación en PHPProgramación en PHP
Programación en PHP
 
Instrucciones Básicas para C++
Instrucciones Básicas para C++Instrucciones Básicas para C++
Instrucciones Básicas para C++
 
Programación en ‘‘c’’ ii
Programación en ‘‘c’’ iiProgramación en ‘‘c’’ ii
Programación en ‘‘c’’ ii
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de php
 
Curso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje CCurso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje C
 

Destacado

Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHPjdaniel_7ez
 
introduccion al Lenguaje php
introduccion al Lenguaje phpintroduccion al Lenguaje php
introduccion al Lenguaje php
rmonago
 
Sistemas Numéricos y Códigos Digitales
Sistemas Numéricos y Códigos DigitalesSistemas Numéricos y Códigos Digitales
Sistemas Numéricos y Códigos Digitales
Universidad de Antofagasta
 
Introducción al lenguaje HTML
Introducción al lenguaje HTMLIntroducción al lenguaje HTML
Introducción al lenguaje HTML
UNIVA
 
LENGUAJE HTML
LENGUAJE HTMLLENGUAJE HTML
LENGUAJE HTML
gueste5e05b
 
3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP
Jose Emilio Labra Gayo
 

Destacado (7)

PHP
PHPPHP
PHP
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
introduccion al Lenguaje php
introduccion al Lenguaje phpintroduccion al Lenguaje php
introduccion al Lenguaje php
 
Sistemas Numéricos y Códigos Digitales
Sistemas Numéricos y Códigos DigitalesSistemas Numéricos y Códigos Digitales
Sistemas Numéricos y Códigos Digitales
 
Introducción al lenguaje HTML
Introducción al lenguaje HTMLIntroducción al lenguaje HTML
Introducción al lenguaje HTML
 
LENGUAJE HTML
LENGUAJE HTMLLENGUAJE HTML
LENGUAJE HTML
 
3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP
 

Similar a El lenguaje php

Tema7 php
Tema7 phpTema7 php
Tema7 php
fernandonavia
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
pumarob22
 
Mini manual php
Mini manual phpMini manual php
Proyectos Web 3 Introduccion Php
Proyectos Web   3 Introduccion PhpProyectos Web   3 Introduccion Php
Proyectos Web 3 Introduccion Php
Jose Ponce
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Manual De Asp Parte 2
Manual De Asp Parte 2Manual De Asp Parte 2
Manual De Asp Parte 2Arnulfo Gomez
 
Introducción a php (es)
Introducción a php (es)Introducción a php (es)
Introducción a php (es)
Carlos Campderrós
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
Apuntes phpApuntes php
Apuntes php
Javi
 
Programacion en php atavez de ejemplos
Programacion en php atavez de ejemplosProgramacion en php atavez de ejemplos
Programacion en php atavez de ejemplos
Robert Rodriguez
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
smartvSmartv
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basicoYo ♥ Tacna
 
Programacion php
Programacion phpProgramacion php
Programacion php
JoseAntonioEscalante2
 
Apuntes php.pdf ejemplos
Apuntes php.pdf ejemplosApuntes php.pdf ejemplos
Apuntes php.pdf ejemplos09941557841986
 

Similar a El lenguaje php (20)

Tema7 php
Tema7 phpTema7 php
Tema7 php
 
Manual+php+básico
Manual+php+básicoManual+php+básico
Manual+php+básico
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Php
PhpPhp
Php
 
Proyectos Web 3 Introduccion Php
Proyectos Web   3 Introduccion PhpProyectos Web   3 Introduccion Php
Proyectos Web 3 Introduccion Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Manual De Asp Parte 2
Manual De Asp Parte 2Manual De Asp Parte 2
Manual De Asp Parte 2
 
Introducción a php (es)
Introducción a php (es)Introducción a php (es)
Introducción a php (es)
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Programacion en php atavez de ejemplos
Programacion en php atavez de ejemplosProgramacion en php atavez de ejemplos
Programacion en php atavez de ejemplos
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
 
Curso introduccionphp sql
Curso introduccionphp sqlCurso introduccionphp sql
Curso introduccionphp sql
 
Guiacursophp sql
Guiacursophp sqlGuiacursophp sql
Guiacursophp sql
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
 
Programacion php
Programacion phpProgramacion php
Programacion php
 
Apuntes php.pdf ejemplos
Apuntes php.pdf ejemplosApuntes php.pdf ejemplos
Apuntes php.pdf ejemplos
 

Último

c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
arleyo2006
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
Ruben53283
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
True Mother's Speech at THE PENTECOST SERVICE..pdf
True Mother's Speech at THE PENTECOST SERVICE..pdfTrue Mother's Speech at THE PENTECOST SERVICE..pdf
True Mother's Speech at THE PENTECOST SERVICE..pdf
Mercedes Gonzalez
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
DIANADIAZSILVA1
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
MasielPMP
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 

Último (20)

c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
True Mother's Speech at THE PENTECOST SERVICE..pdf
True Mother's Speech at THE PENTECOST SERVICE..pdfTrue Mother's Speech at THE PENTECOST SERVICE..pdf
True Mother's Speech at THE PENTECOST SERVICE..pdf
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 

El lenguaje php

  • 1. El Lenguaje PHP PHP es un lenguaje interpretado(el compilador ejecuta línea por línea) del lado del servidor que se caracteriza por su potencia, versatilidad, robustez y modularidad. Los programas escritos en PHP son embebidos directamente en el código HTML y ejecutados por el servidor web a través de un intérprete antes de transferir al cliente que lo ha solicitado un resultado en forma de código HTML puro. Al ser un lenguaje que sigue la corriente open source, tanto el intérprete como su código fuente son totalmente accesibles de forma gratuita en la red. En concreto, la dirección oficial en la que puede descargarse es: http://www.php.net/ Por su flexibilidad, PHP resulta un lenguaje muy sencillo de aprender; especialmente para programadores familiarizados con lenguajes como C, Perl o Java, debido a la similitud de sintaxis entre ellos. Por supuesto es un lenguaje multiplataforma; los programas funcionan igual sobre diferentes plataformas, trabajando sobre la mayoría de servidores web y estando preparado para interactuar con más de 20 tipos de bases de datos. No obstante, al ser un lenguaje inicialmente concebido para entornos UNIX, es sobre este sistema operativo sobre el que se pueden aprovechar mayor sus prestaciones. Primer Ejemplo de PHP En un nuevo documento escriba el siguiente código y grabarlo con el nombre primer.php <HTML> <HEAD> <TITLE>Primer Ejemplo de PHP</TITLE>4 </HEAD> <BODY> <U> <?PHP echo(o print:) "Este es mi primer programa en PHP"; ?> </U> </BODY> </HTML>
  • 2. FORMAS DE INCRUSTAR EL CODIGO PHP EN LOS DOCUMENTOS HTML Existen 4 formas de incrustar código PHP, dos de ellas están siempre disponible y las dos restantes dependen da la configuración particular del servidor. Las dos formas siempre disponibles de delimitar código PHP son: <?PHP Instrucciones PHP ?> o <SCRIPT LANGUAGE=”php”> Instrucciones PHP </SCRIPT > De estas dos formas, la primera es la sintaxis especifica del lenguaje PHP, mientras que la segunda es la sintaxis general que se utiliza para insertar scripts programados en diferentes lenguajes Las otras dos formas de incrustar el código PHP son: <? Instrucciones PHP ?> o <% Instrucciones PHP %> La primera de estas sintaxis es la que se denomina de “etiquetas de formato corto” y requiere que el servidor tenga configurado su fichero php.ini para aceptarlas. Finalmente la última sintaxis es la que resulta compatible con ASP, pero tampoco es aceptada por todos los servidores. De las 4 formas de incrustar el código PHP, la más recomendable es la primera (<?php ….. ?>), por varias razones: por ser la especifica de PHP, por estar disponible en cualquier servidor, y por ser además la única que permite incrustar código PHP también en XML y en XHTML.
  • 3. ASPECTOS SOBRE LA SINTAXIS DEL LENGUAJE La sintaxis del Lenguaje PHP es muy similar a la de otros lenguajes conocidos como C o Perl, algunos aspectos iniciales sobre la sintaxis que deben ser considerados a la hora de ahondar la escritura del código fuente de los programas son: - El uso de las mayúsculas y minúsculas es indiferente(solo instrucciones). A diferencia de otros lenguajes similares, PHP permite que las diferentes sentencias estén escritas con cualquier combinación de letras mayúsculas o minúsculas. Por ejemplo con las estructuras condicionales sería totalmente equivalente utilizar la palabra if o IF. Una excepción importante a esta regla se produce en los nombres de las variables, no es lo mismo nombrar una variable con letras mayúsculas que hacerlo con minúsculas. - Se pueden colocar todos los espacios en blanco y cambios de línea que se deseen con objeto de hacer mas legible el código fuente. Estos espacios adicionales no tienen efecto alguno en la ejecución del programa, el interprete de PHP los ignora. - Las diferentes instrucciones deben terminar con “;”. Sin embargo PHP admite cierta flexibilidad a este respecto, ya que el terminador punto y coma no sería necesario en la última sentencia del script antes del terminador ?>, ni en los casos en los que al final de la instrucción se cierre un bloque de código con una llave, por ejemplo en las estructuras condicionales o bucles - Las instrucciones se pueden partir en tantas líneas como se desee a efectos, de nuevo, de mejorar la legilibilidad. Esta división de las instrucciones no afecta a la ejecución. - En una misma línea se pueden colocar, si así se desea, varias instrucciones diferentes separadas por “;”. Esto puede ser útil en el caso, por ejemplo, de tener que hacer varias sentencias de asignación diferentes INSERCION DE COMENTARIOS EN EL CODIGO - Comentarios de una línea : // - Comentarios de varias líneas /* */ ELEMENTOS BASICOS DEL LENGUAJE TIPOS DE DATOS Como todo lenguaje de programación, PHP puede trabajar con una serie de tipos de datos básicos. En concreto los tipos de datos admitidos son: - Números enteros: los enteros pueden ser dados tanto en base decimal como en base octal o hexadecimal ( un 0 inicial indica que el valor esta representado en octal, un 0x indica que es
  • 4. hexadecimal. - Ejemplos de números Ejemplos de en numero base en 10 : 45 -142 octal: 0123 783 (equivale a 83) - Ejemplos de números en hexadecimal: 0x12 (equivale a 18) - Números reales: Los números reales se pueden dar en dos formatos; como parte entera y parte decimal, usando Ejemplos: 14.67 - el -76.0023 punto 1.4e3 como separador, o en notación científica. -78.5e-4 Cadenas de Caracteres: Las cadenas de caracteres pueden ser dadas en dos formatos usando comillas dobles o usando comillas simples. El uso de una u otra forma de delimitación afecta a la forma en la que se tratan las posibles variables que puedan haber dentro de la propia cadena. Ejemplo: “Casablanca”, „cantando bajo la lluvia‟ - Arrays o Matrices:Constituyen colecciones de datos que se referencian bajo un mismo nombre común. Como se verá al capítulo dedicado a estas estructuras de datos, PHP admite la posibilidad de construir dos tipos de arrays: arrays asociativos e indexados. - Objetos: finalmente PHP admite también la posibilidad de crear objetos y realizar acción con ellos. Mediante el uso de objetos se puede entender como una misma entidad los datos y las acciones que se realizan con ellos. Esta es la base de la programación orientada a objetos. VARIABLES Algunas de las peculiaridades de las variables en PHP son: No es necesario declarar explícitamente, sino que basta con utilizarlas cuando se necesite. En principio las variables no tienen un tipo predefinido, puede asignarse cualquier tipo de valor. La asignación de valores a las variables se hace con el singo “=”. Los nombres de las variables en PHP siempre comienzan con el signo “$”. Se pueden usar nombres de variables de cualquier longitud, formados por letras, digitos y carácter de subrayado, pero nunca comenzando por un digito. Entre las letras que pueden utilizarse se encuentran los caracteres cuyo código ASCII se encuentran entre 127 y 255 por lo que se pueden utilizar letras acentuadas o ñ en los nombres de variables. En los nombres de variables si se distingue el uso de mayúsculas y minusculas, de manera que $area y $AREA serian variables diferentes. Una variable se puede utilizar asignándole a la lo largo del tiempo datos incluso de distinto tipo. Ejemplo de nombres de variables validas $titulo $fecha_nacimiento $año $precio En cambio no serian validos los siguientes: $dir-pelicula $4fila genero $dto% Ejemplo: <html> <head> <title>Variables en PHP </title> </head> <body> <?php $titulo="Buscando a Nemo"; $sala=2; echo "En la sala $sala se proyectará la pelicula $titulo"; ?> </body> </html>
  • 5. En este caso, a la primera variable se le asigna una cadena de caracteres y a la segunda un número entero. Las dos variables se utilizan dentro de la cadena a imprimir, cuando dicha cadena está delimitada por comillas dobles como en este caso, la variables que se encuentran en su interior serán sustituidas por sus valores. Ejemplo: <html> <head> </html> <title>Variables en PHP</title> </head> <body> <?php $x="Importe: "; echo $x; $x=5; echo $x . " (precio normal) "; (el . sirve para concatenar cadenas) //también echo “$x (precio normal) "; $x = $x * 0.85; echo $x . " (precio reducido) "; ?> </body>
  • 6. Como puede observarse, en este programa se ha utilizado una única variable $x a la que inicialmente se le asigno una cadena de caracteres, después se le asigno un numero entero y finalmente, el resultado de una expresión que devuelve un numero real. En este caso se ha utilizado el operador punto para realizar concatenaciones entre cadenas de caracteres y variables. Esto es una alternativa a la inclusión de las variables directamente dentro de las cadenas. Ejemplo: <html> <head> <title>Variables en PHP</title> </head> <body> <?php $a="10 euros"; $b= 2.25; $c= $a - $b; echo "Valor de c = $c<br>"; $d = (integer)$c; echo "Valor de d = $d<br>"; $e = $d/2; echo "Valor de e = $e<br>"; ?> </body> </html> La conversión de tipo explicita se puede realizar mediante el operador cast: (tipo) expresión; O mediante la función settype(); $telef= (string) 949567894; $x= (integer) 5.97; $y=12.5; settype($y,”integer”); settype($y,”float”);
  • 7. AMBITO DE LAS VARIABLES El ámbitode las variables determina desde que lugares la variable es visible y, por tanto, puede ser utilizada. Las variables por defecto tienen un ámbito global que abarcaría el documento completo en el que son definidas, a no ser que sean definidas dentro de una función, en cuyo caso solo pueden ser utilizadas dentro de la propia función (ámbito local) Esto significa que una variable definida en un script del documento fuera de cualquier función, puede ser utilizada en cualquier otro lugar de ese script o incluso en otros posibles scripts que se encuentren en el mismo documento. <html> <head> <title>Ambito de las Variables en PHP</title> </head> <body> <h1>Ambito de las variables </h1> <hr> <?php $fila=12; $num=6; ?> luego de haber declarado en un script<br> las variables pueden ser usadas en otro script<br> <?php echo "fila = $fila<br>"; echo "numero = $num<br>"; ?> </body> </html>
  • 8. Una variable global puede ser utilizada dentro de cualquier función, pero para hacer referencia a ella debe declararse dentro de la función con la palabra global delante de su nombre. Ejemplo: $precio = 4.5; function calcular_importe($num_entradas){ global $precio; $i = $precio * $num_entradas; return $i; } En este caso la variable $precio está definida fuera de la función y es utilizada dentro de la función calcular_importe(). Por otro lado, la variable $i está definida dentro de la función y no puede ser utilizada fuera de ella. Funciones usadas con variables isset() : Permite averiguar si una variable ha sido definida. Esta función es especialmente útil cuando se quiere comprobar si se han recibido los valores correspondientes a todos los campos de un formulario. unset(): Permite eliminar una variable, no solo borra el contenido de la variable sino que también libera el espacio de memoria reservado para ella. Cualquier intento posterior de acceso a esa variable generaría un error. gettype():Devuelve el tipo de variable. is_array(): determina si la variable contiene un array. is_float(): Determina si la variable contiene un numero de coma flotante. is_int(): Determina si la variable contiene un numero entero. is_object(): Determina si la variable hace referencia a un objeto. is_string(): Determina si la variable contiene una cadena de caracteres. CONSTANTES Una constante es un valor que permanece inalterable a lo largo de la ejecución del script y a la que se le asigna un identificador. Solo puede definirse constantes con valores escalares (números o cadenas de caracteres). Por ejemplo no podría definirse una constante cuya valor fuese un array. La definición de constantes de realiza con la función define(), y una vez definidas su valor no puede cambiarse. En cuanto a los identificadores de las constantes, estos siguen las mismas reglas que los identificadores de las variables salvo que no comienzan con el símbolo $. Aunque no es una regla obligatoria por convenio se suele utilizar identificadores con letras mayúsculas para las constantes.
  • 9. Otra diferencia con las variables está en la ausencia de cualquier restricción de ámbito en las constantes. Una constante definida en un documento será accesible desde cualquier punto de cualquier script que esté en el mismo documento. Ejemplo: <html> <head> <title>Constantes en PHP</title> </head> <body> <h1>Constantes en php</h1> <hr> <?php define("NOMBRE","Juan"); define("EDAD",19); define("PESO",72.85); echo "constantes definidas <br>"; echo "nombre : ". NOMBRE . "<BR>"; echo "edad : ". EDAD . "<BR>"; echo "peso : ". PESO . "<BR>"; ?> </body> </html> El uso de constantes puede resultar especialmente adecuado para definir determinados parámetros del programa que no se espera que cambien.
  • 10. CADENAS DE CARACTERES Y VARIABLES Las cadenas de caracteres constituyen uno de los tipos de datos básicos del lenguaje PHP. En su definición se pueden utilizar como delimitadores tanto las comillas simples como las dobles, lo que no es posible combinar ambos tipos de delimitadores, por ejemplo abriendo la cadena con comillas dobles y cerrándola con comillas simples. La inclusión de determinados caracteres en las cadenas exige la utilización de las denominadas secuencias de escape. Entre estos caracteres especiales están las comillas, el signo dólar, la barra invertida y los caracteres de tabulación y retorno de carro. En la siguiente tabla se muestran algunas de estas secuencias de escape. Secuencia de Escape Significado n Nueva línea r Retorno de Carro t Tabulador Barra invertida ‟ Comillas simples ” Comillas dobles xNum Carácter cuyo código ASCII en hexadecimal es Num Num Carácter cuyo código ASCII en octal es Num Ejemplo: <html> <head> <title>Cadenas de caracters en PHP</title> </head> <body> <h1>Cadenas de caracteres en php</h1> <hr> <?php echo "Pagina creada por :n "cinemas" t xA9 2004"; ?> </body> </html>
  • 11. En la cadena anterior se utilizan dos secuencias de escape que no tienen reflejo en la pagina que sería visualizada por el navegador del cliente, pero si en el código fuente HTML: el carácter de nueva línea y el tabulador se incluirían en el código fuente HTML, pero, como todos los espacios extra, serian ignorados por el navegador. Las otras secuencias de escape que han sido utilizadas en el ejemplo son las que permiten incluir comillas en la propia cadena y que generan el signo copyright (correspondiente al carácter de código ASCII 169 o A9 en hexadecimal). La diferencia entre el uso de comillas dobles o simples como delimitadores de las cadenas de caracteres está en la forma en la que se tratan los posibles identificadores de variables que aparezcan dentro de la cadena: Con las comillas dobles, las variables dentro de la cadena se expanden, es decir, se sustituyen por su valor. Con las comillas simples las variables no se expanden y por tanto en la propia cadena aparecerán sus identificadores como cualquier otro carácter de la misma. Además de eso, en este caso las únicas secuencias de escape reconocidas son y ‟. Ejemplo: <html> <head> <title>Cadenas de caracters en PHP</title> </head> <body> <h1>Comillas dobles en php</h1> <hr> <?php $titulo="Todo sobre mi madre"; $director="Pedro Almodovar"; $año=1999; print "Sesion Especial : "$titulo" de $director ($año)"; </html> ?> </body>
  • 12. Observar como al utilizar las comillas dobles, los nombres de variables que aparecen dentro de la cadena son sustituidos por sus valores. Esta característica de PHP es especialmente útil y evita tener que recurrir a engorrosas operaciones de concatenación de cadenas con variables. En cambio la sentencia print „Sesion Especial : "$titulo" de $director ($año)‟; Escribiría el siguiente mensaje Sesion Especial: ”$titulo”de $director ($año) En este caso se observa como las secuencias de escape no son reconocidas y se escriben los nombres de las variables dentro de la cadena y no sus valores. Operador de Asignación En diversos ejemplos previos ya se ha utilizado el operador de asignación para dar valores a las variables, este operador se representa mediante el signo “=”. Su sentido es el evidente; la variable de la izquierda del operador tomará el valor resultado de la expresión que se encuentra a la derecha. $variable = valor o expresión; También se puede asignar varias asignaciones en una sola sentencia. $a = $b = $c =1; Operadores Aritméticos Los operadores aritméticos básicos son los habituales de cualquier lenguaje de programación + * / % Suma Resta Multiplicación División Modulo: Residuo de la división de dos números enteros. Además de los operadores anteriores se dispone de los operadores de incremento y decremento que existen también en lenguajes C o C++ ++$x $x++ --$x $x-- Incrementa una unidad el valor de $x Incrementa una unidad el valor de $x, pero después de evaluar el resto de la expresión. Disminuye una unidad el valor de $x Disminuye una unidad el valor de $x, pero después de evaluar el resto de la expresión
  • 13. PHP Y LOS FORMULARIOS HTML formulario01.html <html> <head> <title>Rectangulo</title> </head> <body> <h1>Rectangulo</h1> <hr> <form action="calculo01.php" method="POST"> <table> <tr> <td>BASE : </td> <td><INPUT TYPE="TEXT" NAME="BASE"></td> </tr> <tr> <td>ALTURA : </td> <td><INPUT TYPE="TEXT" NAME="ALTURA"></td> </tr> <tr> <td><INPUT TYPE="SUBMIT" VALUE="CALCULAR"></td> <td><INPUT TYPE="RESET" VALUE="BORRAR"></td> </tr> </table> </html> </form> </body>
  • 14. calculo01.php <html> <head> <title>Rectangulo</title> </head> <body> <h1>Rectangulo</h1> <hr> <?php $base=$_POST["BASE"]; $altura=$_POST["ALTURA"]; $area= $base*$altura; $perimetro = 2*($base + $altura); $diagonal = sqrt(pow($base,2) + pow($altura,2)); print "base : $base <br>"; print "altura : $altura <br>"; print "area : $area <br>"; print "perimetro : $perimetro <br>"; print "diagonal : $diagonal <br>"; ?> <a href="formulario01.html">regresar al formulario </a> </body> </html>
  • 15. Variables de Formularios Para acceder a las variables de formulario se puede hacer de dos maneras usando las variables predefinidas $_ REQUEST[] que es un arreglo asociativo donde se guardan los valores de las variables o con las variables $_POST[] Y $_GET[] dependiendo del método utilizado para el envío de datos del formulario. Variables de petición: $_REQUEST Una matriz asociativa que consiste en los contenidos de $_GET, $_POST, y $_COOKIE. Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_REQUEST; para acceder a ella dentro de funciones o métodos. Variables HTTP GET: $_GET Una matriz asociativa de variables pasadas al script actual a través del método HTTP GET. Global automáticamente en cualquier contexto. Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_GET; para acceder a ella dentro de funciones o métodos, como lo hace con $HTTP_GET_VARS. $HTTP_GET_VARS contiene la misma información inicial, pero no es autoglobal. (Note que HTTP_GET_VARS y $_GET son variables diferentes y que PHP las trata como tal) Variables HTTP POST: $_POST una matriz asociativa de variables pasadas al script actual a través del método HTTP POST. Global automáticamente en cualquier contexto. Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_POST; para acceder a ella dentro de funciones o métodos, como lo hace con $HTTP_POST_VARS. $HTTP_POST_VARS contiene la misma información inicial, pero no es autoglobal. (Note que HTTP_POST_VARS y $_POST son variables diferentes y que PHP las trata como tal) Métodos de transferencia de datos en Formularios Los datos que el usuario introduzca en un formulario de una página web pueden ser transferidos al servidor para su procesamiento con dos métodos diferentes. Método GET: los datos son enviados dentro del URL de localización del destino Método POST: los datos son enviados de manera invisible para el usuario haciendo uso del protocolo http y en un encabezado independiente. El método de transferencia se especifica en la definición del formulario mediante el parámetro METHOD, asignándole el valor “Get” o “Post” en función del método elegido. En caso de ausencia de ese parámetro, se considera como método por defecto el método GET. En el caso de que los datos deban ser transferidos por correo electrónico, es obligatorio el uso del método POST.
  • 16. OPERADORES DE COMPARACION Sirven para comparar 2 valores devolviendo un valor verdadero si la comparación es positiva o falsa en otro caso: $x == $y $x === $y $x != $y $x !== $y $x < $y $x > $y $x <= $y $x >= $y Compara si $x e $y tienen el mismo valor (operador de igualdad) Compara si $x e $y son iguales además si son del mismo tipo (operador de identidad) Comprueba si $x e $y tienen distinto valor (negación de igualdad) Comprueba si $x e $y tienen distinto valor y/o tipo (negación de identidad) Comprueba si el valor de $x es menor que el valor de $y Comprueba si el valor de $x es mayor que el valor de $y Comprueba si el valor de $x es menor o igual que el valor de $y Comprueba si el valor de $x es mayor o igual que el valor de $y && || ! And Or Not OPERADORES LOGICOS y o negación ESTRUCTURAS CONDICIONALES Sentencia if.. else Sirve para escoger uno de dos caminos en un programa de acuerdo al resultado de una comparación if(expresión) Instruccion1; else Instruccion2; Si expresión es verdadera se ejecuta Instrucción1, si es falsa se ejecuta Instruccion2. En PHP toda expresión que produzca como resultado un valor numérico distinto de cero, una cadena diferente de la cadena vacia o un array no vacio, si aparece dentro de un contexto lógico es tratado como el valor booleano verdadero (true). Si se desea ejecutar un conjunto de Instrucciones al resultar verdadero o falsa la expresión, las instrucciones se deben colocar entre llaves if(expresión) { Instrucciones1; } else { Instrucciones2; } La sentencia else es Opcional
  • 17. If(expresión) { Instrucciones; } Ejemplo: <html> <head> <title>Estructuras Condicionales</title> </head> <body> <h1>Estructura Selectiva Simple : if ... else</h1> <hr> <font color="blue">verifica Si un numero es par o impar</font><br> <?php $num=12; if($num % 2==0) echo "el valor $num es par <br>"; else echo "el valor de $num es impar<br>"; ?> <br> <font color="blue">verifica si un numero es positivo, negativo o cero </font><br> <?php $x=-20; if($x>0) echo "El numero es positivo<br>"; else if($x<0) echo "El numero es negativo<br>"; else echo "El numero es cero <br>"; ?> <br> <font color="blue">calcula las raices reales de una ecuacion cuadratica <br> con coeficientes a=1 b=5 c=6<br></font> <?php $a=1; $b=5; $c=6; if($a!=0) { $d = pow($b,2) - 4*$a*$c; if($d>=0) { $x1 = (-$b + sqrt($d)) /(2*$a);
  • 18. $x2 = (-$b - sqrt($d)) /(2*$a); echo "Valor de x1 = $x1 <br> "; echo "Valor de x2 = $x2 <br> "; } else echo "Raices imaginarias<br>"; } else echo "No se puede calcular<br>"; ?> </body> </html> Sentencia if…elseif…..else if(condicion1) { Instrucciones1; } elseif (condicion2) { Instrucciones2; } elseif(condicion3) { Instrucciones3; } else
  • 19. { Instrucciones a ejecutar si ninguna de las condiciones anteriores es cierta } El funcionamiento de esta sentencia es el siguiente: Si la primera condición es evaluada como cierta entonces se ejecutan las sentencias del bloque correspondiente y tras ello finaliza la ejecución de la sentencia, En el caso de que la primera condición sea falsa, el interprete continuará evaluando de manera consecutiva las siguientes hasta encontrar la primera que es cierta, en cuyo caso se ejecutan las sentencias de su bloque y se finaliza. Si ninguna de las condiciones es cierta se ejecutan las Instrucciones que siguen a else. Ejemplo: <html> <head> <title>Estructuras Condicionales</title> </head> <body> <h1>Sentencia if... elseif ... else</h1> <hr> <br> <font color="blue">verifica si un numero es positivo, negativo o cero </font><br> <?php $x=-20; if($x>0) echo "El numero es positivo<br>"; elseif($x<0) echo "El numero es negativo<br>"; else echo "El numero es cero <br>"; ?> <br> <font color="blue"> Calcula el precio de acuerdo a la edad de la persona</font><br> <?php $edad=35; if ($edad<3) $precio=0; elseif($edad<=16) $precio=8; elseif($edad<65) $precio=12; else $precio=10; echo "El precio de la entrada es : $precio <br>"; ?> </body> </html>
  • 20. Sentencia switch La sintaxis básicas de la sentencia es : switch(expresión) { case valor1: Instrucciones 1; break; case valor2: Instrucciones 2; break; ... case valorN: Instrucciones N; break; default: Instrucciones; } Esta instrucción evalúa la expresión y sucesivamente compara el valor devuelto con los valores que van apareciendo en cada una de las clausulas case, cuando el valor coincide ejecuta las instrucciones que van a continuación hasta llegar al final de la estructura o encontrarse con una sentencia de finalización break. La clausula default es opcional y permite indicar las sentencias a ejecutar cuando la expresión no toma ninguno de los valores anteriores. La expresión que se evalúa y compara en la sentencia switch puede ser cualquier expresión que se evalué a un tipo simple, es decir, números enteros o de punto flotante y cadenas de caracteres Ejemplo: <html> <head> <title>Estructuras Condicional Multiple</title> </head> <body> <h1>Sentencia swich</h1> <hr> <font color="blue">Reporta el dia que le corresponde de acuerdo un numero</font><br> <?php $num=4; switch($num) { case 1: echo "Domingo <br>"; break; case 2: echo "Lunes <br>"; break; case 3: echo "Martes <br>"; break; case 4: echo "Miercoles <br>"; break;
  • 21. case 5: echo "Jueves <br>"; break; case 6: echo "Viernes <br>"; break; case 7: echo "Sabado <br>"; break; default: echo "Numero fuera de rango<br>"; } ?> <br> <font color="blue">Calculo de precio de acuerdo al dia de la semana <br> En caso de que la variable $dia no coincida con ninguno de los valores predefinidos<br> (L,M,X,J,V,S y D) la variable $precio no tendra ningun valor asignado.<br> </font> <br> <?php $dia="M"; switch($dia) { case "L": $precio=4; break; case "M": $precio=3; break; case "X": case "J": case "D"; $precio=4.5; break; case "V": case "S": $precio=5; break; default: $precio=0; } echo "El precio es : $precio<br>"; ?> <br> <p><font color="blue"> Calculo del numero de dias que tiene un mes concreto, considerando ademas si el año es bisiesto o no (un año es bisiesto cuando es multiplo de 4 pero no de 100, o bien cuando es multiplo de 400) </font></p> <?php
  • 22. $mes=2; $año=2004; switch($mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: $nd=31; break; case 4: case 9: case 11: $nd=30; break; case 2: if(($año%4==0 && $año%100!=0) || $año % 400==0) $nd=29; else $nd=28; break; } echo "el numero de dias del mes es : $nd <br>"; ?> </html> </body>
  • 23. Estructuras Repetitivas 1) while (mientras) while(expresión) { Instrucciones } Las instrucciones se ejecutan mientras la condición es verdadera. En otras palabras termina cuando la expresión es falsa. 2) do . . . while (Hacer mientras) do{ Instrucciones; }while(condición); 3) for for(expresion1;expresion2; expresion3) { Instrucciones; } 4) foreach Permite recorrer todos los elementos de un array de una forma muy simple. La sintaxis es la siguiente: foreach( nombre_array as nombre_variable) { Sentencias a efectuar para cada elemento del array } Como puede apreciarse, debe indicarse el nombre del array en el que están almacenados todos los datos y el nombre de una variable, En la iteración inicial esta variable contendrá el valor del primer elemento del array y en las sucesivas iteraciones del bucle esta variable hará referencia a los siguientes elementos. Ejemplo: <html> <head> <title>Estructuras Repetitivas</title> <STYLE type="text/css">
  • 24. <!-H1 {text-decoration: underline; text-align:center} P {font-Family:arial,verdana; color: blue;} // --> </STYLE </head> <body> <h1>Estructuras Repetitivas</h1> <hr> <p> Reportar los numeros 5, 10, 15, 20, ... 95, 100</p> <?php $n=5; while($n<=100) { print "$n "; $n +=5; } ?> <p> Reportar los numeros 40, 50, 60, ... 150</p> <?php $c=40; do{ print "$c "; $c +=10; }while($c<=150); ?> <p> Reportar los numeros 40, 50, 60, ... 150</p> <?php $c=40; do{ print "$c "; $c +=10; }while($c<=150); ?> <p> Calculo del factorial de un numero </p> <?php $n=5; $fact=1;
  • 25. for($i=1;$i<=$n;$i++) $fact=$fact * $i; print "El factorial de $n es : $fact <br>"; ?> <p> Listar los elementos de un arreglo usando foreach</p> <?php $lista=array("Juan","Carlos","Pedro","Susana"); foreach($lista as $valor) print "$valor <br>"; ?> </html> </body>
  • 26. Ejercicios 1) Construir en forma aleatoria, una contraseña formada por 8 letras. Se puede utilizar la funcin rand() para generar un numero aleatorio entre 97 y 122 (códigos ASCII correspondientes a la letras minusculas) y la función chr() para obtener el carácter asociado a un código ASCII dado. 2) Construir la tabla de multiplicar del 1 al 10 en forma de tabla. Solución <html> <head> <title>Estructuras Repetitivas</title> <STYLE type="text/css"> <!-H1 {text-decoration: underline; text-align:center} P {font-Family:arial,verdana; color: blue;} // --> </STYLE </head> <body> <h1>Estructuras Repetitivas</h1> <hr> <p>Construir en forma aleatoria, una contraseña formada por 8 letras. Se puede utilizar la funcin rand() para generar un numero aleatorio entre 97 y 122 (códigos ASCII correspondientes a la letras minusculas) y la función chr() para obtener el carácter asociado a un código ASCII dado. </p> <?php $codigo=""; for($i=1;$i<=8;$i++) { $letra=chr(rand(97,122)); $codigo=$codigo.$letra; } print("Contraseña asignada es : <b>$codigo</b>"); ?> <p> Construir la tabla de multiplicar desde el 1 al 10 en forma de tabla </p> <?php
  • 27. print ("<table border=1>"); // Generacion de la fila de la cabecera print "<tr align='center'><th> * </th>"; for($i=1;$i<=10;$i++) print "<th> $i </th>"; print "<tr>"; for($i=1; $i<=10; $i++) { print "<tr align='CENTER'><th>$i</th>"; for($j=1;$j<=10;$j++) print "<td>". $i*$j . "</td>"; print "</tr>"; } print "<table>"; ?> </html> </body>
  • 28. Sentencias break y continue Las sentencias break y continue permiten alterar la ejecución prevista de una estructura iterativa; la primera de ellas permite cancelar completamente la ejecución del bucle y la segunda permite cancelar una de las iteraciones y pasar directamente a la siguiente. La sentencia break, además de permitir abandonar una estructura iterativa se utiliza también dentro de la estructura switch para terminar cuando se cumple una condición. FUNCIONES EN PHP PHP permite al programador la creación de sus propias funciones, ahorrando tiempo y esfuerzo y facilitando un mejor diseño de los programas implementados. La sintaxis que debe adoptarse a la hora de definir una función en PHP es: function NombreFuncion(argumentos) { Instrucciones return valorDevuelto;
  • 29. } Como puede apreciarse, toda definición de función comienza con la palabra reservada function seguida del nombre asignado, la lista de argumentos y el bloque de definición de la función. En los nombres de las funciones no se distingue entre mayúsculas y minúsculas aunque siempre es aconsejable efectuar la llamada a una función tal y como ha sido definida. Respecto a los argumentos estos son parámetros formales que vienen representados por variables. Recordar que en PHP no se declaran tipos para las variables, por tanto en los argumentos de la función tampoco es necesario indicar tipo alguno. Es posible definir funciones sin argumentos, en este caso, a continuación del nombre deberían colocarse los paréntesis vacios. function nombreFuncion() La sentencia return permite que la función devuelva un valor de retorno. Una vez ejecutada esa sentencia se abandona la función, sin ejecutar cualquier sentencia posterior que se encuentre en el cuerpo de la misma. El valor devuelto puede ser una cadena de caracteres , un valor numérico, un valor booleano, un array…. Debe destacarse que a la hora de definir una función no es indispensable que esta devuelva valores; en este sentido en PHP no hay distinción sintáctica entre lo que en otros lenguajes son funciones y procedimientos. Ejemplos: <?php function mayor($x,$y,$z) { $may=$x; if($y>$may) $may=$y; if($z>$may) $may=$z; return $may; } function factorial($n) { if($n<0) return "Solo se admiten valores positivos"; elseif($n==0) return 1; else { $f=1; for($i=1;$i<=$n;$i++) $f=$f * $i; return $f; } } function saluda() {
  • 30. print "Bienvenido<br>"; print "¿Como estas?<br>"; } function generaArray($vi,$vf) { $x=array(); for($valor=$vi;$valor<=$vf;$valor++) $x[]=$valor; return $x; } ?> <html> <head> <title>Funciones en PHP</title> <STYLE type="text/css"> <!-H1 {text-decoration: underline; text-align:center} P {font-Family:arial,verdana; color: blue;} // --> </STYLE </head> <body> <h1>Funciones en PHP</h1> <hr> <p>Calcular el mayor de 3 numeros</p> <?php ?> $a=12; $b=15; $c=4; $m=mayor($a,$b,$c); print "el mayor de $a, $b y $c es: $m <br>"; <p>Calcular el factorial de un numero </p> <?php ?> $num=6; $r=factorial($num); print "el factorial de $num es : $r <br>";
  • 31. <p> Funcion que permite saludar, no tiene parametros </p> <?php print saluda(); ?> <p> Funcion que permite generar un array a partir de dos valores numericos dados un valor inicial y un valor final </p> <?php $x=generaArray(5,30); print_r($x); </html> ?> </body>
  • 32. Llamadas a las funciones Se debe tener en cuenta lo siguiente La función debe encontrarse definida antes del lugar en el que se efectuará la llamada. No obstante es práctica habitual y recomendable definir las funciones incluso antes de cualquier código HTML, por ejemplo, colocar los scripts que definen las funciones antes del comando <HTML> o dentro del encabezado del documento. En la llamada los parámetros, en el caso de que existan, deben ser pasados en el mismo orden en el que aparecen en la definición. Como parámetros pueden pasarse variables, valores o expresiones. Los valores numéricos pueden ser escritos directamente o entrecomillados. En el caso de las funciones que tienen parámetros, en la llamada deben colocarse los paréntesis vacios. Si se pasan menos parámetros que los que tiene la función, los últimos parámetros se asumirán como nulos, la función ejecutará las instrucciones pero se generaran mensajes de aviso (warnings) Si la función devuelve un valor, este puede ser asignado a una variable en la llamada o utilizando directamente en otra expresión. PARAMETROS DE UNA FUNCION PARAMETROS OPCIONALES En php todos los parámetros de las funciones pueden ser considerados opcionales de manera que a la hora de realizar la llamada a una función, pueden pasarse un numero de argumentos distinto del que acepta la función. Si se pasan menos argumentos de los esperados, los últimos se asumirán que tienen valor nulo. En el caso de pasarse más argumentos de los esperados, los que sobran pueden ser ignorados. Al ejecutar la función se generan unos mensajes de aviso notificando el hecho de recibir menos parámetros de los previstos. <?php function suma($a,$b,$c) { return $a+$b+$c; } ?>
  • 33. <html> <head> <title>Funciones con parametros opcioneles en PHP</title> <STYLE type="text/css"> <!-H1 {text-decoration: underline; text-align:center} P {font-Family:arial,verdana; color: blue;} // --> </STYLE </head> <body> <h1> Funciones con parametros opcionales en PHP </h1> <hr> <?php print "La suma print "La suma print "La suma print "La suma ?> </body> </html> es : " es : " es : " es : " .suma() . "<br>"; .suma(6) . "<br>"; .suma(6,15) . "<br>"; .suma(6,15,4) . "<br>"; Ejemplo: Considere una función que reciba el valor de 3 números y retorne la suma de ellos. PARAMETROS CON VALORES POR DEFECTO Al definir funciones pueden darse valores por defecto para los parámetros , de tal forma que si un parámetro no está presente en la llamada, se le asigna ese valor por defecto en lugar de tomar el valor nulo. Para indicar un valor por defecto basta asignar dicho valor con el signo “=” en la lista de argumentos de la cabecera de la función. Si la función tiene argumentos que no llevan valor por defecto y otros que si lo llevan, estos últimos deben estar situados al final en la lista de argumentos de la función. Ejemplo: <?php function suma($a=6,$b=15,$c=4) { return $a+$b+$c; } ?> <html> <head> <title>Funciones con parametros con valores por defecto en PHP</title>
  • 34. <STYLE type="text/css"> <!-H1 {text-decoration: underline; text-align:center} P {font-Family:arial,verdana; color: blue;} // --> </STYLE </head> <body> <h1> Funciones con parametros con valores por defecto en PHP </h1> <hr> <?php print "La suma es : " .suma() . "<br>"; print "La suma es : " .suma(8) . "<br>"; print "La suma es : " .suma(8,20) . "<br>"; print "La suma es : " .suma(8,20,32) . "<br>"; ?> </body> </html> LISTA DE PARAMETROS DE LONGITUD VARIABLE Las funciones definidas por el usuario pueden recibir lista de argumentos de longitud variable. En este caso a la hora de definir la función se puede dejar la lista de argumentos vacía y utilizar una serie de funciones predefinidas para recuperar los argumentos que realmente han sido pasados a la hora de efectuar la llamada a la función. La primera de las funciones que puede ser utilizada es : func_num_args() que devuelve el numero de parámetros que efectivamente han sido pasados. Una vez que se sabe cuantos parámetros han sido pasados, es necesario también disponer de algún mecanismo para recuperar los valores de los mismos. La siguiente función permite recuperar el valor del argumento numero n: func_get_arg(n), debe tenerse en cuenta que la numeración de los argumentos comienza en 0. Si lo que se desea es recuperar todos los valores de los argumentos en una estructura de datos y en una sola operación, puede usarse la función func_get_args() que devuelve un array con todos los valores de los argumentos. Ejemplo: A continuación definimos una función que calcula la suma de los valores de todos los argumentos.
  • 35. <?php function suma() { $n=func_num_args(); $aux=0; for($i=0;$i<$n;$i++) $aux = $aux+ func_get_arg($i); return $aux; } ?> <html> <head> <title>Funciones con parametros de longitud variable en PHP</title> <STYLE type="text/css"> <!-H1 {text-decoration: underline; text-align:center} P {font-Family:arial,verdana; color: blue;} // --> </STYLE </head> <body> <h1> Funciones con parametros de longitud variable </h1> <hr> <?php print "La suma es : " .suma(2,5,8) . "<br>"; print "La suma es : " .suma(1,2) . "<br>"; ?> </body> </html>
  • 36. PASO DE PARAMETROS POR VALOR O POR REFERENCIA A la hora de efectuar la llamada a una función, los argumentos pueden ser pasados por valor o por referencia. En el primer caso, lo que se pasa es realmente es una copia del correspondiente valor para que la función lo reciba y realice con él las correspondientes operaciones. En el segundo caso, en cambio, cuando se pasa una variable como argumento, no se pasa a la función una copia de su valor sino la dirección de memoria donde se encuentra dicha variable. De esta forma la función puede acceder directamente a esa zona de memoria y leer o modificar el valor de la variable. Para indicar que es un parámetro por referencia se debe preceder el símbolo & a la variable. <?php function fValor($x) { $x= $x + 2; } function fReferencia(&$x) { $x= $x + 2; } ?> <html> <head> <title>Funciones con parametros con valores por defecto en PHP</title> <STYLE type="text/css"> <!-H1 {text-decoration: underline; text-align:center} P {font-Family:arial,verdana; color: blue;} // --> </STYLE </head> <body> <h1> Funciones con parametros por valor y referencia </h1> <hr> <?php print "Llamando a la funcion con parametro por valor <br>"; $a=12; fValor($a); print "El valor de a es : $a <br>"; print "Llamando a la funcion con parametro por referencia<br>"; $a=12; fReferencia($a); print "El valor de a es : $a <br>"; ?> </body> </html>
  • 37. AMBITO DE LAS VARIABLES VARIABLES LOCALES Toda variable definida dentro de una función tiene un ámbito local a la misma; es decir, únicamente podrá ser utilizada dentro de la propia función. VARIABLES GLOBALES Una variable declarada fuera de una función tiene un ámbito global, y no puede ser utilizada dentro de una función, a no ser que se declare explícitamente su globalidad. Ejemplo: $director=”Amenábar”; function prueba() { global $director; print $director; } VARIABLES ESTATICAS Otro aspecto importante relacionado con el ámbito de las variables es la posibilidad de definir variables estáticas. Una variable estática tiene un ámbito local a la función en la que se define pero no pierde su valor cuando se termina la ejecución de la misma. Es decir conserva el valor entre llamadas sucesivas a la función; en contra de lo que ocurre con las variables locales, que pierden su valor una vez que la ejecución de la función ha finalizado. Ejemplo: La siguiente función declara una variable estatica, con valor inicial 0, y en cada llamada se incrementa una unidad y escribe su nuevo valor. <?php function pruebaEstatica() { static $n=0; $n++; print "$n "; } ?> <html>
  • 38. <head> <title>Variables estaticas en PHP</title> <STYLE type="text/css"> <!-H1 {text-decoration: underline; text-align:center} P {font-Family:arial,verdana; color: blue;} // --> </STYLE </head> <body> <h1> variables estaticas en php </h1> <hr> </html> <?php for($i=1;$i<=10;$i++) pruebaEstatica(); ?> </body> CLAUSULAS INCLUDE Y REQUIRE Al programar es bastante frecuente que unas mismas líneas de código o conjunto de funciones se necesiten en varios documentos. Puede tratarse por ejemplo de: Funciones de validación de datos Funciones para mostrar cabeceras o pies de paginas Código de configuración para acceso a una base de datos Definición de determinados parámetros del programa. En lugar de copiar el código, se puede optar por escribir el código correspondiente en ficheros externos e incluirlos tantas veces como se quiera en otros ficheros diferentes. Las clausulas include y require permiten incluir y ejecutar el contenido del fichero indicado en aquel que contiene la clausula. De esta forma pueden escribirse completas librerías de funciones y facilitar la portabilidad y reusabilidad. La sintaxis de las dos sentencias de inclusión es idéntica: include(“fichero.php”); require(“fichero.php”); La inclusión puede realizarse en cualquier punto del programa, incluso puede depender del flujo de ejecución, por ejemplo, una inclusión dentro de un bloque if.
  • 39. La única diferencia entre include y require es que, en caso de no localizar el fichero a incluir, require produce un “Error Fatal” y no ejecuta el resto del programa ni continúa con la carga de la pagina. En cambio con include, si el fichero no se encuentra se genera un aviso pero se sigue con la ejecución del resto del programa y carga de la pagina. Ejemplo A continuación se muestra el uso de la clausula require para incluir en un programa las asignaciones realizadas en el fichero de nombre definiciones.php Fichero: definiciones.php <?php $titulo="Los increibles"; $director="Brad Bird"; $genero="aventuras"; ?> Si otro documento quiere incluir estas definiciones, deberá hacerlo de la siguiente manera: <html> <head> <title>Include y Require</title> </head> <body> <?php require("definiciones.php"); print "Nuestro proximo extreno : $titulo<br>"; print "pelicula de genero : $genero<br> "; print "dirigida por : $director<br>"; ?> </body> </html> ARRAYS Un array o matriz es un conjunto de datos que se almacena bajo un nombre común y a los que se puede acceder utilizando uno o mas índices. En PHP los datos que componen el array pueden ser de diferente tipo, de manera que en un único array pueden almacenarse indistintamente cadenas de caracteres, valores numéricos, otros arrays,.. Una de las particularidades que distinguen a PHP de otros lenguajes de programación surge a la hora de crear el array: no es necesario determinar la dimensión antes de inicializarlo. Esto dota de una gran flexibilidad a los programas pues permite la modificación posterior del array, suprimiendo o añadiendo nuevos elementos cuando sea necesario. Construccion de Arrays Los elementos que componen un array, como cualquier otro elemento, son almacenados en una variable, para indicar que dicha variable contiene un array se utilizan los caracteres [], situando entre ellos un índice numérico que permitirá identificar a cada uno de los elementos individuales. Ejemplo:
  • 40. $x[0]=12; $x[1]=”Hola”; $x[2]=25.8; $x[]=”Ultimo”; A la hora de añadir un ultimo elemento no es necesario indicar el índice correspondiente. En este ejemplo, automáticamente se asigna a la posición 3. Además, puede observarse como el array puede contener datos de tipos diferentes, en este caso dos valores numéricos y dos cadenas de caracteres. Otra manera de crear arreglos es con ayuda de la función array() $x = array(12,”Hola”,25.8,”Ultimo”); En este caso no se han considerado índices y se consideran por defecto los valores 0,1,2,…. Arrays Asociativos Supóngase que se desea almacenar los años de un conjunto de películas. Se puede construir un array de elementos numéricos (los años) indexados mediante una cadena de caracteres (el titulo de la película correspondiente) $peliculasAño[“La costilla de Adan”]=1949; $peliculasAño[“La gran Ilusion”]=1937; $peliculasAño[“Roma, la ciudad Abierta”]=1944; $peliculasAño[“Sabrina”]=1954; $peliculasAño[“Vive como quieras”]=1938; Otra manera de generar este arreglo seria con la función array() $peliculasAño = array(“La Costilla de Adan” => 1949, “La gran Ilusion”, => 1937, “Roma, la ciudad Abierta” => 1944, “Sabrina” => 1954, “Vive como quieras” => 1938); En este caso, al construir el array debe indicarse tanto la palabra clave que actua de índice como el valor asociado a ese elemento del array. Aunque el array se haya construido con la función array, en cualquier momento se puede añadir un nuevo elemento $peliculasAño[“West Side Story”] = 1961; Arrays Multidimensionales El lenguaje PHP permite la creación de arrays ultimensionales, es decir, arrays cuyos elementos son nuevos arrays. La sintaxis es similar al caso de una dimensión, siendo necesario indicar los dos índices por separado. Ejemplo: A continuación creamos un array de nombre $M y de dos dimensiones. $M[0][0] = 5; $M[0][1] = 3; $M[1][0] = -2; $M[1][1] = 7; La definición equivalente usando la función array() seria:
  • 41. $M = array( array(5,3), array(-2,7)); Es posible definir arrays asociativos multidimensionales, e incluso combinar índices numéricos y alfabéticos. $pelicula[“George Lucas”][1949]= “La costilla de Adan”; $pelicula[“Jean Renoir”][1937]= “La gran Ilusion”; $pelicula[“Roberto Rosselini”][1944] = “Roma, Ciudad Abierta”; $pelicula[“Billy Wilder”][1954] = “Sabrina”; $pelicula[“Frank Capra”][1938] = “Vive como quieras”; Tambien es posible indexar los elementos de un array multidimensional $pelicula = array( “La costilla de Adan” => array(“Director” =>”G. Cukor”, “Año” => 1949), “La gran Ilusion” => array(“Director” =>”Jean Renoir”, “Año” => 1937), “Roma, Ciudad Abierta” => array(“Director” =>”Roberto Rosselini”, “Año” => 1944), “Sabrina” => array(“Director” =>”Billy Wilder”, “Año” => 1954), “Vive como quieras” => array(“Director” =>”Frank Capra”, “Año” => 1938) ) Recorrido de todos los elementos de un array Una vez creado e inicializado un array unidimensional o multidimensional, pude que se esté interesado en mostrar o manipular todos sus elementos. Para mostrar todos los elementos de un array, una primera opción es el uso de la función print_r(), que aplicada sobre un array muestra en la pagina la estructura del mismo de acuerdo al siguiente esquema: ( [índice] => elemento1 [índice] => elemento2 ... [índice] => elementon) Para la manipulación de los elementos de arrays se dispone de estructuras iterativas que simplifican la tarea en particular, es de destacar una sentencia especifica para recorrer todos los elementos de un array: foreach( array as valor) Ejemplo: El siguiente código recorre todos los elementos de un arreglo y los muestra en la pagina $actores = array(“Marlon Brando”,”Gary Cooper”,”Cary Grant”,”James Stewart”); foreach( $actores as $nombre) echo “ $nombre <br>”; Si además de recuperar los elementos del array, se desea también conocer el índice, tanto en el caso de índices numéricos como en array asociativos, se puede una sintaxis alternativa del bucle foreach foreach(array as índice => valor) Ejemplo: Si tenemos el arreglo y queremos reportarlo
  • 42. $peliculasAño = array (“La Costilla de Adan” => 1949, “La gran Ilusion”, => 1937, “Roma, la ciudad Abierta” => 1944, “Sabrina” => 1954, “Vive como quieras” => 1938); foreach($peliculasAño as $indice => $valor) echo “<i>$indice,</i> ($valor) <br>”; Tambien es posible utilizar estas estructuras iterativas anidadas para recorrer arrays multidimensionales. Ejemplo: $peliculas = array( “La costilla de Adan” => array(“Director” =>”G. Cukor”, “Año” => 1949), “La gran Ilusion” => array(“Director” =>”Jean Renoir”, “Año” => 1937), “Roma, Ciudad Abierta” => array(“Director” =>”Roberto Rosselini”, “Año” => 1944), “Sabrina” => array(“Director” =>”Billy Wilder”, “Año” => 1954), “Vive como quieras” => array(“Director” =>”Frank Capra”, “Año” => 1938) ); foreach($peliculas as $indice => $titulo) { echo “Datos de $indice : <br>”; foreach($titulo as $indice =>$valor) echo ”&nbsp&nbsp $indice; $valor <br>”; } Ejercicio1: Crear y mostrar los arreglos unidimensionales anteriores <html> <head> <title>Arreglos</title> </head> <body> <h1>Arreglos</h1> <hr> <font color="blue">Mostrar los elementos de un arreglo</font><br> <?php $x[0]=12; $x[1]="Hola"; $x[2]=25.8; $x[]="Ultimo"; for($i=0;$i<count($x);$i++) print " elemento $i : $x[$i]<br>"; ?> <br> <font color="blue">Mostrar un arreglo de nombres creado con array </font><br> <?php $actores = array("Marlon Brando","Gary Cooper","Cary Grant","James Stewart");
  • 43. foreach($actores as $nombre) echo " $nombre <br>"; ?> <br> <font color="blue">Mostrar un arreglo asociativo </font><br> <?php $peliculasAño=array("La Costilla de Adan" => 1949, "La gran Ilusion" => 1937, "Roma, la ciudad Abierta" => 1944,"Sabrina" => 1954, "Vive como quieras" => 1938); foreach($peliculasAño as $indice => $valor) echo "<i>$indice,</i> ($valor) <br>n"; ?> </body> </html> Ejercicio2: Crear y mostrar las matrices de los ejemplos. <html> <head> <title>Matrices</title> </head> <body> <h1>Matrices</h1> <hr> <font color="blue">Mostrar los elementos de una matriz</font><br> <?php $M[0][0] = 5; $M[0][1] = 3; $M[1][0] = -2; $M[1][1] = 7; for($i=0;$i<2;$i++)
  • 44. { } for($j=0;$j<2;$j++) print $M[$i][$j]." "; print "<br>"; ?> <br> <font color="blue">Mostrar un arreglo asociativo multidimensional </font><br> <?php $peliculas = array("La costilla de Adan" => array("Director" =>"G. Cukor", "Año" => 1949),"La gran Ilusion" => array("Director" =>"Jean Renoir", "Año" => 1937), "Roma, Ciudad Abierta" => array("Director" =>"Roberto Rosselini", "Año" => 1944), "Sabrina" => array("Director" =>"Billy Wilder", "Año" => 1954), "Vive como quieras" => array("Director" =>"Frank Capra", "Año" => 1938) ); foreach($peliculas as $indice => $titulo) { echo "Datos de : $indice : <br>"; foreach($titulo as $indice =>$valor) echo "&nbsp&nbsp $indice : $valor <br>"; } ?> </body> </html>
  • 45. PROGRAMACION ORIENTADA A OBJETOS Crear una clase Rectángulo con atributos base y altura y mostrar el área, perímetro y diagonal <?php class Rectangulo{ private $largo,$ancho; public function __construct($l,$a) { $this->largo=$l; $this->ancho=$a; } public function setLargo($l) { $this->largo=$l; } public function setAncho($a) { $this->ancho=$a; }
  • 46. public function getLargo() { return $this->largo; } public function getAncho() { return $this->ancho; } public function area() { return $this->largo*$this->ancho; } public function perimetro() { return 2*($this->largo + $this->ancho); } public function diagonal() { return sqrt(pow($this->largo,2) + pow($this->ancho,2)); } } class Caja extends Rectangulo{ private $altura; public function __construct($l,$a,$h) { parent::__construct($l,$a); $this->altura=$h; } public function setAltura($h) { $this->altura=altura; } public function getAltura() { return $this->altura; } public function volumen() { return parent::area()*$this->altura; } }
  • 47. ?> <html> <head> <title>Programacion Orientada a Objetos en PHP</title> </head> <body> <h1>Programacion Orientada a Objetos</h1> <hr> <font color="blue">Crear un Objeto Rectangulo y mostrar area, perimetro, diagonal</font><br> <?php $r= new Rectangulo(3,4); echo "Rectangulo <br>"; echo " Largo: ".$r->getLargo() . "<br>"; echo " Ancho: ".$r->getAncho() . "<br>"; echo " Area: ".$r->area() . "<br>"; echo " Perimetro : ".$r->perimetro() . "<br>"; echo " Diagonal : ".$r->diagonal() . "<br>"; echo "<br>"; ?> <font color="blue">Nuevos valores de atributos</font><br> <?php $r->setLargo(5); $r->setAncho(12); echo " Largo : ".$r->getLargo() . "<br>"; echo " Ancho : ".$r->getAncho() . "<br>"; echo " Area: ".$r->area() . "<br>"; echo " Perimetro : ".$r->perimetro() . "<br>"; echo " Diagonal : ".$r->diagonal() . "<br>"; ?> <font color="blue">Creacion del Objeto caja</font><br> <?php $c= new Caja(6,9,10); echo "Largo : ". $c->getLargo() . "<br>"; echo "Ancho : ". $c->getAncho() . "<br>"; echo "Altura : ". $c->getAltura(). "<br>"; echo "Volumen : ". $c->volumen() . "<br>"; ?>
  • 48. </html> </body> Problema: Implementar una clase con atributos una lista de direcciones y una lista de títulos y muestre una lista de hipervínculos en forma horizontal (básicamente un menú de opciones) Lo primero que debemos pensar es que valores almacenará la clase, en este caso debemos cargar una lista de direcciones web y los títulos de los enlaces. Podemos definir dos vectores paralelos que almacenen las direcciones y los títulos respectivamente. Definiremos dos métodos: cargarOpcion y mostrar. <html> <head>
  • 49. <title>Pruebas</title> </head> <body> <?php class Menu { private $enlaces=array(); private $titulos=array(); public function cargarOpcion($en,$tit) { $this->enlaces[]=$en; $this->titulos[]=$tit; } public function mostrar() { for($f=0;$f<count($this->enlaces);$f++) { echo '<a href="'.$this->enlaces[$f].'">'.$this->titulos[$f].'</a>'; echo "-"; } } } $menu1=new Menu(); $menu1->cargarOpcion('http://www.google.com','Google'); $menu1->cargarOpcion('http://www.yahoo.com','Yhahoo'); $menu1->cargarOpcion('http://www.msn.com','MSN'); $menu1->mostrar(); ?> </body> </html> Problema:Confeccionar una clase Tabla que permita indicarle en el constructor la cantidad de filas y columnas. Definir otra responsabilidad que podamos cargar un dato en una determinada fila y columna. Finalmente debe mostrar los datos en una tabla HTML. <html> <head>
  • 50. <title>Pruebas</title> </head> <body> <?php class Tabla { private $mat=array(); private $cantFilas; private $cantColumnas; public function __construct($fi,$co) { $this->cantFilas=$fi; $this->cantColumnas=$co; } } public function cargar($fila,$columna,$valor) { $this->mat[$fila][$columna]=$valor; public function inicioTabla() { echo '<table border="1">'; } public function inicioFila() { echo '<tr>'; } public function mostrar($fi,$co) { echo '<td>'.$this->mat[$fi][$co].'</td>'; } public function finFila() { echo '</tr>'; } public function finTabla() { echo '</table>'; } public function graficar() { $this->inicioTabla(); for($f=1;$f<=$this->cantFilas;$f++) {
  • 51. $this->inicioFila(); for($c=1;$c<=$this->cantColumnas;$c++) { $this->mostrar($f,$c); } $this->finFila(); } } $this->finTabla(); } $tabla1=new Tabla(2,3); $tabla1->cargar(1,1,"1"); $tabla1->cargar(1,2,"2"); $tabla1->cargar(1,3,"3"); $tabla1->cargar(2,1,"4"); $tabla1->cargar(2,2,"5"); $tabla1->cargar(2,3,"6"); $tabla1->graficar(); ?> </body> </html> Problema:Una página web es común que contenga una cabecera, un cuerpo y un pié de página. Estas tres secciones podemos perfectamente identificarlas como clases. También podemos identificar otra clase página. Ahora bien cómo podemos relacionar estas cuatro clases (pagina, cabecera, cuerpo, pie), como podemos imaginar la cabecera, cuerpo y pie son partes de la pagina. Luego podemos plantear una clase pagina que contenga tres atributos de tipo objeto <html> <head> <title>Pruebas</title> </head> <body> <?php class Cabecera {
  • 52. private $titulo; public function __construct($tit) { $this->titulo=$tit; } public function graficar() { echo '<h1 style="text-align:center">'.$this->titulo.'</h1>'; } } class Cuerpo { private $lineas=array(); public function insertarParrafo($li) { $this->lineas[]=$li; } public function graficar() { for($f=0;$f<count($this->lineas);$f++) { echo '<p>'.$this->lineas[$f].'</p>'; } } } class Pie { private $titulo; public function __construct($tit) { $this->titulo=$tit; } public function graficar() { echo '<h4 style="text-align:left">'.$this->titulo.'</h4>'; } } class Pagina { private $cabecera; private $cuerpo; private $pie; public function __construct($texto1,$texto2) { $this->cabecera=new Cabecera($texto1); $this->cuerpo=new Cuerpo(); $this->pie=new Pie($texto2); } public function insertarCuerpo($texto) {
  • 53. $this->cuerpo->insertarParrafo($texto); } public function graficar() { $this->cabecera->graficar(); $this->cuerpo->graficar(); $this->pie->graficar(); } } $pagina1=new Pagina('Título de la Página','Pie de la página'); $pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 1'); $pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 2'); $pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 3'); $pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 4'); $pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 5'); $pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 6'); $pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 7'); $pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 8'); $pagina1->insertarCuerpo('Esto es una prueba que debe aparecer dentro del cuerpo de la página 9'); $pagina1->graficar(); ?> </body> </html>
  • 54. Base de datos con PHP y MYSQL Apertura de la conexión El primer paso para conseguir acceder a los datos de una base de datos MySQL es establecer la conexión con el servidor de base de datos. Desde PHP esta conexión se realiza con la función. mysql_connect(servidor,usuario,contraseña); Los tres parámetros anteriores permiten identificar el servidor sobre el que está instalado MySQL, y el nombre de usuario y contraseña necesarios para conectarse. Por supuesto, estos dos últimos datos deben coincidir con los de un usuario registrado en MySQL La función mysql_connect() devuelve un valor entero que se utilizara como identificador de la conexión en las operaciones posteriores. Si se produce un error en la conexión, el valor devuelto por la función será 9. Cierre de la Conexión La conexión realizada se cierra automáticamente al terminar la ejecución del script en el que se ha establecido, o bien explícitamente con la función mysql_close(). Esta función recibe como único argumento el identificador de la conexión. mysql_close(identificador); El identificador de la conexión en la función mysql_close() es opcional, en caso de que no se indique se cerrara la ultima conexión abierta. La función mysql_close() devuelve un valor entero que será nulo en el caso de que se produzca algún error en el proceso. De esta manera, el esquema general de un programa que realiza conectividad con MySQL seria: $c = mysql_connect(“localhost”,”root”,””); if(!$c) die(“Lo siento, error en la conexion”); else print “Conexión establecida correctamente”; ... ... mysql_close(); Selección de la Base de Datos Una vez abierta la conexión con el servidor MySQL, el siguiente paso será la selección de una base de datos disponibles para la realización de las operaciones posteriores sobre ella. La función que permite seleccionar una base de datos es : mysql_select_db(nombreBaseDeDatos,identificadorConexion);
  • 55. El primer parámetro será el nombre de la base de datos a seleccionar y el segundo el identificador de la conexión. De nuevo, como en todas las funciones de conexión, si se produce un error, por ejemplo, porque la base de datos no existe, la función mysql_select_db() devolverá el valor 0. $c=mysql_connect(“localhost”,”root”,””); $bd = mysql_select_db(“bdejemplo”,$c); if( !$c ) die(“Base de datos no existente”); Ejecución de sentencias SQL sobre la base de datos seleccionada La selección mysql_query() permite ejecutar cualquier sentencia SQL sobre la base de datos activa. Esta función admite dos argumentos, el primero es una cadena de caracteres con el código SQL de la consulta a realizar; el segundo argumento será el identificador de la conexión. mysql_query(sentencia, identificadorDeConexion); Esta función devuelve 0 si se produce algún error o un numero entero positivo en caso de ejecución correcta. En las sentencias de selección, este valor devuelto se utilizará posteriormente para acceder el resultado de la consulta. En el caso de sentencias de creación, inserción, eliminación o actualización, este valor devuelto únicamente sirve para comprobar si la sentencia se ejecuto correctamente. Ejemplo: $c = mysql_connect(“localhost”, “root”, “”); if(!$c) die(“conexion fallida”); $ok = mysql_select_db(“bdejemplo”, $c); if(!$ok) die(“error en la seleccion de la base de datos”); $consulta = “alter table producto add tipo varchar(20) not null”; $resultado=mysql_query($consulta, $c); if($resultado) print(“Tabla actualizada”); else printt(“No se ha podido actualizar la tabla”); mysql_close($c); Funciones usadas en el manejo de base de datos mysql_num_rows() : Devuelve el numero de filas de un resultado. Ejemplo: $resultado=mysql_query($consulta, $c); if(mysql_num_rows($resultado)) { ... } - die(mensaje): La función die() se encarga de imprimir un mensaje, pero además detiene hasta ese punto la ejecución del script.
  • 56. - mysql_fetch_array(id_resultado): Extrae la fila de resultado como un array asociativo. Devuelve una matriz que corresponde a la sentencia extraida, o falso si no quedan más filas_ Ejemplo: <?php $c= mysql_connect($host,$user,$password); $ok= mysql_select_db(“bdejemplo”, $c); $consulta=”select * from producto”; $resultado = mysql_query($consulta, $c); while($row = mysql_fetch_array($resultado)) { echo $row["idproducto"]; echo $row["nombreproducto"]; } mysql_free_result($resultado); ?> - mysql_fetch_object ( id_resultado ) : Extrae una fila de resultado como un objeto. Devuelve un objeto con las propiedades que corresponden a la última fila extraída, o FALSE si no quedan más filas. mysql_fetch_object() es similar a mysql_fetch_array(), con la diferencia que un objeto es devuelto en lugar de un array asociativo. Indirectamente, quiere decir que solo se puede aceder a los datos por el nombre del campo, y no por su posición. Nota: Los nombres de campos retornados por esta función diferencian entre mayúsculas y minúsculas. Ejemplo: <?php $c = mysql_connect("hostname", "user", "password"); $ok=mysql_select_db("mydb"); $result = mysql_query("select * from mytable", $c); while ($row = mysql_fetch_object($result)) { echo $row->user_id; echo $row->fullname; } mysql_free_result($result); ?> - mysql_fetch_row(id_resultado);Devuelve una fila de resultado como matriz. Devuelve: Una matriz que corresponde a la fila selecionada, o FALSE si no quedan más filas. mysql_fetch_row() seleciona una fila de datos del resultado asociado al identificador de resultado especificado. La fila es devuelta como una matriz. Cada columna del resultdo es guardada en un offset de la matriz, empezando por el offset 0. La llamada a mysql_fetch_row() deberá devolver la proxima fila del resultado, o FALSE si no quedan mas filas. Ejemplo: <?php
  • 57. $c = mysql_connect("hostname", "user", "password"); $ok=mysql_select_db("mydb"); $result = mysql_query("select * from mytable", $c); while ($row = mysql_fetch_row($result)) { echo $row[0]; echo $row[1]; } Ejercicio Crear una base de datos llamada empresa, y luego una tabla llamada producto con los siguientes atributos; idproducto, descripción, precio y stock. Luego hacer un menú de opciones con los siguiente: Registrar Productos Mostrar Productos Consultar Producto Eliminar Producto Modificar Producto formularioRegistro.html <html > <head> <title>Registro de Productos</title> </head> <body> <h1>Registro de Productos</h1> <hr color="#CC0000"/> <form action ="insertaproducto.php" method="post"> idproducto <input type="text" name="idproducto"><br> descripcion <input type="text" name="descripcion"><br> precio <input type="text" name="precio"><br> stock <input type="text" name="stock"><br> <input type="submit" value="registrar"> <input type="reset" value="borrar"> </form> <p>&nbsp;</p> </body> </html> insertaproducto.php <html> <head> <title>registro de nuevo producto</title> </head> <body> <?php // Comprobacion de la recepcion de las variables $idproducto=$_POST["idproducto"];
  • 58. $descripcion=$_POST["descripcion"]; $precio=$_POST["precio"]; $stock = $_POST["stock"]; if(isset($idproducto,$descripcion,$precio,$stock)) { $host="localhost"; $usuario="root"; $password=""; $db="empresa"; $c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error()); mysql_select_db($db,$c) or die("Error ". mysql_error()); $consulta="INSERT INTO producto(idproducto,descripcion,precio,stock) VALUES ('$idproducto','$descripcion','$precio','$stock')"; // Ejecucion de la consulta if(mysql_query($consulta,$c)) print("<center><h2> PRODUCTO REGISTRADO</h2></center>"); } else print("No se han definido las variables"); ?> </body> </html> mostrarProductos.php <html > <head> <title>Lista de Productos </title> </head> <body> <h1 align="center"><font color="#CC0000">Lista de Productos Disponibles</font></h1> <hr color="#0066CC" /> <?PHP $host="localhost"; $usuario="root"; $password=""; $db="empresa"; $c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error()); mysql_select_db($db,$c) or die("Error ". mysql_error()); $consulta="SELECT * FROM producto"; $resultado = mysql_query($consulta,$c); if($resultado) { echo "<table border width=100%>
  • 59. <tr> <th>numero</th> <th>idproducto</th> <th>descripcion</th> <th>precio</th> <th>stock</th> </tr> "; $cont=0; while($registro=mysql_fetch_array($resultado)) { $cont++; echo "<tr align=center> <td>$cont</td> <td>$registro[0]</td> <td>$registro[1]</td> <td>$registro[2]</td> <td>$registro[3]</td> </tr>"; } echo "</table>"; } mysql_close($c); ?> </body> </html> formularioConsultaProducto.html <html> <head> <title>ConsultaProducto</title> </head> <body> <div align="center"> <h1>Consulta de Productos </h1> </div> <hr color="#0066FF"/> <form action="consultaproducto.php" method="post"> idproducto : <input type="text" size="8" name="idproducto" ><br /> <input type="submit" value="enviar" /> <input type="reset" value="borrar" /> </form> </body> </html> consultaproducto.php <html>
  • 60. <head> <title>mostrar Producto </title> </head> <body> <h1>Datos del Producto </h1> <hr color="#CC0000"/> <?php $host="localhost"; $usuario="root"; $password=""; $db="empresa"; $c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error()); mysql_select_db($db,$c) or die("Error ". mysql_error()); $idproducto=$_POST["idproducto"]; $consulta="SELECT * FROM producto WHERE idproducto='$idproducto'"; $resultado=mysql_query($consulta,$c); // comprobacion de la existencia de algun registro resultado if(mysql_num_rows($resultado)) { // se recupera el registro resultado en array $registro=mysql_fetch_row($resultado); echo " <P align=center> <table border=1 width=40% bgcolor=##99CCFF> <tr> <td>idproducto </td> <td>$registro[0]</td> </tr> <tr> <td>descripcion </td> <td>$registro[1]</td> </tr> <tr> <td>precio </td> <td>$registro[2]</td> </tr> <tr> <td>stock </td> <td>$registro[3]</td> </tr> <table> </p> <br> <A HREF="formularioConsultaProducto.html"> Volver a Consultar Producto</A>"; } else
  • 61. echo("EL ID DEL PRODUCTO NO EXISTE"); ?> </body> </html> formularioEliminaProducto.html <html > <head> <title>elimina productos </title> </head> <body> <div align="center"> <h1>Eliminacion de Productos </h1> </div> <hr color="#FF0000"/> <form action="eliminaproducto.php" method="post"> idproducto : <input type="text" size="8" name="idproducto" ><br /> <input type="submit" value="enviar" /> <input type="reset" value="borrar" /> </form> </body> </html> eliminaproducto.php <html > <head><title>elimina producto </title> </head> <body> <?php $host="localhost"; $usuario="root"; $password=""; $db="empresa"; $c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error()); mysql_select_db($db,$c) or die("Error ". mysql_error()); $idproducto=$_POST["idproducto"]; $consulta="select * from producto where idproducto='$idproducto'"; $resultado=mysql_query($consulta,$c);
  • 62. if(mysql_num_rows($resultado)) { $consulta = "DELETE FROM producto where idproducto='$idproducto'"; $resultado=mysql_query($consulta,$c); if($resultado) echo "<center><I> registro eliminado </I><center>"; } else echo "<center><I> no existe el id del producto </I><center>"; mysql_close($c); ?> <hr> <div align="justify"><a href="formularioEliminaProducto.html"> Volver a eliminar </a> </div> </body> </html> formularioModificaProducto.html <html > <head><title> Modificar Producto</title></head> <body> <body> <div align="center"> <h1>Modificacion de Productos </h1> </div> <hr color="#0066FF"/> <form action="modificaproducto.php" method="post"> idproducto : <input type="text" size="8" name="idproducto" ><br /> <input type="submit" value="enviar" /> <input type="reset" value="borrar" /> </form> </body> </html> modificaproducto.php <html> <head> <title> Modificacion de datos de un Producto</title> </head> <body> <?php $host="localhost"; $usuario="root"; $password=""; $db="empresa";
  • 63. $c=mysql_connect($host,$usuario,$password) or die("Error:" . mysql_error()); mysql_select_db($db,$c) or die("Error ". mysql_error()); $idproducto=$_POST["idproducto"]; { if(isset($_POST["modificar"])) $descripcion=$_POST["descripcion"]; $precio=$_POST["precio"]; $stock = $_POST["stock"]; $consulta = "UPDATE producto SET descripcion='$descripcion', precio=$precio, stock=$stock where idproducto='$idproducto' "; } $resultado=mysql_query($consulta,$c); if($resultado) echo "<center><I> Datos actualizados </I><center>"; else { $consulta="select * from producto where idproducto='$idproducto'"; $resultado=mysql_query($consulta,$c); // comprobacion de la existencia de algun registro resultado if(mysql_num_rows($resultado)) { // se recupera el registro resultado en array $registro=mysql_fetch_row($resultado); mostrarpagina($registro); } else echo "<h2 align=center> Contraseña incorrecta</h2>"; } mysql_close($c); ?> <?php function mostrarpagina($datos) { echo "<form action=modificaproducto.php method=post>"; echo "<table width=80% border bgcolor=##99CCFF> <tr> <th bgcolor=cyan>idProducto</th> <td> $datos[0] </td> </tr> <tr> <th bgcolor=cyan>descripcion</th> <td><input type=text size=50 name=descripcion value='$datos[1]'></td> </tr>
  • 64. <tr> <th bgcolor=cyan>precio</th> <td><input type=text size=50 name=precio value=$datos[2]></td> </tr> <tr> <th bgcolor=cyan>stock</th> <td><input type=text size=50 name=stock value=$datos[3]></td> </tr> </table>"; echo " <input type=hidden name=modificar value=1> <input type=hidden name=idproducto value=$datos[0]> <br><input type=submit value=Actualizar> </form> "; } ?> <hr> <div align="justify"><a href="formularioModificaProducto.html"> Volver a modificar </a> </div> </body> </html>