Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
PHPPHP Hypertext Pre-processor
Antonio LaTorre <[email protected]>José María Peña <[email protected]>
Programación Web en Servidor
2006/2007
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Contenidos
1 Introducción al lenguaje PHP
2 Instalación y Configuración del servidor
3 Conceptos básicosGestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
4 Programación avanzada en PHPFormularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
1 Introducción al lenguaje PHP
2 Instalación y Configuración del servidor
3 Conceptos básicos
4 Programación avanzada en PHP
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Ejecución de Programas Web
Páginas dinámicas en cliente• El cliente recibe un pequeño programa que interacciona
con el navegador del usuario.• Útil pero tiene seria limitaciones.• Tecnologías como son JavaScripts
Páginas dinámicas de servidor• El cliente recibe el resultado de un programa que ejecuta
el servidor web.• Menos interactivo pero más potente.
• Soluciones básicas: CGI.• Soluciones más potentes: ASP, JSP, PHP.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Ejecución de Programas Web
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
PHP
PHP es...• Las siglas de PHP Hypertext Pre-processor• Un lenguaje interpretado diseñado expresamente para
crear páginas dinámicas en el servidor.• Una de las alternativas tecnológicas más usadas en el
desarrollo de aplicaciones en servidor.• Un estándar de código libre.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
PHP
Características de PHP• El código 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Historia de PHP
Versiones de PHP• Versión 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 loindexa como 5o
lenguaje deprogramación másusado.
• El primero entre loslenguajes orientadosúnicamente a web.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Herramientas para PHP
RecursosExisten numerosos recursos PHP disponibles.
Editores Específicos• 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
1 Introducción al lenguaje PHP
2 Instalación y Configuración del servidor
3 Conceptos básicos
4 Programación avanzada en PHP
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación II
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación III
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación IV
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación V
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación VI
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación VII
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación VIII
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación IX
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación X
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación XI
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Instalación XII
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Configuración
• La configuración básica se puede realizar desde la interfazweb.
• Otras modificaciones se pueden hacer modificandodirectamente los ficheros correspondientes:
• Plantillas en el subdirectorio conf_files.• EasyPHP actualiza los ficheros de configuración efectivos
automáticamente.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Ejemplo PHP
Hola Mundo
<BODY><B>Esto es HTML</B><BR><?phpecho "<B>Hola Mundo</B><BR>\n";echo "Hoy es: ";echo date("d/m/Y");echo ", ¡que disfrutes del día!\n";?></BODY>
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Ejemplo PHP
Instalación en el servidor• El fichero debe instalarse en la
carpeta www de la instalación.• Para ver su ejecución se debe
consultar con el navegador ladirección:
http://localhost/hola-mundo.php( )
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación 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 día!</BODY>
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
1 Introducción al lenguaje PHP
2 Instalación y Configuración del servidor
3 Conceptos básicosGestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
4 Programación avanzada en PHP
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Comentarios
Comentarios en PHP• Existen tres tipos de comentarios.• Comentar el código es muy importantes para su
legibilidad.
Comentarios
<?php// Comienzo del saludoecho "Hola, ¿qué tal?";/* Los comentarios de más de una
línea se introducen así */# Despedidadecho "Adios";?>
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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 asignación de una variable (para darle un valor es):$variable=valor.
• Una vez asignado un valor la variable está declarada y sepuede usar.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Variables II
Variables
$hoy="Viernes";echo "Al fin es $hoy";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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á")• Números enteros (eg. 23, -12, 0)• Números reales (eg. 23.2, 0.0012, 5.5e-2)• booleanos (sólo true y false)
• A una variable se le pueden asignar valores de tiposdiferentes.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Variables IV
Variables
$enanitos="siete";$enanitos=7;echo "Hay $enanitos personas pequeñas";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Variables V
Escritura de las variables en PHP• En los nombres de variables no puede haber espacios.• Las variables con mayúsculas y minúsculas se consideran
diferentes entre sí.• Se recomienda usar nombres de variables que sean
significativos (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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Variables VII
Imprimir valores• Para imprimir un salto de linea:
• Incluir "\n": Implica un salto en código generado (facilita lalectura pero no lo ve el navegador.
• Incluir "<BR>": Implica un salto en el HTML que sevisualiza (lo vería el navegador).
Saltos de línea
echo "Si sólo pongo \\n no se separa la línea...\n";echo "Pero si pongo BR<BR>Las líneas se separan";echo "Mejor los dos <BR>\n";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio
Cuenta del restaurante• Definir variables para:
• plato.• precio.• cantidad.
• Imprimir esas variables en una línea.• Redefinir las variables.• Volver a imprimir la línea.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio
Cuenta del restaurante
$plato="Pollo al Chilindrón";$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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores I
Operadores aritméticos• Existen los siguientes operadores suma(+), resta (-),
división (/), multiplicación (*) y módulo ( %).• Para realizar operaciones entre variables se pueden
realizar conversiones de tipos.• Para ello se usa el tipo numérico más general que puede
albergar el resultado.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores II
Operadores aritméticos
$a="1"; $b=2; $c=3;$d=1.2 + $a; // Valdrá 2.2 (número real)$e=$c / $b; // Valdrá 1.5 (número real)$f="3 peras" + "4 manzanas"; // Valdrá 7 (entero)// Quien dijo que no se podían sumar peras y manzanas!
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores III
Operadores de cadenas• Entre las cadenas existe un operador de concatenación, el
punto (.).• Se puede usar con enteros, concatenándolos a una
cadena.
Operadores de cadena
$calle="C/ Búho Bizco";$numero=23;$direccion=$calle . ", " . $numero;echo "Dirección: " . $direccion;
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores IV
Operadores con asignación• Todos los operadores se pueden combinar con una
asignación.• Se declara con el operador y el símbolo 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores V
Operadores con asignación
$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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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 detrás de la misma (post-).
• Sólo afecta a si dicha variable se va a usar en otraexpresión.
• En esos casos indica si se actualiza su valor antes odespués de usarla en la expresión.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio
Cuenta del restaurante• Definir dos contadores:
• raciones.• total.
• Inicializar estas variables.• Actualizar los valores de las mismas por cada plato.• Imprimirlas.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio
Cuenta del restaurante
$raciones=0;$total =0.0;// Aqui se declararía un plato (como antes)$raciones += $cantidad;$total += $cantidad * $precio;// Ídem para el otro platoecho "$raciones raciones\n<BR>";echo "Total $total euros\n<BR>";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Referencias I
Referencias entre variables• Se usa el símbolo (&) delante de una variable y como
parte derecha de una expresión.• Indica que la variable a la izquierda es una referencia a la
otra.• En la práctica: Son dos nombres para la misma variable
(mismo valor).• Cuando se modifica una se modifica la otra.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Tipos I
Asignación explícita de tipos• Como las variables pueden cambiar de tipo (entero, real,
cadena, . . . ) de forma dinámica.• 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Tipos II
Asignación explícita de tipos
$numero = 12;gettype($numero); // Devuelve "integer"is_int($numero); // Devuelve trueis_float($numero);// Devuelve false$numero += 1.1;is_int($numero); // Devuelve flase
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Tipos III
Asignación explícita de tipos• Aunque el tipo de las variables se modifica de forma
dinámica.• Existe un mecanismo (llamado casting) para forzar esta
conversión.• Si delante de una expresión se indica un descriptor de
tipo:• (string), (boolean), (int), (float)
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Tipos IV
Asignación explícita de tipos
$numero = 18;$cadena = (string) $numero; // Valdría "18"$valor = (int) ($numero/10);// Valdría 1echo $valor;
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Variables
Definición de variables• Una variable se define la primera vez que se declara.• Sin embargo, a lo largo de la ejecución se puede
manipular su definición.• Existen dos funciones para hacerlo:
• unset(): Anula la definición de una variable (la destruye).• isset(): Devuelve true si la variable está definida.
Definición de variables
$mensaje="El sentido de la vida...";isset($mensaje); // Devuelve trueunset($mensaje); // Anula la definiciónisset($mensaje); // Devuelve false
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Constantes
Definición de constantes• Los valores que no van a cambiar a lo largo de la ejecución
del programa se pueden almacenar en constantes.• El uso de una constante es idéntico al de una variable (sin
el $).• Se declara la cadena que identifica a la constante.
Definición de constantes
define ("PI", 3.141592);$radio=1.75;$area=PI * $radio * $radio;
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Tipos de estructuras de Control I
Tipos de estructuras de control• Se encargan del control del flujo de ejecución del
programa.• La gran mayoría están heredadas de C, C++ o Java.• El esquema general de las estructuras de control consiste
en la evaluación de una condición (booleana) ydependiendo de ello seleccionar entre diferentesalternativas.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Tipos de estructuras de Control II
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores de condición I
Operadores de comparación• Las condiciones viene indicadas por expresiones lógicas,
variables booleanas o expresiones:• Comparación: <, >, <=, >=.• Aplicables tanto a valores numéricos.• También a cadenas de caracteres (comparación alfabética).
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores de condición II
Operadores de comparación
$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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores de condición III
Operadores de equivalencia• Existen dos tipos de comparadores de equivalencia:
• Igualdad/Diferencia: ==, ! =. Hace conversión de tipos.• Equivalencia/Inequivalencia: ===, ! ==. No hace
conversión 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Operadores lógicos
Operadores lógicos• Dos o más expresiones lógicas se pueden combinar por
medio de:• "Y"lógico: &&, and.• .O"lógico: ||, or.• "XOR"lógico: xor.• Negación lógica: !.
Operadores lógicos
4 < 3.0 && "adios" < "hola"; // Devuelve false34 >= "8" || 3 === "tres"; // Devuelve true
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Estructuras de Control I
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Estructuras de Control II
if-then-else
if($a%2 == 0)echo "Número par";
else{
echo "Número impar";$a++;echo " $a es par";
}
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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";
elseecho "un montón";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Estructuras de Control IV
switch
• Es similar al caso anterior pero sólo vale para valores deuna misma variable.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Estructuras de Control V
switch
switch($pais){
case "España":echo "español";break;
case "Italia":echo "italiano";break;
default:echo "otra nacionalidad";
}
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Estructuras de Control VI
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Estructuras de Control VIII
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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 ocompuestos) estructurados.
• PHP dispone de un tipo de dato compuesto muy potente elarray .
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Estructuras Compuestas II
Array• Esta estructura es la análoga a 3 o 4 tipos compuestos en
otros lenguajes.• Hay varias formas de crear un array, las más sencillas son:
• array(): Crea un array vacío.• array(elementos...): Crea un array y lo inicializa con
tantos elementos como se le pasen.
• Los arrays también se pueden inicializar elemento aelemento.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays I
Inicialización de arrays
$a = array(); // Array vacío$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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays IV
Indices de un array• Para insertar un elemento al final de un array se puede
usar "[]".• Esto asocia al elemento el siguiente valor de la clave
numérica más alta del array.
Indices de un array
$baa[991]="!";$baa[]="."; // Equivale a $baa[992];
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays V
Arrays asociativos• Las claves (indices) de los arrays también pueden ser
cadenas de caracteres.• Un array puede tener variables numéricas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays VII
Matrices• Una matriz no es más 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays VIII
Imprimiendo un array• Al hacer un echo sobre una variable array no se obtiene
su contenido.• La función 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays IX
Iteración sobre arrays• count() muestra el número 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.
Iteración 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays X
Iteración 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.
Iteración 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays XI
Iteración 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 final 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays XII
Iteración sobre arrays• Existe otra función, each(), análoga a next().• Esta función devuelve un par (clave, elemento).• Su valor hay que recogerlo con un list.
Iteración sobre arrays
$persona["Nombre"] ="Pepe";$persona["Apellido"]="Potamo";$persona["Edad"] =70;reset($persona); // Comenzamoswhile(list($clave,$val)=each($persona))
echo "$clave : $val<BR>\n";
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays XIII
Funciones sobre arrays• Un array puede valer para implementar pilas o colas.• Las funciones usadas serían:
• array_push(): Añade al final (como []).• array_pop(): Elimina el último elemento y da su valor.• array_shift(): Elimina el primer elemento
(reordenando el resto).• array_unshift(): Añade un elemento al principio y
desplaza (reordenando) el resto.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays XV
Expansión 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays XVI
Expansión 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays XVII
Ordenación 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 loselementos.
• asort(): Ordena los elementos pero cada cual conservasu clave.
• ksort(): Ordena por clave, pero cada cual mantiene suelemento asociado.
• La ordenación por defecto es ascendente.• Existen las funciones análogas para ordenación inversa:rsort(), arsort() y krsort().
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Arrays XVIII
Ordenación de arrays
$alumnos=array(210 => "Dolores Fuertes",115 => "Walter O’Filia",523 => "Armando Guerra",410 => "Julian Dopetas");
// Por claveksort($alumnos);// Por nombreasort($alumnos);// Rompe asociaciónsort($alumnos);
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio
Las quinielas• Definir una estructura de datos que almacene un partido:
• Dos equipos.• El marcador
• Meter en un array varios elementos de esta estructura.• Definir otra estructura que muestre las apuestas de una
quiniela:• El partido.• Si se ha apostado 1, X ó 2 (o múltiples).
• Programar una función que calcule el número de aciertosde una quiniela dados unos resultados.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones en PHP I
Organización del código• Existen dos alternativas a la hora de organizar el código
para su posible reutilización:• Definiendo funciones que se usen dentro del mismo fichero
PHP.• Definiendo esas mismas funciones en otro fichero aparte
común a varios ficheros PHP.• El último caso se gestiona mediante las llamadas:
• include(): Si el fichero no existe da un aviso.• require(): Si el fichero no existe da un error.
• La inclusión de ficheros sería análoga a copiar dichofichero donde aparezca la llamada de inclusión.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones en PHP II
Funciones• Para declarar una función se la asocia un nombre que es
el que se usará para invocarla.• Las funciones se declaran por medio de la construcciónfunction.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones I
Definición de una función
// Definimos una funciónfunction saludo(){
echo "Hola mundo!";}// Incluimos otro fichero PHPinclude("func_aux.php");
// Invocamos la funciónsaludo();
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones II
Argumentos de una función• Los argumentos de una función son variables incluidas en
su declaración.• Dichas variables se usan en el cuerpo de la función.• Al invocarla se instancian dichas variables.
Argumentos de una función
function saludando($quien){
echo "Hola $quien";}saludando("Manolo");saludando(23);
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones III
Valor de retorno• Permite usar la función como parte de una expresión.• Se devuelve por medio de return.• Tras esa sentencia la función finaliza.
Valor de retorno
function por_dos($num){
return 2*$num;}por_dos(33);
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones IV
Argumentos predefinidos• 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 predefinidos
function despedida($quien="a todos"){
echo "Adios $quien";}despedida("Manolo");despedida();
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones V
Argumentos variables• Son funciones con un número indeterminado de
argumentos.• func_num_args(): Indica el número de argumentos.• func_get_args(): Mete los argumentos en un array.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones VII
Referencias• Son argumentos que pueden modificarse dentro de la
función.• 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones VIII
Ámbito de las variables• Las variables usadas dentro de una función son sólo
visibles dentro de la misma.• Eso indica que mantienen el valor y la declaración
mientras están dentro de la función.• Al terminar la función la variable pierde su definición.• Esto también es aplicable a los argumentos.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Funciones IX
Variables globales• Hay dos formas de declarar variables globales que sean
visibles fuera de la función y que no pierdan su definiciónal terminar la función:
• Declarar la variable con global.• Accediendo al array $GLOBALS.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio I
Juego del ahorcado• El programa dispone de un fichero 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 están
ocultas• Las letras dichas y no acertadas.• Un monigote que muestra el estado de los fallos del
usuario (imágenes).
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Gestión de variablesEstructuras de ControlEstructuras Compuestas: ArraysFunciones Predefinidas y de Usuario
Ejercicio II
Detector de palíndromos• El programa debe ser capaz de detectar si una frase
introducida es o no un palíndromo.• Debe ignorar espacios, acentos y signos de puntuación.• Muestra:
• Un campo de texto para introducir la frase letras.• Un botón para validar la frase.
• Algunos palíndromos:• Anita, la gorda lagartona, no traga la droga latina.• Dábale arroz a la zorra el abad.• ¿Acaso hubo búhos acá?
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
1 Introducción al lenguaje PHP
2 Instalación y Configuración del servidor
3 Conceptos básicos
4 Programación avanzada en PHPFormularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Procesamiento de Formularios I
• Dos mecanismos para enviar información medianteformularios
• GET• POST
• Las variables son “parseadas“ automáticamente por elservidor
• La información 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Procesamiento de Formularios II
Método GET
$patron = $_GET[’patron’]; /* Forma recomendada */$patron2 = $patron; /* Sólo si
register_globals es true */$patron3 = $HTTP_GET_VARS[’patron’]; /* En desuso */$patron4 = $_REQUEST[’patron’]; /* Otra opción */
Método POST
$texto = $_POST[’texto’]; /* Forma recomendada */$texto2 = $texto; /* Sólo si
register_globals es true */$texto3 = $HTTP_POST_VARS[’texto’]; /* En desuso */$texto4 = $_REQUEST[’texto’]; /* Otra opción */
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Envío de archivos al servidor I
• El formulario debe tener un tipo de codificación”multipart/form-data“
• La información del archivo se guarda en la variablesuperglobal $_FILES
• $_FILES es un array asociativo que contiene:• ’name’: nombre original del archivo• ’size’: tamaño 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’: código del error sucedido, si procede
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Envío 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Envío de archivos al servidor III
Procesamiento de los datos del archivo
echo "Los datos relativos al archivo suministradoson:<BR>";
echo "Nombre original: ".$fich[’name’]."<BR>";echo "Tipo de archivo: ".$fich[’type’]."<BR>";echo "Tamaño 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funcionamiento básico y especificación I
• (Breve) Información de estado almacenada por elnavegador del cliente
• Estado válido únicamente para un conjunto de URLs(dominio)
• Esta información es enviada por el navegador enposteriores visitas al mismo servidor
• Algunos ejemplos de aplicación:• Carritos de la compra en tiendas virtuales• Identificación de usuarios• Almacenamiento de preferencias de usuario para la
visualización de una página web (por ejemplo Google)
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funcionamiento básico y especificación II
• Deben ser enviadas antes de que el script produzcaninguna otra salida
• El formato de una cookie es:• ’name’: nombre de la cookie• ’value’: valor de la cookie• ’expire’: hora de expiración de la cookie (número 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
conexión segura
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Uso de cookies en PHP
• Sintaxis de la función 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ventajas e Incovenientes
• Ventajas:• Mecanismo fácil de implementar• Facilitan la navegación del usuario
• Inconvenientes• Puede convertirse en un mecanismo muy pesado
(sobrecarga de información enviada)• No siempre están habilitadas (el navegador del usuario
puede bloquearlas)• La información es fácilmente alterable
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Introducción
• Alternativa a las Cookies para mantener información deestado
DiferenciaLa información es almacenada en el servidor
• Necesita de un identificador de sesión (MD5 de un númeroaleatorio)
• Enviar el identificador en una Cookie• Enviar el identificador en cada query (a continuación de la
URL)
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Sesiones en PHP
• Existen tres funciones básicas para el manejo de sesionesen 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo I
Abrimos la sesión y registramos las variables
<?session_start();session_register(’intentos’);session_register(’secreto’);?>
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo II
Presentamos el Formulario
<FORM METHOD="POST">Introduzca un número entero entre 0 y 9999:<BR>Número: <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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo III
Procesamos la información
if (empty ($secreto) || $_REQUEST[’envio’] == "Reiniciar") {echo "Intente adivinar el número secreto.<BR><BR>";$secreto = rand (0,9999);$intentos = 0;
} else if (empty ($numero)) {echo "Intente adivinar el número secreto.<BR><BR>";
} else if ($secreto < $numero) {$intentos++;echo "El número secreto es menor que " . $numero . "<BR>";echo "¡Lleva usted " . $intentos . " intentos!<BR>";
} else if ($secreto > $numero) {
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo IV
Destruimos la sesión
} else {echo "<BR>";echo "ENHORABUENA, el número secreto era " . $numero .
"<BR>";echo "<BR>";session_destroy ();exit ();
}
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Otras consideraciones
• Si PHP fue compilado con la opción -enable-trans-id elidentificador de sesión se añade automáticamente a cadaenlace
• Para poder usar las variables de sesión hay que llamar a lafunción session_start() al comienzo de cada script
• Otras funciones de interés:
session_isregistered ()session_unregister (’variable’)session_unset ()session_id ()
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejercicio
Calendario de este mes• Obtener:
• El día del mes actual.• El día de la semana actual.• El nombre del mes.
• Tomando el día del mes y la semana calcular en qué díacayó el día 1 del mes.
• Imprimir una tabla con el calendario.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros I
Uso de ficheros• Una de las alternativas para mantener información
persistente de las operaciones del usuario es la utilizaciónde ficheros.
• En la gran mayoría de los sistemas hay que considerarademás los aspectos de propiedad y seguridad de losficheros.
• Hay que tener en cuenta que el proceso que ejecuta elservidor Web debe poder realizar las operacionessolicitadas sobre los ficheros.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros II
Gestión de ficheros• Hay dos formas de manipular ficheros:
• Por medio de las funciones heredadas de C/UNIX.• El interfaz de funciones propias de PHP.
• Las primeras, no obstantes no se recomiendan, salvo paraoperaciones muy particulares.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros III
Manejo básico• Existen dos funciones que permiten gestionar ficheros por
medio de cadenas:• file_get_conents(): Esta función carga en una
cadena el contenido del fichero.• file_put_conents(): Esta función vuelca el contenido
de una cadena en un fichero.
Manejo básico
$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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros IV
Manejo con arrays• La función file() permite cargar un fichero en un array.• El array comenzará en la clave 0.• Cada elemento será una línea del fichero.• El carácter de final de línea \n también se guardará al final
de cada elemento.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso 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\necho $lineas[1]; // mil moscas acudieron\necho $lineas[2]; // Yo.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso 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 fichero en dicho directorio.• closedir(): Cierra un directorio abierto.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros VIII
Otras funciones útiles• Existen otra serie de funciones asociadas a ficheros:
• file_exists(): Indica si un nombre de fichero que se lepasa existe.
• fopen(): Abre un fichero, devolviendo un manejador. Elvalor devuelto lo usan otras funciones.
• fpassthru(): Se le pasa un manejador de fichero yvuelca su contenido por la salida.
• is_dir(), is_file(): Consulta si un nombre de ficherose corresponde con un fichero, propiamente dicho o con undirectorio.
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ficheros X
Ficheros remotos• El nombre de un fichero se puede sustituir por una URL.• Hay diferentes protocolos de acceso a ficheros remotos, lo
más habitual es usar http://.
Ficheros remotos
// Redirigimos a una página 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejercicio
Juego del ahorcado• El programa dispone de un fichero 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 están
ocultas• Las letras dichas y no acertadas.• Un monigote que muestra el estado de los fallos del
usuario (imágenes).
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Conceptos de Bases de Datos
Base de datos• Conjunto de datos interrelacionados• Almacenados sistemáticamente
Gestor de bases de datos• Programa informático• Almacena los datos de forma eficiente• Recupera y accede a los datos rápidamente
SQL – Structured Query Language• Lenguaje estándar para consultar una base de datos• Es un estándar ANSI/ISO
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de tabla de bases de datos (Empresas)
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.55
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
SQL
Consultando información (I)SELECT columnas FROM tabla
• columnas: Lista de columnas a presentar (separadas porcomas). Puede ser un asterisco (*) para indicar todas lascolumnas.
• tabla: Nombre de la tabla.
SELECT
SELECT Nombre, Telefono FROM Empresas;
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de SELECT
SELECT Nombre, Telefono FROM Empresas;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.55
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de SELECT
SELECT Nombre, Telefono FROM Empresas;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.55
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
SQL
Consultando información (II)SELECT columnas FROM tabla WHERE condición
• condición: Una expresión (comparación) que afecta aalguna de las columnas de la tabla.
SELECT
SELECT * FROM Empresas WHERE Saldo<0;
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de SELECT
SELECT * FROM Empresas WHERE Saldo<0;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.55
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de SELECT
SELECT * FROM Empresas WHERE Saldo<0;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.55
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
SQL
Operador LIKEComprueba si una cadena de caracteres está contenida enotra.Se usa el símbolo% para sustituir a cualquier cosa (comodín).
• 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de SELECT
SELECT * FROM Empresas WHERE Nombre LIKE ’%os%’;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.55
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de SELECT
SELECT * FROM Empresas WHERE Nombre LIKE ’%os%’;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.55
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
SQL
Inserción de InformaciónINSERT 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de INSERT
INSERT INTO Empresas VALUES(8795, ’Q&T Asociados’, ’’, 917884520, 4590.40);
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.558795 Q&T Asociados 91 7884520 4590.40
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de INSERT
INSERT INTO Empresas VALUES(8795, ’Q&T Asociados’, ’’, 917884520, 4590.40);
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.558795 Q&T Asociados 91 7884520 4590.40
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
SQL
Modificación de InformaciónUPDATE tabla SET (valores) WHERE condición
• tabla: Esta es la tabla donde se van a modificar los valores.• valores: Columnas a modificar y valores que van a tomar
(separados por comas).• condición: Condición inicial que debe cumplir las filas a
modificar.
UPDATE
UPDATE Empresas SET Tipo=’Marketing’ WHERE Codigo=8795;
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de UPDATE
UPDATE Empresas SET Tipo=’Marketing’ WHERE Codigo=8795;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.558795 Q&T Asociados Marketing 91 7884520 4590.40
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de UPDATE
UPDATE Empresas SET Tipo=’Marketing’ WHERE Codigo=8795;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.558795 Q&T Asociados Marketing 91 7884520 4590.40
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
SQL
Eliminación de InformaciónDELETE FROM tabla WHERE condición
• tabla: Esta es la tabla de donde se van a eliminar losvalores.
• condición: Condición que debe cumplir las filas a eliminar.
DELETE
DELETE FROM Empresas WHERE Codigo<8790;
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de DELETE
DELETE FROM Empresas WHERE Codigo<8790;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.558795 Q&T Asociados Marketing 91 7884520 4590.40
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejemplo de DELETE
DELETE FROM Empresas WHERE Codigo<8790;
Código Nombre Tipo Teléfono Saldo8788 Suministros Ruíz Electricidad 91 3987872 1288.008789 Transportes TSS Transporte 91 5993725 433.008790 Segurinsa S.A. Seguridad 923 847002 -120.508791 Desarrollos Tyna Diseño 91 4513172 3901.008790 Elektronics Electricidad 91 3342244 -233.508791 Obras Marcos Albañilería 91 7111132 2921.008792 Muebles Prados Mobiliario 91 3120072 90.558793 Internal Mobiliario 93 4287910 340.008794 Trabajos Cruz Fontanería 672 112991 790.558795 Q&T Asociados Marketing 91 7884520 4590.40
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejercicio
Consultas a una BBDD• Realizar las siguientes consultas a la BBDD de ejemplo:
• Obtener el nombre y el teléfono de las empresas que sededican a la electricidad.
• Obtener el nombre de las empresas madrileñas.• Modificar el saldo de las empresas con identificador 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Acceso a BBDD desde PHP
• Aplicaciones cada vez más grandes que manejan grancantidad de datos
• Dos alternativas para acceder a una BBDD• ODBC (Open Database Connectivity )
• Interfaz estándar para todos los gestores de BBDD• Más lento que el acceso con funciones nativas
• Funciones nativas de un gestor de BBDD específico
• Más eficiente que ODBC• Menos transportable a otros gestores de BBDD
• En PHP existen 33 funciones para trabajar con MySQL• Sólo la mitad se usan habitualmente
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común I
Conexión con una BBDDint mysql_connect (string host, string username, string
password)
• Devuelve el identificador de la conexión
Ejemplo de llamada
$conn = mysql_connect (‘‘localhost’’,‘‘pepe’’, ‘‘rufus73’’);
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común II
Conexión permanente con una BBDDint mysql_pconnect (string host, string username, string
password)
• La conexión permanece abierta tras la finalización delscript
• Puede incrementar notablemente la velocidad del programa
Cambios necesarios en el fichero php.ini
mysql.allow_persistent = Onmysql.max_persistent = -1
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común III
Selección de una BBDDint mysql_select_db (string database_name [, int
link_identifier])
• El identificador sólo se necesita si hay varias conexionesabiertas
Ejemplo de llamada
$db = mysql_select_db (‘‘database_name’’);
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común IV
Consultas a la BBDDint mysql_query (string query [, int link_identifier])
• Devuelve un cursor que apunta a las filas que componenel resultado
• Más adelante veremos las funciones que realmenteobtienen los resultados
Ejemplo de llamada
$result = mysql_query (‘‘select * from db’’);
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común V
Recuperación de los datos desde la BBDDarray 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 número
• Se puede seleccionar el tipo con MYSQL_NUM yMYSQL_ASSOC
• Otro modo de recuperar los resultados
array mysql_fetch_row (int result)
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común VII
Recuento de filas seleccionadasint mysql_num_rows (int result)
• Devuelve el número de filas 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común VIII
Recuento de filas insertadas/actualizadas/borradasint mysql_num_rows (int result)
• Devuelve el número de filas afectadas por una y deinserción, borrado o actualización
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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común IX
Gestión de erroresint mysql_errno ([int link_identifier])
• Devuelve el código 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 últimaoperación realizada
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común X
Acceso directo a resultadosint mysql_result (int result, int row, [mixed field])
• Permite acceder a un valor concreto del conjunto deresultados
• Necesitamos conocer la fila y la columna del resultado quenos interesa
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso más común 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso menos común I
Recuperación de datos como objetosObject mysql_fetch_object (int result, [, int
result_type])
• Devuelve el primer registro no consumido resultado de laconsulta
• Similar a mysql_fetch_array ()• Los campos se acceden como propiedades de un objeto
(operador ->)
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso menos común II
Liberación de memoriaint mysql_free_result (int result)
• Libera la memoria ocupada por el resultado de la últimaconsulta
• No suele ser necesario su uso:
• PHP libera la memoria automáticamente al finalizar elscript...
• ...aunque puede ser útil si el script hace más cosasdespués de la consulta
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso menos común III
Cierre de la conexión a la BBDDint mysql_close ([int link_identifier])
• Cierra la conexión con la BBDD• No suele ser necesario su uso:
• La conexión se cierra automáticamente al finalizar el script• Sólo es necesario si se modifican los permisos de la BBDD
durante la ejecución del script
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso menos común IV
Posicionamiento del cursor de resultadosint mysql_data_seek (int result, int row_numer)
• Posiciona el cursor de resultados en la fila proporcionadacomo parámetro (0 es la primera posición)
• Puede ser útil para realizar un segundo recorrido por losdatos
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso menos común V
Creación de una BBDDint mysql_create_db (string database_name, [int
link_identifier])
• Sólo puede llamarse tras establecer una conexión conMySQL
• 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso menos común VI
Borrado de una BBDDint 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 MySQLint 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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso menos común VIIListado de tablas de una BBDD
int mysql_list_tables (string database, [intlink_identifier])
• Permite listar las tablas que contiene una BBDD• Los resultados se obtienen con la función
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é María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Funciones de uso menos común VIII
Listado de columnas de una tabla de una BBDDint mysql_list_tables (string database, string table_name,
[int link_identifier])
• Análoga a la anterior, pero para obtener los nombres delas columnas de una tabla
Antonio LaTorre de la Fuente, José María Peña PHP
Introducción al lenguaje PHPInstalación y Configuración del servidor
Conceptos básicosProgramación avanzada en PHP
Formularios, Sesiones y CookiesAcceso a ficherosConceptos de BBDDAcceso a BBDD
Ejercicio
Consultas a una BBDD• Realizar las siguientes consultas a la BBDD de ejemplo:
• Obtener el nombre y el teléfono de las empresas que sededican a la electricidad.
• Obtener el nombre de las empresas madrileñas.• Modificar el saldo de las empresas con identificador 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é María Peña PHP