Professional Documents
Culture Documents
PHP es un lenguaje interpretado(el compildor ejecuta linea por linea) 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.
<HTML>
<HEAD>
<TITLE>Primer Ejemplo de PHP</TITLE>
</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.
<?PHP
Instrucciones PHP
?>
<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
<?
Instrucciones PHP
?>
<%
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 ultima 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:
//
*/
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 en base 10 : 45 -142 783
- Ejemplos de numero en octal: 0123 (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 el punto como separador, o en notación científica.
Ejemplos: 14.67 -76.0023 1.4e3 -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>
<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>
</html>
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>
<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.
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.
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);
?>
</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)";
?>
</body>
</html>
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
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.
$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++
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>
</form>
</body>
</html>
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.
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.
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.
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.
OPERADORES LOGICOS
&& y
|| o
! negación
And
Or
Not
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;
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;
}
<html>
<head>
<title>Estructuras Condicionales</title>
</head>
<body>
<h1>Estructura Selectiva Simple : if ... else</h1>
<hr>
$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>";
?>
</body>
</html>
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.
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:
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;
}
?>
<?php
$c=40;
do{
print "$c ";
$c +=10;
}while($c<=150);
?>
<?php
$c=40;
do{
print "$c ";
$c +=10;
}while($c<=150);
?>
<?php
$n=5;
$fact=1;
for($i=1;$i<=$n;$i++)
$fact=$fact * $i;
print "El factorial de $n es : $fact <br>";
?>
<?php
$lista=array("Juan","Carlos","Pedro","Susana");
foreach($lista as $valor)
print "$valor <br>";
?>
</body>
</html>
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>
<?php
$codigo="";
for($i=1;$i<=8;$i++)
{
$letra=chr(rand(97,122));
$codigo=$codigo.$letra;
}
?>
<?php
print ("<table border=1>");
// Generacion de la fila de la cabecera
for($i=1;$i<=10;$i++)
print "<th> $i </th>";
print "<tr>";
</body>
</html>
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>
<?php
$a=12;
$b=15;
$c=4;
$m=mayor($a,$b,$c);
print "el mayor de $a, $b y $c es: $m <br>";
?>
<?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);
?>
</body>
</html>
Llamadas a las funciones
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 es : " .suma() . "<br>";
print "La suma es : " .suma(6) . "<br>";
print "La suma es : " .suma(6,15) . "<br>";
print "La suma es : " .suma(6,15,4) . "<br>";
?>
</body>
</html>
Ejemplo:
Considere una función que reciba el valor de 3 números y retorne la suma de ellos.
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>
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>
<?php
for($i=1;$i<=10;$i++)
pruebaEstatica();
?>
</body>
</html>
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.
$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 = 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;
$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)
)
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
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
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)
);
$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>
<html>
<head>
<title>Matrices</title>
</head>
<body>
<h1>Matrices</h1>
<hr>
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 "   $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;
?>
<html>
<head>
<title>Programacion Orientada a Objetos en PHP</title>
</head>
<body>
<h1>Programacion Orientada a Objetos</h1>
<hr>
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>";
?>
?>
</body>
</html>
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;
$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;
}
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();
}
}
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);
$c = mysql_connect(“localhost”,”root”,””);
if(!$c)
die(“Lo siento, error en la conexion”);
else
print “Conexión establecida correctamente”;
...
...
mysql_close();
mysql_select_db(nombreBaseDeDatos,identificadorConexion);
$c=mysql_connect(“localhost”,”root”,””);
$bd = mysql_select_db(“bdejemplo”,$c);
if( !$c )
die(“Base de datos no existente”);
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:
- 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);
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);
?>
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> </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());
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"];
$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"];
$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);
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>