Anda di halaman 1dari 176

Introduccin al lenguaje PHP

Instalacin y Conguracin del servidor


Conceptos bsicos
Programacin avanzada en PHP
PHP
PHP Hypertext Pre-processor
Antonio LaTorre <atorre@.upm.es>
Jos Mara Pea <jmpena@.upm.es>
Programacin Web en Servidor
2006/2007
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Contenidos
1 Introduccin al lenguaje PHP
2 Instalacin y Conguracin del servidor
3 Conceptos bsicos
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
4 Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
1 Introduccin al lenguaje PHP
2 Instalacin y Conguracin del servidor
3 Conceptos bsicos
4 Programacin avanzada en PHP
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Ejecucin de Programas Web
Pginas dinmicas en cliente
El cliente recibe un pequeo programa que interacciona
con el navegador del usuario.
til pero tiene seria limitaciones.
Tecnologas como son JavaScripts
Pginas dinmicas de servidor
El cliente recibe el resultado de un programa que ejecuta
el servidor web.
Menos interactivo pero ms potente.
Soluciones bsicas: CGI.
Soluciones ms potentes: ASP, JSP, PHP.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Ejecucin de Programas Web
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
PHP
PHP es...
Las siglas de PHP Hypertext Pre-processor
Un lenguaje interpretado diseado expresamente para
crear pginas dinmicas en el servidor.
Una de las alternativas tecnolgicas ms usadas en el
desarrollo de aplicaciones en servidor.
Un estndar de cdigo libre.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
PHP
Caractersticas de PHP
El cdigo PHP lo procesa el servidor y el cliente no lo ve
(ve su resultado).
Permite el acceso sencillo a muchas bases de datos.
Tiene muchas bibliotecas de utilidades y muchos recursos
en la web.
Permite intercalar etiquetas PHP y HTML.
Se puede usar para programar otras cosas.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Historia de PHP
Versiones de PHP
Versin original de
Rasmus Lerdorf (1994).
PHP 3 (1998).
Zend Engine (1999).
PHP 4 (2000)

.
PHP 5 (2004)

.
PHP 6 (anunciado en
breve).
Relevancia de PHP
TIOBE Programming
Community Index lo
indexa como 5
o
lenguaje de
programacin ms
usado.
El primero entre los
lenguajes orientados
nicamente a web.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Herramientas para PHP
Recursos
Existen numerosos recursos PHP disponibles.
Editores Especcos
PHP designer
http://www.php-editors.com( )
Depuradores
APD
Xdebug
Extensiones y bibliotecas
http://pear.php.net( )
http://www.dotgeek.org( )
http://pecl.php.net( )
Ayuda
http://www.php.net( )
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
1 Introduccin al lenguaje PHP
2 Instalacin y Conguracin del servidor
3 Conceptos bsicos
4 Programacin avanzada en PHP
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin I
Usaremos EasyPHP 1.8
Paquete integrado con:
Servidor Web Apache 1.3.33
PHP 4.3.10
Servidor de BBDD MySQL 4.1.9
PHPMyAdmin 2.6.1
Descargable desde: http://www.easyphp.org( )
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin II
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin III
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin IV
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin V
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin VI
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin VII
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin VIII
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin IX
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin X
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin XI
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Instalacin XII
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Conguracin
La conguracin bsica se puede realizar desde la interfaz
web.
Otras modicaciones se pueden hacer modicando
directamente los cheros correspondientes:
Plantillas en el subdirectorio conf_les.
EasyPHP actualiza los cheros de conguracin efectivos
automticamente.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Ejemplo PHP
Hola Mundo
<BODY>
<B>Esto es HTML</B><BR>
<?php
echo "<B>Hola Mundo</B><BR>\n";
echo "Hoy es: ";
echo date("d/m/Y");
echo ", que disfrutes del da!\n";
?>
</BODY>
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Ejemplo PHP
Instalacin en el servidor
El chero debe instalarse en la
carpeta www de la instalacin.
Para ver su ejecucin se debe
consultar con el navegador la
direccin:
http://localhost/hola-mundo.php( )
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Ejemplo PHP
Hola Mundo (lo que ve el cliente)
<BODY>
<B>Esto es HTML</B><BR>
<B>Hola Mundo</B><BR>
Hoy es: 19/01/2007, qu disfrutes del da!
</BODY>
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
1 Introduccin al lenguaje PHP
2 Instalacin y Conguracin del servidor
3 Conceptos bsicos
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
4 Programacin avanzada en PHP
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Comentarios
Comentarios en PHP
Existen tres tipos de comentarios.
Comentar el cdigo es muy importantes para su
legibilidad.
Comentarios
<?php
// Comienzo del saludo
echo "Hola, qu tal?";
/
*
Los comentarios de ms de una
lnea se introducen as
*
/
# Despedidad
echo "Adios";
?>
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Variables I
Variables en PHP
Las variables permiten almacenar valores a lo largo del
programa PHP.
Todas las variables en PHP comienzan por un dolar ($).
La asignacin de una variable (para darle un valor es):
$variable=valor.
Una vez asignado un valor la variable est declarada y se
puede usar.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Variables II
Variables
$hoy="Viernes";
echo "Al fin es $hoy";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Variables III
Tipos de las variables en PHP
Los tipos simples que se pueden asignar a una variable
son:
Cadenas de caracteres (eg. "Hola mam")
Nmeros enteros (eg. 23, -12, 0)
Nmeros reales (eg. 23.2, 0.0012, 5.5e-2)
booleanos (slo true y false)
A una variable se le pueden asignar valores de tipos
diferentes.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Variables IV
Variables
$enanitos="siete";
$enanitos=7;
echo "Hay $enanitos personas pequeas";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Variables V
Escritura de las variables en PHP
En los nombres de variables no puede haber espacios.
Las variables con maysculas y minsculas se consideran
diferentes entre s.
Se recomienda usar nombres de variables que sean
signicativos (que digan qu contiene esa variable).
Variables
$ovejas ="Churras";
$Ovejas ="Merinas";
$consejo_de_la_abuela="No hay que mezclar ";
echo "Consejo: $consejo_de_la_abuela";
echo "$ovejas con $Ovejas";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Variables VI
Cadenas de caracteres
Se pueden usar tanto comillas dobles (" ") como simples
( ) para delimitarlas:
Las comillas dobles expanden las variables.
Las comillas simple no lo hacen.
Variables
$nombre="Elena Nito del Bosque";
echo "Ni nombre es $nombre";
echo es el valor de la variable $nombre;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Variables VII
Imprimir valores
Para imprimir un salto de linea:
Incluir "\n": Implica un salto en cdigo generado (facilita la
lectura pero no lo ve el navegador.
Incluir "<BR>": Implica un salto en el HTML que se
visualiza (lo vera el navegador).
Saltos de lnea
echo "Si slo pongo \\n no se separa la lnea...\n";
echo "Pero si pongo BR<BR>Las lneas se separan";
echo "Mejor los dos <BR>\n";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Ejercicio
Cuenta del restaurante
Denir variables para:
plato.
precio.
cantidad.
Imprimir esas variables en una lnea.
Redenir las variables.
Volver a imprimir la lnea.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Ejercicio
Cuenta del restaurante
$plato="Pollo al Chilindrn";
$cantidad=2;
$precio=6.75;
echo "$plato , $cantidad a $precio euros\n<BR>";
$plato="Bonito en Pepitoria";
$cantidad=1;
$precio=7.25;
echo "$plato , $cantidad a $precio euros\n<BR>";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores I
Operadores aritmticos
Existen los siguientes operadores suma(+), resta (-),
divisin (/), multiplicacin (*) y mdulo ( %).
Para realizar operaciones entre variables se pueden
realizar conversiones de tipos.
Para ello se usa el tipo numrico ms general que puede
albergar el resultado.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores II
Operadores aritmticos
$a="1"; $b=2; $c=3;
$d=1.2 + $a; // Valdr 2.2 (nmero real)
$e=$c / $b; // Valdr 1.5 (nmero real)
$f="3 peras" + "4 manzanas"; // Valdr 7 (entero)
// Quien dijo que no se podan sumar peras y manzanas!
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores III
Operadores de cadenas
Entre las cadenas existe un operador de concatenacin, el
punto (.).
Se puede usar con enteros, concatenndolos a una
cadena.
Operadores de cadena
$calle="C/ Bho Bizco";
$numero=23;
$direccion=$calle . ", " . $numero;
echo "Direccin: " . $direccion;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores IV
Operadores con asignacin
Todos los operadores se pueden combinar con una
asignacin.
Se declara con el operador y el smbolo igual (=) juntos.
Ejemplo $a += 2.
Son iguales a tomar el valor de la izquierda, operarlo y
volver a asignarlo.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores V
Operadores con asignacin
$cnt = 0;
$cnt += 1; // Equivale a $cnt = $cnt + 1
$cnt
*
= $b/3; // Equivale a $cnt = $cnt 7 $b/3
$msg = "Hola";
$msg .= " mundo";// Equivale a $mgs = $msg . " mundo"
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores VI
Operadores de pre-/post-incremento
Los operadores de incremento (++) y de decremento ()
se pueden aplicar sobre una variable para sumar (o restar)
una unidad.
Sin embargo estos operadores se pueden colocar delante
(pre-) o detrs de la misma (post-).
Slo afecta a si dicha variable se va a usar en otra
expresin.
En esos casos indica si se actualiza su valor antes o
despus de usarla en la expresin.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores VII
Operadores de pre-/post-incremento
$a = 2;
$b = 2
*
$a++; // $a=3 y $b=4
$a = 2;
$b = 2
*
++$a; // $a=3 y $b=6
$a = 2;
$b = 2
*
$a--; // $a=1 y $b=4
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Ejercicio
Cuenta del restaurante
Denir dos contadores:
raciones.
total.
Inicializar estas variables.
Actualizar los valores de las mismas por cada plato.
Imprimirlas.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Ejercicio
Cuenta del restaurante
$raciones=0;
$total =0.0;
// Aqui se declarara un plato (como antes)
$raciones += $cantidad;
$total += $cantidad
*
$precio;
// dem para el otro plato
echo "$raciones raciones\n<BR>";
echo "Total $total euros\n<BR>";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Referencias I
Referencias entre variables
Se usa el smbolo (&) delante de una variable y como
parte derecha de una expresin.
Indica que la variable a la izquierda es una referencia a la
otra.
En la prctica: Son dos nombres para la misma variable
(mismo valor).
Cuando se modica una se modica la otra.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Referencias II
Referencias entre variables
$una = 315;
$otra = &$una;// $una=315 y $otra=315;
$otra += 2; // $una=317 y $otra=317;
$una -= 100; // $una=217 y $otra=217;
$mal = &34; // Da un error, no es una variable
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Tipos I
Asignacin explcita de tipos
Como las variables pueden cambiar de tipo (entero, real,
cadena, . . . ) de forma dinmica.
Existen funciones para consultar su tipo:
is_int(): Indica si es entero.
is_float(): Indica si es real.
is_string(): Indica si es una cadena.
gettype(): Devuelve una cadena con el tipo de la
variable.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Tipos II
Asignacin explcita de tipos
$numero = 12;
gettype($numero); // Devuelve "integer"
is_int($numero); // Devuelve true
is_float($numero);// Devuelve false
$numero += 1.1;
is_int($numero); // Devuelve flase
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Tipos III
Asignacin explcita de tipos
Aunque el tipo de las variables se modica de forma
dinmica.
Existe un mecanismo (llamado casting) para forzar esta
conversin.
Si delante de una expresin se indica un descriptor de
tipo:
(string), (boolean), (int), (oat)
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Tipos IV
Asignacin explcita de tipos
$numero = 18;
$cadena = (string) $numero; // Valdra "18"
$valor = (int) ($numero/10);// Valdra 1
echo $valor;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Variables
Denicin de variables
Una variable se dene la primera vez que se declara.
Sin embargo, a lo largo de la ejecucin se puede
manipular su denicin.
Existen dos funciones para hacerlo:
unset(): Anula la denicin de una variable (la destruye).
isset(): Devuelve true si la variable est denida.
Denicin de variables
$mensaje="El sentido de la vida...";
isset($mensaje); // Devuelve true
unset($mensaje); // Anula la definicin
isset($mensaje); // Devuelve false
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Constantes
Denicin de constantes
Los valores que no van a cambiar a lo largo de la ejecucin
del programa se pueden almacenar en constantes.
El uso de una constante es idntico al de una variable (sin
el $).
Se declara la cadena que identica a la constante.
Denicin de constantes
define ("PI", 3.141592);
$radio=1.75;
$area=PI
*
$radio
*
$radio;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Tipos de estructuras de Control I
Tipos de estructuras de control
Se encargan del control del ujo de ejecucin del
programa.
La gran mayora estn heredadas de C, C++ o Java.
El esquema general de las estructuras de control consiste
en la evaluacin de una condicin (booleana) y
dependiendo de ello seleccionar entre diferentes
alternativas.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Tipos de estructuras de Control II
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores de condicin I
Operadores de comparacin
Las condiciones viene indicadas por expresiones lgicas,
variables booleanas o expresiones:
Comparacin: <, >, <=, >=.
Aplicables tanto a valores numricos.
Tambin a cadenas de caracteres (comparacin alfabtica).
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores de condicin II
Operadores de comparacin
$a = 3;
$a < 5; // Devuelve true
$a >= 1.12; // Devuelve true
$b = "Aaron";
$c = "Abad";
$b > $c; // Devuelve false
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores de condicin III
Operadores de equivalencia
Existen dos tipos de comparadores de equivalencia:
Igualdad/Diferencia: ==, ! =. Hace conversin de tipos.
Equivalencia/Inequivalencia: ===, ! ==. No hace
conversin de tipos.
Operadores de equivalencia
$a = 5;
$a == "5"; // Devuelve true
$a != 5.0; // Devuelve false
$a === "5"; // Devuelve false
$a !== 5; // Devuelve false
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Operadores lgicos
Operadores lgicos
Dos o ms expresiones lgicas se pueden combinar por
medio de:
"Y"lgico: &&, and.
.
O
"lgico: ||, or.
"XOR"lgico: xor.
Negacin lgica: !.
Operadores lgicos
4 < 3.0 && "adios" < "hola"; // Devuelve false
34 >= "8" || 3 === "tres"; // Devuelve true
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control I
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control II
if-then-else
if($a%2 == 0)
echo "Nmero par";
else
{
echo "Nmero impar";
$a++;
echo " $a es par";
}
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control III
elseif
Las estructuras de control if se pueden enlazar.
Permiten evaluar condiciones de forma excluyente.
elseif
if($a<0)
echo "negativo";
elseif($a<10)
echo "entre 0 y 10";
elseif($a<100)
echo "entre 10 y 100";
elseif($a<1000)
echo "entre 100 y 1000";
else
echo "un montn";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control IV
switch
Es similar al caso anterior pero slo vale para valores de
una misma variable.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control V
switch
switch($pais)
{
case "Espaa":
echo "espaol";
break;
case "Italia":
echo "italiano";
break;
default:
echo "otra nacionalidad";
}
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control VI
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control VII
while
$header=1;
while($header<4)
{
echo "<H$header>Cabecera $header</H$header><BR>\n";
$header++;
}
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control VIII
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control IX
do-while
$indice=1;
do
{
echo "Indice $indice<BR>\n";
$indice++;
}
while($indice<4);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras de Control X
for(init;cond;inc)
for($header=1;$header<4;$header++)
echo "<H$header>Cabecera $header</H$header><BR>\n";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras Compuestas I
Estructuras de datos compuestas
Lo visto hasta el momento son tipos de datos simples.
Las estructuras de datos compuestas, son tipos datos que
contienen varios elementos de diferentes tipos (simples o
compuestos) estructurados.
PHP dispone de un tipo de dato compuesto muy potente el
array.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Estructuras Compuestas II
Array
Esta estructura es la anloga a 3 o 4 tipos compuestos en
otros lenguajes.
Hay varias formas de crear un array, las ms sencillas son:
array(): Crea un array vaco.
array(elementos...): Crea un array y lo inicializa con
tantos elementos como se le pasen.
Los arrays tambin se pueden inicializar elemento a
elemento.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays I
Inicializacin de arrays
$a = array(); // Array vaco
$b = array("Cero", "Uno", "Dos");
$b[3]="Tres";
$c[0]=true;
$c[1]=false;
$c[2]=false;
$c[3]=true;
// Imprime "Cero Uno Dos Tres"
echo $b[0]." ".$b[1]." ".$b[2]." ".$b[3];
echo $b; // Ojo: imprime "Array"
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays II
Tipos de los datos de un array
Los valores de los elementos de un array pueden ser de
distintos tipos.
Un array puede ser elemento de otro array (una matriz).
Tipos de los datos de un array
$val[0]="doce";
$val[1]=34;
$val[2]=0.00211;
$val[3]=true;
$val[4]=array(10,20,30);
echo "{$val[4][1]}";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays III
Indices de un array
Un elemento de un array se puede eliminar.
Esto implica que los arrays no son necesariamente
consecutivos.
Indices de un array
$foo=array(11,22,33,44);
unset($foo[2]); // 33 desaparece
// Pero $foo[3] sigue siendo 44
$baa[0]="Adios";
$baa[12]="mundo";
$baa[30]="cruel";
$baa[991]="!";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays IV
Indices de un array
Para insertar un elemento al nal de un array se puede
usar "[]".
Esto asocia al elemento el siguiente valor de la clave
numrica ms alta del array.
Indices de un array
$baa[991]="!";
$baa[]="."; // Equivale a $baa[992];
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays V
Arrays asociativos
Las claves (indices) de los arrays tambin pueden ser
cadenas de caracteres.
Un array puede tener variables numricas y cadenas a la
vez.
Arrays asociativos
$persona["Nombre"] ="Pepe";
$persona["Apellido"]="Potamo";
$persona["Edad"] =70;
$persona[1] =true;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays VI
Inicializando arrays asociativos
Un array asociativo se puede inicializar inidcando claves y
valores a la vez.
Inicializando arrays asociativos
$v=array("a"=>1, "b"=>2);
$data=array("Edad" => 25,
"Premio" => true,
"Importe"=> 239.50);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays VII
Matrices
Una matriz no es ms que un array cuyos elementos son
arrays.
Como no hace falta declararlas se pueden inicializar sobre
la marcha.
Matrices
$matriz=array();
$matriz[0]=array("A","B");
$matriz[1]=array("C","D");
$cnt=0;
for($i=0;$i<5;$i++)
for($j=0;$j<5;$j++)
$M[$i][$j]=$cnt++;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays VIII
Imprimiendo un array
Al hacer un echo sobre una variable array no se obtiene
su contenido.
La funcin print_r() permite imprimir un array.
El resultado est formateado con "\n"no con < BR >.
Imprimiendo un array
$m=array("A"=>11, "B"=>33);
echo $m; // Sale "Array"
echo "<pre>";
print_r($m);
echo "</pre>";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays IX
Iteracin sobre arrays
count() muestra el nmero de elementos del array.
Recorrer con un for desde 0 hasta ese valor puede
causar problemas.
Hay que recordar que los elementos pueden no ser
consecutivos.
Iteracin sobre arrays
$num[0]=100;
$num[3]=200;
for($i=0;$i<count($num);$i++) // 0 y 1
echo $num[$i]; // No saldr $num[3]
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays X
Iteracin sobre arrays
Existe un bucle especial para iterar sobre los arrays.
foreach recorre uno a uno todos los elementos del array.
Este bucle es independiente de las claves.
Iteracin sobre arrays
$num[0]=100;
$num[3]=200;
foreach($num as $n) // $n es el elemento
echo $n; // 100, 200
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays XI
Iteracin sobre arrays
Existe otra forma de iterar sobre arrays.
Para ello se usan las funciones:
reset(): Se pone al comienzo del array.
end(): Se pone al nal del array.
current(): Te da el elemento actual.
next(): Avanza y te da el elemento siguiente.
prev(): Retrocede y te da el elemento anterior.
Si no hay elemento estas funciones devuelven false.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays XII
Iteracin sobre arrays
Existe otra funcin, each(), anloga a next().
Esta funcin devuelve un par (clave, elemento).
Su valor hay que recogerlo con un list.
Iteracin sobre arrays
$persona["Nombre"] ="Pepe";
$persona["Apellido"]="Potamo";
$persona["Edad"] =70;
reset($persona); // Comenzamos
while(list($clave,$val)=each($persona))
echo "$clave : $val<BR>\n";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays XIII
Funciones sobre arrays
Un array puede valer para implementar pilas o colas.
Las funciones usadas seran:
array_push(): Aade al nal (como []).
array_pop(): Elimina el ltimo elemento y da su valor.
array_shift(): Elimina el primer elemento
(reordenando el resto).
array_unshift(): Aade un elemento al principio y
desplaza (reordenando) el resto.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays XIV
Pilas y colas
$jobs=array("cargar","operar","guardar");
array_unshift($jobs,"preparar");
array_push($jobs,"probar","apagar");
while($j=array_shift($jobs))
echo "Ejecutando: $j<BR>\n";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays XV
Expansin de arrays
Existe dos funciones para convertir cadenas de caracteres
en arrays (y viceversa):
explode(): Parte una cadena en subcadenas y las mete
en un array.
implode(): Concatena todos los elementos de un array
en una misma cadena.
Estas funciones toman como argumento un separador.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays XVI
Expansin arrays
$texto="En un lugar de la Mancha";
// Lista de palabras
$palabras=explode(" ", $texto);
// Nuevo texto
$texto2=implode("_", $palabras);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays XVII
Ordenacin de arrays
Dos arrays no son equivalentes (===), pero s iguales (==),
si el orden de sus elementos no es el mismo.
Para ordenar arrays se usan las siguientes funciones:
sort(): Mantiene el orden de las claves y ordena los
elementos.
asort(): Ordena los elementos pero cada cual conserva
su clave.
ksort(): Ordena por clave, pero cada cual mantiene su
elemento asociado.
La ordenacin por defecto es ascendente.
Existen las funciones anlogas para ordenacin inversa:
rsort(), arsort() y krsort().
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Arrays XVIII
Ordenacin de arrays
$alumnos=array(
210 => "Dolores Fuertes",
115 => "Walter OFilia",
523 => "Armando Guerra",
410 => "Julian Dopetas");
// Por clave
ksort($alumnos);
// Por nombre
asort($alumnos);
// Rompe asociacin
sort($alumnos);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Ejercicio
Las quinielas
Denir una estructura de datos que almacene un partido:
Dos equipos.
El marcador
Meter en un array varios elementos de esta estructura.
Denir otra estructura que muestre las apuestas de una
quiniela:
El partido.
Si se ha apostado 1, X 2 (o mltiples).
Programar una funcin que calcule el nmero de aciertos
de una quiniela dados unos resultados.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones en PHP I
Organizacin del cdigo
Existen dos alternativas a la hora de organizar el cdigo
para su posible reutilizacin:
Deniendo funciones que se usen dentro del mismo chero
PHP.
Deniendo esas mismas funciones en otro chero aparte
comn a varios cheros PHP.
El ltimo caso se gestiona mediante las llamadas:
include(): Si el chero no existe da un aviso.
require(): Si el chero no existe da un error.
La inclusin de cheros sera anloga a copiar dicho
chero donde aparezca la llamada de inclusin.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones en PHP II
Funciones
Para declarar una funcin se la asocia un nombre que es
el que se usar para invocarla.
Las funciones se declaran por medio de la construccin
function.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones I
Denicin de una funcin
// Definimos una funcin
function saludo()
{
echo "Hola mundo!";
}
// Incluimos otro fichero PHP
include("func_aux.php");
// Invocamos la funcin
saludo();
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones II
Argumentos de una funcin
Los argumentos de una funcin son variables incluidas en
su declaracin.
Dichas variables se usan en el cuerpo de la funcin.
Al invocarla se instancian dichas variables.
Argumentos de una funcin
function saludando($quien)
{
echo "Hola $quien";
}
saludando("Manolo");
saludando(23);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones III
Valor de retorno
Permite usar la funcin como parte de una expresin.
Se devuelve por medio de return.
Tras esa sentencia la funcin naliza.
Valor de retorno
function por_dos($num)
{
return 2
*
$num;
}
por_dos(33);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones IV
Argumentos predenidos
Son argumentos que tienen asociado un valor por defecto.
Si al invocarse no se indica dicho argumento se toma para
l el valor por defecto.
Argumentos predenidos
function despedida($quien="a todos")
{
echo "Adios $quien";
}
despedida("Manolo");
despedida();
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones V
Argumentos variables
Son funciones con un nmero indeterminado de
argumentos.
func_num_args(): Indica el nmero de argumentos.
func_get_args(): Mete los argumentos en un array.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones VI
Argumentos variables
function suma()
{
if(func_num_args()<1)
return "Al menos un argumento";
$args=func_get_args();
$cnt=0;
foreach($args as $n)
$cnt+=$n;
return $cnt;
}
suma(10,21,32,43);
suma(1,0.23,11);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones VII
Referencias
Son argumentos que pueden modicarse dentro de la
funcin.
El argumento no es una copia del valor sino una referencia
a la misma variable.
Referencias
function incrementa(& $num)
{
$num++;
}
$x=2;
incrementa($x);
echo $x;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones VIII
mbito de las variables
Las variables usadas dentro de una funcin son slo
visibles dentro de la misma.
Eso indica que mantienen el valor y la declaracin
mientras estn dentro de la funcin.
Al terminar la funcin la variable pierde su denicin.
Esto tambin es aplicable a los argumentos.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones IX
Variables globales
Hay dos formas de declarar variables globales que sean
visibles fuera de la funcin y que no pierdan su denicin
al terminar la funcin:
Declarar la variable con global.
Accediendo al array $GLOBALS.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Funciones X
Variables globales
function incrementa_a()
{
global $a;
$a++;
}
function decrementa_a()
{
$GLOBALS["a"]++;
}
$a=10;
incrementa_a();
decrementa_a();
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Ejercicio I
Juego del ahorcado
El programa dispone de un chero con varias palabas (de
5 a 8 letras).
Elige una de las palabras al azar.
Muestra:
Un campo de texto para introducir las letras.
Las letras que se han acertado y las posiciones que estn
ocultas
Las letras dichas y no acertadas.
Un monigote que muestra el estado de los fallos del
usuario (imgenes).
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Gestin de variables
Estructuras de Control
Estructuras Compuestas: Arrays
Funciones Predenidas y de Usuario
Ejercicio II
Detector de palndromos
El programa debe ser capaz de detectar si una frase
introducida es o no un palndromo.
Debe ignorar espacios, acentos y signos de puntuacin.
Muestra:
Un campo de texto para introducir la frase letras.
Un botn para validar la frase.
Algunos palndromos:
Anita, la gorda lagartona, no traga la droga latina.
Dbale arroz a la zorra el abad.
Acaso hubo bhos ac?
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
1 Introduccin al lenguaje PHP
2 Instalacin y Conguracin del servidor
3 Conceptos bsicos
4 Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Procesamiento de Formularios I
Dos mecanismos para enviar informacin mediante
formularios
GET
POST
Las variables son parseadas automticamente por el
servidor
La informacin puede ser accedida de varias maneras:
Por medio de variables superglobales: $_GET, $_POST,
$_REQUEST, etc.
Directamente como variables PHP con el mismo nombre
que los campos formulario
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Procesamiento de Formularios II
Mtodo GET
$patron = $_GET[patron]; /
*
Forma recomendada
*
/
$patron2 = $patron; /
*
Slo si
register_globals es true
*
/
$patron3 = $HTTP_GET_VARS[patron]; /
*
En desuso
*
/
$patron4 = $_REQUEST[patron]; /
*
Otra opcin
*
/
Mtodo POST
$texto = $_POST[texto]; /
*
Forma recomendada
*
/
$texto2 = $texto; /
*
Slo si
register_globals es true
*
/
$texto3 = $HTTP_POST_VARS[texto]; /
*
En desuso
*
/
$texto4 = $_REQUEST[texto]; /
*
Otra opcin
*
/
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Envo de archivos al servidor I
El formulario debe tener un tipo de codicacin
multipart/form-data
La informacin del archivo se guarda en la variable
superglobal $_FILES
$_FILES es un array asociativo que contiene:
name: nombre original del archivo
size: tamao en bytes
type: tipo MIME del archivo, si el navegador lo proporciona
tmp_name: nombre temporal de la copia del archivo en el
servidor
error: cdigo del error sucedido, si procede
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Envo de archivos al servidor II
Ejemplo de Formulario
<FORM ENCTYPE="multipart/form-data" METHOD="POST">
<H2>Escoja el archivo que desea enviar:</H2>
<INPUT NAME="fich" TYPE="file"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Envo de archivos al servidor III
Procesamiento de los datos del archivo
echo "Los datos relativos al archivo suministrado
son:<BR>";
echo "Nombre original: ".$fich[name]."<BR>";
echo "Tipo de archivo: ".$fich[type]."<BR>";
echo "Tamao del fich: ".$fich[size]."<BR>";
echo "Nombre temporal: ".$fich[tmp_name]."<BR>";
if (!empty($fich[error]))
echo "Error ocurrido: ".$fich[error]."<BR>";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funcionamiento bsico y especicacin I
(Breve) Informacin de estado almacenada por el
navegador del cliente
Estado vlido nicamente para un conjunto de URLs
(dominio)
Esta informacin es enviada por el navegador en
posteriores visitas al mismo servidor
Algunos ejemplos de aplicacin:
Carritos de la compra en tiendas virtuales
Identicacin de usuarios
Almacenamiento de preferencias de usuario para la
visualizacin de una pgina web (por ejemplo Google)
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funcionamiento bsico y especicacin II
Deben ser enviadas antes de que el script produzca
ninguna otra salida
El formato de una cookie es:
name: nombre de la cookie
value: valor de la cookie
expire: hora de expiracin de la cookie (nmero de
segundos desde el 1 de enero de 1970
path: ruta en el servidor en el que estar disponible la
cookie
domain: dominio en el que la cookie estar disponible
secure: decide si la cookie ha de ser enviada mediante
conexin segura
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Uso de cookies en PHP
Sintaxis de la funcin setcookie
setcookie (name,value,expire,path,domain,secure);
Ejemplo de manejo de cookie
<?
$contador = $_COOKIE[contador];
$contador++;
setcookie ("contador", $contador, time() + 60);
?>
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ventajas e Incovenientes
Ventajas:
Mecanismo fcil de implementar
Facilitan la navegacin del usuario
Inconvenientes
Puede convertirse en un mecanismo muy pesado
(sobrecarga de informacin enviada)
No siempre estn habilitadas (el navegador del usuario
puede bloquearlas)
La informacin es fcilmente alterable
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Introduccin
Alternativa a las Cookies para mantener informacin de
estado
Diferencia
La informacin es almacenada en el servidor
Necesita de un identicador de sesin (MD5 de un nmero
aleatorio)
Enviar el identicador en una Cookie
Enviar el identicador en cada query (a continuacin de la
URL)
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Sesiones en PHP
Existen tres funciones bsicas para el manejo de sesiones
en PHP:
session_start ()
session_register (variable)
session_destroy ()
Forma de acceder a las variables:
$_SESSION [variable]
$variable /
*
Si register_globals est a ON
*
/
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo I
Abrimos la sesin y registramos las variables
<?
session_start();
session_register(intentos);
session_register(secreto);
?>
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo II
Presentamos el Formulario
<FORM METHOD="POST">
Introduzca un nmero entero entre 0 y 9999:<BR>
Nmero: <INPUT NAME="numero" TYPE="text">
<INPUT NAME="envio" TYPE="submit" VALUE="Probar">
<INPUT NAME="reinicio" TYPE="submit" VALUE="Reset">
</FORM>
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo III
Procesamos la informacin
if (empty ($secreto) || $_REQUEST[envio] == "Reiniciar") {
echo "Intente adivinar el nmero secreto.<BR><BR>";
$secreto = rand (0,9999);
$intentos = 0;
} else if (empty ($numero)) {
echo "Intente adivinar el nmero secreto.<BR><BR>";
} else if ($secreto < $numero) {
$intentos++;
echo "El nmero secreto es menor que " . $numero . "<BR>";
echo "Lleva usted " . $intentos . " intentos!<BR>";
} else if ($secreto > $numero) {
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo IV
Destruimos la sesin
} else {
echo "<BR>";
echo "ENHORABUENA, el nmero secreto era " . $numero .
"<BR>";
echo "<BR>";
session_destroy ();
exit ();
}
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Otras consideraciones
Si PHP fue compilado con la opcin -enable-trans-id el
identicador de sesin se aade automticamente a cada
enlace
Para poder usar las variables de sesin hay que llamar a la
funcin session_start() al comienzo de cada script
Otras funciones de inters:
session_isregistered ()
session_unregister (variable)
session_unset ()
session_id ()
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejercicio
Calendario de este mes
Obtener:
El da del mes actual.
El da de la semana actual.
El nombre del mes.
Tomando el da del mes y la semana calcular en qu da
cay el da 1 del mes.
Imprimir una tabla con el calendario.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros I
Uso de cheros
Una de las alternativas para mantener informacin
persistente de las operaciones del usuario es la utilizacin
de cheros.
En la gran mayora de los sistemas hay que considerar
adems los aspectos de propiedad y seguridad de los
cheros.
Hay que tener en cuenta que el proceso que ejecuta el
servidor Web debe poder realizar las operaciones
solicitadas sobre los cheros.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros II
Gestin de cheros
Hay dos formas de manipular cheros:
Por medio de las funciones heredadas de C/UNIX.
El interfaz de funciones propias de PHP.
Las primeras, no obstantes no se recomiendan, salvo para
operaciones muy particulares.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros III
Manejo bsico
Existen dos funciones que permiten gestionar cheros por
medio de cadenas:
file_get_conents(): Esta funcin carga en una
cadena el contenido del chero.
file_put_conents(): Esta funcin vuelca el contenido
de una cadena en un chero.
Manejo bsico
$cadena="La vida es maravillosa";
file_put_contents("fichero.txt",$cadena);
$leido=file_get_contents("fichero.txt");
echo "He leido: $leido";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros IV
Manejo con arrays
La funcin file() permite cargar un chero en un array.
El array comenzar en la clave 0.
Cada elemento ser una lnea del chero.
El carcter de nal de lnea \n tambin se guardar al nal
de cada elemento.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros V
Manejo con arrays
$poema="A un panal de rica miel\n mil moscas acudieron\n Yo.";
file_put_contents("poema.txt",$poema);
$lineas=file("fichero.txt");
echo $lineas[0]; // A un panal de rica miel\n
echo $lineas[1]; // mil moscas acudieron\n
echo $lineas[2]; // Yo.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros VI
Recorrido de directorios
Para manipular directorios se usan las siguientes
funciones:
opendir(): Devuelve un manejador para empezar a
recorrer un directorio.
readir(): Se le da el manejador de un directorio y te
devuelve el siguiente nombre de chero en dicho directorio.
closedir(): Cierra un directorio abierto.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros VII
Recorrido de directorios
$d=opendir("datos/");
while($f=readdir($d))
echo "Entrada: $f<BR>\n";
closedir($d);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros VIII
Otras funciones tiles
Existen otra serie de funciones asociadas a cheros:
file_exists(): Indica si un nombre de chero que se le
pasa existe.
fopen(): Abre un chero, devolviendo un manejador. El
valor devuelto lo usan otras funciones.
fpassthru(): Se le pasa un manejador de chero y
vuelca su contenido por la salida.
is_dir(), is_file(): Consulta si un nombre de chero
se corresponde con un chero, propiamente dicho o con un
directorio.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros IX
Otras funciones tiles
$fichero="mis_datos.txt";
if(is_file($fichero))
{
$f=fopen($fichero);
fpassthru($f); // Imprime el fichero
}
else if (is_dir($fichero))
echo "Era un directorio mendrugo";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ficheros X
Ficheros remotos
El nombre de un chero se puede sustituir por una URL.
Hay diferentes protocolos de acceso a cheros remotos, lo
ms habitual es usar http://.
Ficheros remotos
// Redirigimos a una pgina de error
$err_page=fopen("http://www.datsi.fi.upm.es/error.html");
fpassthru($err_page); // Imprime el fichero
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejercicio
Juego del ahorcado
El programa dispone de un chero con varias palabas (de
5 a 8 letras).
Elige una de las palabras al azar.
Muestra:
Un campo de texto para introducir las letras.
Las letras que se han acertado y las posiciones que estn
ocultas
Las letras dichas y no acertadas.
Un monigote que muestra el estado de los fallos del
usuario (imgenes).
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Conceptos de Bases de Datos
Base de datos
Conjunto de datos interrelacionados
Almacenados sistemticamente
Gestor de bases de datos
Programa informtico
Almacena los datos de forma eciente
Recupera y accede a los datos rpidamente
SQL Structured Query Language
Lenguaje estndar para consultar una base de datos
Es un estndar ANSI/ISO
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de tabla de bases de datos (Empresas)
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
SQL
Consultando informacin (I)
SELECT columnas FROM tabla
columnas: Lista de columnas a presentar (separadas por
comas). Puede ser un asterisco (
*
) para indicar todas las
columnas.
tabla: Nombre de la tabla.
SELECT
SELECT Nombre, Telefono FROM Empresas;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de SELECT
SELECT Nombre, Telefono FROM Empresas;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de SELECT
SELECT Nombre, Telefono FROM Empresas;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
SQL
Consultando informacin (II)
SELECT columnas FROM tabla WHERE condicin
condicin: Una expresin (comparacin) que afecta a
alguna de las columnas de la tabla.
SELECT
SELECT
*
FROM Empresas WHERE Saldo<0;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de SELECT
SELECT
*
FROM Empresas WHERE Saldo<0;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de SELECT
SELECT
*
FROM Empresas WHERE Saldo<0;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
SQL
Operador LIKE
Comprueba si una cadena de caracteres est contenida en
otra.
Se usa el smbolo% para sustituir a cualquier cosa (comodn).
Ma%: Comienza por Ma.
%no: Termina por no.
Ma%no: Comienza por Ma y termina por no.
%ria%: Contiene la cadena ria (en cualquier sitio).
SELECT
texto LIKE En un % de la Mancha de % acordar%
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de SELECT
SELECT
*
FROM Empresas WHERE Nombre LIKE %os%;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de SELECT
SELECT
*
FROM Empresas WHERE Nombre LIKE %os%;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
SQL
Insercin de Informacin
INSERT INTO tabla VALUES (valores)
tabla: Esta es la tabla donde se van a insertar los valores.
valores: Valores a insertar en cada una de las columnas
de la tabla
INSERT
INSERT INTO Empresas VALUES
(8795, Q&T Asociados, , 917884520, 4590.40);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de INSERT
INSERT INTO Empresas VALUES
(8795, Q&T Asociados, , 917884520, 4590.40);
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
8795 Q&T Asociados 91 7884520 4590.40
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de INSERT
INSERT INTO Empresas VALUES
(8795, Q&T Asociados, , 917884520, 4590.40);
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
8795 Q&T Asociados 91 7884520 4590.40
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
SQL
Modicacin de Informacin
UPDATE tabla SET (valores) WHERE condicin
tabla: Esta es la tabla donde se van a modicar los valores.
valores: Columnas a modicar y valores que van a tomar
(separados por comas).
condicin: Condicin inicial que debe cumplir las las a
modicar.
UPDATE
UPDATE Empresas SET Tipo=Marketing WHERE Codigo=8795;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de UPDATE
UPDATE Empresas SET Tipo=Marketing WHERE Codigo=8795;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
8795 Q&T Asociados Marketing 91 7884520 4590.40
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de UPDATE
UPDATE Empresas SET Tipo=Marketing WHERE Codigo=8795;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
8795 Q&T Asociados Marketing 91 7884520 4590.40
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
SQL
Eliminacin de Informacin
DELETE FROM tabla WHERE condicin
tabla: Esta es la tabla de donde se van a eliminar los
valores.
condicin: Condicin que debe cumplir las las a eliminar.
DELETE
DELETE FROM Empresas WHERE Codigo<8790;
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de DELETE
DELETE FROM Empresas WHERE Codigo<8790;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
8795 Q&T Asociados Marketing 91 7884520 4590.40
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejemplo de DELETE
DELETE FROM Empresas WHERE Codigo<8790;
Cdigo Nombre Tipo Telfono Saldo
8788 Suministros Ruz Electricidad 91 3987872 1288.00
8789 Transportes TSS Transporte 91 5993725 433.00
8790 Segurinsa S.A. Seguridad 923 847002 -120.50
8791 Desarrollos Tyna Diseo 91 4513172 3901.00
8790 Elektronics Electricidad 91 3342244 -233.50
8791 Obras Marcos Albailera 91 7111132 2921.00
8792 Muebles Prados Mobiliario 91 3120072 90.55
8793 Internal Mobiliario 93 4287910 340.00
8794 Trabajos Cruz Fontanera 672 112991 790.55
8795 Q&T Asociados Marketing 91 7884520 4590.40
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejercicio
Consultas a una BBDD
Realizar las siguientes consultas a la BBDD de ejemplo:
Obtener el nombre y el telfono de las empresas que se
dedican a la electricidad.
Obtener el nombre de las empresas madrileas.
Modicar el saldo de las empresas con identicador en el
intervalo [8790, 8793] e incrementarlo en 1000 euros.
Borrar de la BBDD las empresas con saldo negativo.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Acceso a BBDD desde PHP
Aplicaciones cada vez ms grandes que manejan gran
cantidad de datos
Dos alternativas para acceder a una BBDD
ODBC (Open Database Connectivity)
Interfaz estndar para todos los gestores de BBDD
Ms lento que el acceso con funciones nativas
Funciones nativas de un gestor de BBDD especco
Ms eciente que ODBC
Menos transportable a otros gestores de BBDD
En PHP existen 33 funciones para trabajar con MySQL
Slo la mitad se usan habitualmente
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn I
Conexin con una BBDD
int mysql_connect (string host, string username, string
password)
Devuelve el identicador de la conexin
Ejemplo de llamada
$conn = mysql_connect (localhost,
pepe, rufus73);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn II
Conexin permanente con una BBDD
int mysql_pconnect (string host, string username, string
password)
La conexin permanece abierta tras la nalizacin del
script
Puede incrementar notablemente la velocidad del programa
Cambios necesarios en el chero php.ini
mysql.allow_persistent = On
mysql.max_persistent = -1
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn III
Seleccin de una BBDD
int mysql_select_db (string database_name [, int
link_identifier])
El identicador slo se necesita si hay varias conexiones
abiertas
Ejemplo de llamada
$db = mysql_select_db (database_name);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn IV
Consultas a la BBDD
int mysql_query (string query [, int link_identifier])
Devuelve un cursor que apunta a las las que componen
el resultado
Ms adelante veremos las funciones que realmente
obtienen los resultados
Ejemplo de llamada
$result = mysql_query (select
*
from db);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn V
Recuperacin de los datos desde la BBDD
array mysql_fetch_array (int result [, int result_type])
Devuelve un vector asociativo con los datos
Cada resultado aparece dos veces:
Indexado con el nombre de la columna
Indexado con un nmero
Se puede seleccionar el tipo con MYSQL_NUM y
MYSQL_ASSOC
Otro modo de recuperar los resultados
array mysql_fetch_row (int result)
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn VI
Ejemplo de uso
$query = "select
*
from table_name";
$result = mysql_query ($query);
echo "<table>";
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "<tr>";
while (list ($key, $value) = each ($row)) {
echo "<td>" . $value . "</td>";
}
echo"</tr>";
}
echo "</table>";
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn VII
Recuento de las seleccionadas
int mysql_num_rows (int result)
Devuelve el nmero de las seleccionadas por la query
Ejemplo de uso
$query = "select
*
from table_name";
$result = mysql_query ($query);
if (mysql_num_rows($result) == 0) {
echo "Sorry, no results found.";
} else {
//print results
}
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn VIII
Recuento de las insertadas/actualizadas/borradas
int mysql_num_rows (int result)
Devuelve el nmero de las afectadas por una y de
insercin, borrado o actualizacin
Ejemplo de uso
$query = "delete from table_name where unique_id = 1";
$result = mysql_query($query);
if (mysql_affected_rows() == 0) {
echo "no rows removed from the table.";
} else {
echo "You just removed $deleted_rows row/rows.";
}
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn IX
Gestin de errores
int mysql_errno ([int link_identifier])
Devuelve el cdigo de error proporcionado por MySQL
til para reescribir los mensajes de error
string mysql_errno ([int link_identifier])
Devuelve el mensaje de error correspondiente a la ltima
operacin realizada
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn X
Acceso directo a resultados
int mysql_result (int result, int row, [mixed field])
Permite acceder a un valor concreto del conjunto de
resultados
Necesitamos conocer la la y la columna del resultado que
nos interesa
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso ms comn XI
Ejemplo de uso
mysql_connect ("localhost", "username", "password");
mysql_select_db ("test");
$result = mysql_query ("select count(
*
) from users");
echo mysql_result ($result, 0, 0);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso menos comn I
Recuperacin de datos como objetos
Object mysql_fetch_object (int result, [, int
result_type])
Devuelve el primer registro no consumido resultado de la
consulta
Similar a mysql_fetch_array ()
Los campos se acceden como propiedades de un objeto
(operador ->)
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso menos comn II
Liberacin de memoria
int mysql_free_result (int result)
Libera la memoria ocupada por el resultado de la ltima
consulta
No suele ser necesario su uso:
PHP libera la memoria automticamente al nalizar el
script...
...aunque puede ser til si el script hace ms cosas
despus de la consulta
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso menos comn III
Cierre de la conexin a la BBDD
int mysql_close ([int link_identifier])
Cierra la conexin con la BBDD
No suele ser necesario su uso:
La conexin se cierra automticamente al nalizar el script
Slo es necesario si se modican los permisos de la BBDD
durante la ejecucin del script
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso menos comn IV
Posicionamiento del cursor de resultados
int mysql_data_seek (int result, int row_numer)
Posiciona el cursor de resultados en la la proporcionada
como parmetro (0 es la primera posicin)
Puede ser til para realizar un segundo recorrido por los
datos
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso menos comn V
Creacin de una BBDD
int mysql_create_db (string database_name, [int
link_identifier])
Slo puede llamarse tras establecer una conexin con
MySQL
El usuario debe tener permisos para crear la BBDD
Puede ser sustituida por la siguiente consulta:
mysql_query (create database db_name);
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso menos comn VI
Borrado de una BBDD
int mysql_drop_db (string database_name, [int
link_identifier])
Borra una BBDD
No es algo que se suela hacer desde un script PHP
Listado de las BBDD de MySQL
int mysql_list_dbs ([int link_identifier])
Proporciona un listado de las BBDD existentes
Los resultados se obtienen de la forma habitual:
mysql_fetch_array ()
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso menos comn VII
Listado de tablas de una BBDD
int mysql_list_tables (string database, [int
link_identifier])
Permite listar las tablas que contiene una BBDD
Los resultados se obtienen con la funcin
mysql_tablename ()
Ejemplo de uso
$tables = mysql_list_tables ("test");
for ($i = 0; $i < mysql_num_rows ($tables); $i++) {
echo mysql_tablename ($tables, $i), "<br>\n";
}
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Funciones de uso menos comn VIII
Listado de columnas de una tabla de una BBDD
int mysql_list_tables (string database, string table_name,
[int link_identifier])
Anloga a la anterior, pero para obtener los nombres de
las columnas de una tabla
Antonio LaTorre de la Fuente, Jos Mara Pea PHP
Introduccin al lenguaje PHP
Instalacin y Conguracin del servidor
Conceptos bsicos
Programacin avanzada en PHP
Formularios, Sesiones y Cookies
Acceso a cheros
Conceptos de BBDD
Acceso a BBDD
Ejercicio
Consultas a una BBDD
Realizar las siguientes consultas a la BBDD de ejemplo:
Obtener el nombre y el telfono de las empresas que se
dedican a la electricidad.
Obtener el nombre de las empresas madrileas.
Modicar el saldo de las empresas con identicador en el
intervalo [8790, 8793] e incrementarlo en 1000 euros.
Borrar de la BBDD las empresas con saldo negativo.
Antonio LaTorre de la Fuente, Jos Mara Pea PHP

Anda mungkin juga menyukai