PHP Mysql
PHP Mysql
5.1.4. Redirecciones
#include <stdio.h>
int main()
{
printf(“Status: 302\r\n”);
printf(“Location: nueva.html\r\n”);
exit(1);
}
ANOTACIONES
5.2. PHP
186
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
Apache, así como algunos otros servidores web, Roxen entre ellos,
puede incorporar PHP como un módulo propio del servidor, lo cual
permite que las aplicaciones escritas en PHP resulten mucho más rá-
pidas que las aplicaciones CGI habituales.
<h1>¡Hola mundo!</h1>
187
FUOC • XP04/90791/00021 Software libre
facilita notablemente el trabajo con éste, pero por otro lado supone
un peligro, ya que complica el trabajo en caso de que diseñadores
de web y programadores trabajen conjuntamente en las páginas.
<?php
$MYVAR = “1234”;
$myvar = “4321”;
echo $MYVAR. “<br>\n”;
echo $myvar.”<br>\n”;
?>
1234<br>
4321<br>
<HTML>
<HEAD>
<TITLE>Título del documento</TITLE>
</HEAD>
<BODY>
<h1>Cabecera H1</h1>
<?php echo “Hola” ?>
<h1>Cabecera H1 segunda</h1>
188
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
<?php
$MYVAR = 1234;
$myvar = 4321;
echo $MYVAR. “<br>“;
echo $myvar.”<br>“;
// Este programa presenta en pantalla unos números
?>
</BODY>
</HTML>
5.2.3. Variables
189
FUOC • XP04/90791/00021 Software libre
<?php
global $test;
?>
Las variables que no califiquemos como globales, pero que sean de-
finidas fuera de cualquier función, tendrán como ámbito el global.
Bastará con definir una variable dentro de una función. En ese caso,
su ámbito quedará restringido a la función donde la declaremos.
<?php
global $variable; // Variable global
$a=1; // Variable global implícita
function suma()
{
$b=1; // b es una variable local
$res=$a+$b; // res es una variable local
}
?>
<?php
$mares = array(); //con array() declaramos un vector
$mares[0]= “Mediterráneo”;
$mares[1] = “Aral”;
$mares[2] = “Muerto”;
?>
190
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
<?php
$montañas = array(); //con array() declaramos un vector
$montañas[“Everest”]= “Himalaya”;
$montañas[“Fitz Roy”] = “Andes”;
$montañas[“Montblanc”] = “Alpes”;
5.2.4. Operadores
Los operadores son símbolos que se utilizan para realizar tanto ope-
raciones matemáticas como comparaciones u operaciones lógicas.
• Operadores matemáticos:
191
FUOC • XP04/90791/00021 Software libre
• Operadores de comparación:
• Operadores lógicos:
<?php
$a = 5;
$b = 10;
$c = ($a + $b); //$c vale 15
$d = ($b - $a); //$d vale 5
$e = ($a * $b); //$e vale 50
$f = ($b / $a); //$f vale 2
$g = ($b % $a); //$g vale 0
?>
192
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
Condicionales
<?php
$a = 0;
$b = 1;
if($a == $b)
{
echo “Pues resulta que 0 es igual a 1”;
}
else
{
echo “Todo sigue igual. 0 no es igual a 1”;
}
ANOTACIONES
?>
193
FUOC • XP04/90791/00021 Software libre
if(condición)
{
código que se ejecutará si la condición es cierta
}
else
{
código que se ejecutará si la condición es falsa
}
if(condición1)
if(condición2)
{
código que se ejecutará si la condición2 es cierta
y la condición 1 es cierta
}
else
{
código que se ejecutará si la condición2 es falsa
y la condición 1 es cierta
}
else
{
código que se ejecutará si la condición1 es falsa
}
<?php
$a=1;
switch($a)
194
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
{
case 1:
case 2: echo “A es 1 o 2”; break;
case 3: echo “A es 3”; break;
case 4: echo “A es 4”; break;
case 5: echo “A es 5”; break;
case 6: echo “A es 6”; break;
default: echo “A es otro valor”;
}
Bucles
• El bucle while
El bucle while es el más simple de los tres, pero aún así probable-
mente sea el bucle más utilizado. El bucle se ejecuta mientras la con-
ANOTACIONES
<?php
$a = 1;
while($a < 4)
{
echo “a=$a<br>“;
$a++;
}
?>
195
FUOC • XP04/90791/00021 Software libre
En este caso, el bucle se ejecutará cuatro veces. Cada vez que se eje-
cute, incrementaremos el valor de a e imprimiremos un mensaje.
Cada vez que se vuelve a ejecutar el código, while comprueba la
condición y, en caso de cumplirse, vuelve a ejecutar el código. La
cuarta vez que se ejecute, como a valdrá cuatro, no se cumplirá la
condición especificada y el bucle no volverá a ejecutarse.
• El bucle for
<?php
for($a=1;$a < 4; $a++)
{
echo “a=$a<br>“;
}
?>
• foreach
Para aquellos casos en los que queremos que nuestro bucle haga un
recorrido sobre los elementos de un vector disponemos de una sen-
tencia que nos simplifica este hecho: foreach.
ANOTACIONES
<?php
foreach ($a as $v
{
print “Valor: $v.\n”;
}
?>
196
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
5.2.6. Funciones
Otro punto clave de PHP son las funciones. Las funciones en PHP
pueden recibir o no, parámetros y siempre pueden devolver un valor.
Las funciones sirven para dar mayor modularidad al código, evitan-
do así la repetición de código, permitiendo el aprovechamiento de
código entre proyectos, etc.
<?php
function ejemp ($arg_1, $arg_2, ..., $arg_n)
{
// Código de la función
return $retorno;
}
?>
<?php
function suma ($a1, $a2)
{
$retorno=$a1+$a2;
return $retorno;
}
{
for($i=$b1;$i<$b2;$i++)
{
$res=suma($res,$b3);
}
return $res;
}
echo sumatorio(1,3,2);
?>
197
FUOC • XP04/90791/00021 Software libre
<?php
function modifi ($&a1, $a2)
{
$a1=0;
$a2=0;
}
$b1=1;
$b2=1;
modifi($b1,$b2);
echo $b1.” “.$b2;
?>
1 0
de éste.
Mostrando información
198
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
<HTML>
<HEAD>
<TITLE>Título del documento</TITLE>
</HEAD>
<BODY>
<h1>Cabecera H1</h1>
</BODY>
</HTML>
Por otro lado, podemos usar PHP para generar contenido dinámico.
Para ello debemos usar las instrucciones de PHP de salida de datos,
la más importante, echo.
<HTML>
<HEAD>
<h1>Cabecera H1</h1>
<?php echo “Contenido de la <B>página</B>“; ?>
<h1>Cabecera H1 segunda</h1>
</BODY>
</HTML>
199
FUOC • XP04/90791/00021 Software libre
<HTML>
<HEAD>
<TITLE>Título del documento</TITLE>
</HEAD>
<BODY>
<FORM ACTION=“programa.php” METHOD=GET>
Entre su nombre: <INPUT TYPE=TEXT NAME=“nombre”>
<INPUT TYPE=submit>
</FORM>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Título del documento</TITLE>
</HEAD>
<BODY>
<?php
echo “Hola “.$REQUEST[“nombre”];
?>
</BODY>
</HTML>
200
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
<?php
$cadena1 = “hola”;
$cadena2 = “pera,manzana,fresa”;
$partes = explode(“,”,$cadena2);
//genera el array $partes con $partes[0]=“pera”,
//$partes[1]=“manzana”; y $partes[2]=“fresa”;
$cadena3 = str_replace(“,”,”;”,$otracadena);
//$cadena3 contiene: pera-manzana-fresa
ANOTACIONES
201
FUOC • XP04/90791/00021 Software libre
<?php
$fichero = file(“entrada.txt”);
$numlin = count($fichero);
<?php
$recurso = fopen (“entrada.txt”, “r”);
$recurso = fopen (“salida.gif”, “wb”);
$recurso = fopen (“http://www.uoc.edu/”, “r”);
$recurso = fopen (
“ftp://usuario:[email protected]/salida.txt”, “w”);
?>
ANOTACIONES
Ahí podemos ver cómo abrimos un fichero para lectura (‘‘r’’), para
escritura binaria (‘‘wb’’), una página web para leerla como si se tra-
tara de un fichero y un fichero vía FTP para escribirlo, respectivamente.
202
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
<?php
$conexion=mysql_connect($servidor,$usuario,$password);
if(!$conexion).
{
exit();
}
if(!(mysql_select_db($basedatos,$conexion)))
{
exit();
}
$consulta=mysql_query(
“select nombre, telefono from agenda order by nombre”,
$conexion);
while($fila = mysql_fetch_array($consulta))
{
$nombre = $fila[“nombre”];
$teléfono = $fila[“telefono”];
ANOTACIONES
203
FUOC • XP04/90791/00021 Software libre
<?php
204
Desarrollo de aplicaciones web
FUOC • XP04/90791/00021
$resultado = pg_query($conexión,
“select nombre, telefono from agenda order by nombre”);
while($fila = pg_fetch_array($result))
{
$nombre = $fila[“nombre”];
$telefono = $fila[“telefono”];
echo “$nombre: $telefono\n<br>“;
}
pg_close($dbconn);
?>
Uno de los puntos fuertes y una de las claves del éxito de PHP como
lenguaje de programación de aplicaciones web reside en la gran can-
tidad de librerías, módulos, etc., que se han desarrollado para él. PHP
ANOTACIONES
• Control de sesiones.
205
FUOC • XP04/90791/00021 Software libre
• Plantillas HTML.
• Carritos de compra.
• Manejo de cookies.
• Transferencia de ficheros.
• Expresiones regulares.
Por eso, en caso de desear usar PHP para desarrollar algún proyecto,
resulta altamente recomendable visitar la página web del proyecto
(http://www.php.net), ya que es muy posible que nos ofrezca un sur-
tido de herramientas que nos faciliten grandemente el trabajo. Dis-
ponemos, además, de PEAR, un repositorio de PHP que nos
proporcionará la mayor parte de las herramientas que podamos lle-
gar a necesitar.
206