PHP y MySQL Yeray Caballero L贸pez Juan Pablo Quesada Nieves
Contenido Bloque I Bases del desarrollo web Fundamentos de PHP
Qué
es PHP Literales – Variables – Constantes Operadores Estructuras de control Funciones Arrays Yeray Caballero López - Juan Pablo Quesada Nieves
2
Contenido Bloque II Formularios Acceso a bases de datos MySQL Sesiones y Cookies Ficheros Programación Orientada a Objetos en PHP
Yeray Caballero López - Juan Pablo Quesada Nieves
3
Contenido Bloque I Bases del desarrollo web Fundamentos de PHP
Qué
es PHP Literales – Variables – Constantes Operadores Estructuras de control Funciones Arrays Yeray Caballero López - Juan Pablo Quesada Nieves
4
Bases del desarrollo web Arquitectura Cliente - Servidor Cliente: Safari
Explorer,
FireFox,
Servidor: Apache, IIS
Tecnolog铆a Cliente: CSS, Flash, HTML, JavaScript Servidor: C#, Java, PHP, Phyton Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
5
Bases del desarrollo web
Cliente, navegador como Internet Explorer, Firefox, Opera, Safari, ... Los navegadores interactúan con el servidor a través de protocolos. Estos protocolos definen las reglas de intercambio de información entre el cliente y el servidor
Servidor, software responsable de aceptar las solicitudes HTTP del cliente y de enviarle las respuestas (HTML, XML)
HTTP, protocolo de transferencia de hipertexto. HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. ¿Cómo sabe el servidor si la solicitud la hago yo o la hace otra persona? … (Cookies, Sesiones)
Yeray Caballero López - Juan Pablo Quesada Nieves
6
Bases del desarrollo web ď Ž
Cookies y sesiones El protocolo HTTP es incapaz por sĂ solo de mantener el estado entre dos transacciones. El objetivo de las cookies y las sesiones en el servidor es precisamente identificar las solicitudes de un usuario y distinguirlas del resto
Yeray Caballero LĂłpez - Juan Pablo Quesada Nieves
7
Bases del desarrollo web Di谩logo entre cliente y servidor
Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
8
Contenido Bloque I Bases del desarrollo web Fundamentos de PHP
Qué
es PHP Literales – Variables – Constantes Operadores Estructuras de control Funciones Arrays Yeray Caballero López - Juan Pablo Quesada Nieves
9
Fundamentos de PHP
Qué es PHP
Lenguaje script, interpretado y de tipado débil Fue escrito por el danés Rasmus Lerdorf en 1994 Es un lenguaje del lado del servidor Originalmente diseñado para producir webs
Yeray Caballero López - Juan Pablo Quesada Nieves
10
Contenido Bloque I Bases del desarrollo web Fundamentos de PHP
Qué
es PHP Literales – Variables – Constantes Operadores Estructuras de control Funciones Arrays Yeray Caballero López - Juan Pablo Quesada Nieves
11
Fundamentos de PHP
Literales – Variables - Constantes Literales
Dos formas de definir los literales : comillas simples y comillas dobles Las comillas dobles evalúan variables y expresiones dentro del literal; las comillas simples no
Constantes
Yeray Caballero López - Juan Pablo Quesada Nieves
12
Fundamentos de PHP
Literales – Variables - Constantes Variables
En PHP no es necesario declarar las variables Las variables se crean al asignarles un valor Todas las variables en PHP empiezan por '$' ($productsList, $title, $connection) Es case-sensitive ($quantity es distinto a $Quantity)
Yeray Caballero López - Juan Pablo Quesada Nieves
13
Fundamentos de PHP
Literales – Variables - Constantes Variables. Tipos de datos
integer, double, string, boolean, array, object PHP es un lenguaje de tipado débil El tipo de una variable vendrá determinado por el valor que se le asigne $state = 0; // integer $state = “Successful”; // string Conversión de tipos explícita $total_amount = (double) $quantity Ejemplos de variables de distintos tipos : $variable_integer = 3; $variable_double = 4.5; $variable_boolean = true; // (true, false) $array[0] = ‘value’; $array[1] = 23; $person = new Person(‘Raul’, ‘López’); PHP evalúa cualquier valor distinto de cero como true y cero como falso
Yeray Caballero López - Juan Pablo Quesada Nieves
14
Fundamentos de PHP
Literales – Variables - Constantes Variables. Funciones relacionadas con los tipos
Yeray Caballero LĂłpez - Juan Pablo Quesada Nieves
15
Fundamentos de PHP
Literales – Variables - Constantes Variables. Otras funciones
Las siguientes son funciones útiles, sobre todo, para comprobar si se enviaron las variables de formulario
Yeray Caballero López - Juan Pablo Quesada Nieves
16
Fundamentos de PHP
Literales – Variables - Constantes Variables. Ámbito IMPORTANTE limitar el ámbito de las variables todo lo posible
Global entre scripts Global a un script Locales
PHP 5 incluye variables estáticas
Una variable estática existe en el ámbito de un bloque, pero no pierde su valor cuando la ejecución del programa sale de ese ámbito
Yeray Caballero López - Juan Pablo Quesada Nieves
17
Fundamentos de PHP
Literales – Variables - Constantes Variables predefinidas en PHP
Yeray Caballero LĂłpez - Juan Pablo Quesada Nieves
18
Contenido Bloque I Bases del desarrollo web Fundamentos de PHP
Qué
es PHP Literales – Variables – Constantes Operadores Estructuras de control Funciones Arrays Yeray Caballero López - Juan Pablo Quesada Nieves
19
Fundamentos de PHP
Operadores Operadores aritméticos
Operadores de cadenas – Concatenación
Yeray Caballero López - Juan Pablo Quesada Nieves
20
Fundamentos de PHP
Operadores Operadores de comparaci贸n
Operadores l贸gicos
Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
21
Fundamentos de PHP
Operadores Operadores de asignación
Operador de referencia (&)
Este operador permite obtener la referencia o dirección de memoria de una variable
$name1 $name2
Bob
Yeray Caballero López - Juan Pablo Quesada Nieves
22
Fundamentos de PHP
Operadores Operadores de supresión de errores
Este operador suprimirá el error de manera que no se muestre por pantalla
El mensaje de error se almacenará en la variable global $php_errormsg
Yeray Caballero López - Juan Pablo Quesada Nieves
23
Contenido Bloque I Bases del desarrollo web Fundamentos de PHP
Qué
es PHP Literales – Variables – Constantes Operadores Estructuras de control Funciones Arrays Yeray Caballero López - Juan Pablo Quesada Nieves
24
Fundamentos de PHP
Estructuras de control if … else …, if … elseif … else if (condición) { sentencias } if (condición) { sentencias } else { sentencias } if (condición) { sentencias } elseif (condición) { sentencias } …
Las llaves son necesarias cuando hay más de una sentencia
Yeray Caballero López - Juan Pablo Quesada Nieves
25
Fundamentos de PHP
Estructuras de control switch switch ($variable) { case Valor1: ...; break; case Valor2: ...; break; [default: ...; break;] }
Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
26
Fundamentos de PHP
Estructuras de control while while (condición) sentencia; while (condición) { sentencia1; sentencia2; … sentencian; }
Operadores break y continue;
Yeray Caballero López - Juan Pablo Quesada Nieves
27
Fundamentos de PHP
Estructuras de control do while do { sentencias } while (condici贸n);
Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
28
Fundamentos de PHP
Estructuras de control for for (var = valor_inicial; condici贸n; var++) sentencia; for (var = valor_inicial; condici贸n; var++) { sentencias }
Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
29
Fundamentos de PHP
Estructuras de control foreach foreach(variable_array as $value) sentencia; foreach(variable_array as $value) { sentencias } foreach(variable_array as $key => $value) sentencia; foreach(variable_array as $key => $value) { sentencias }
El bucle itera sobre la lista devolviendo un elemento de la lista en cada iteración
Yeray Caballero López - Juan Pablo Quesada Nieves
30
Contenido Bloque I Bases del desarrollo web Fundamentos de PHP
Qué
es PHP Literales – Variables – Constantes Operadores Estructuras de control Funciones Arrays Yeray Caballero López - Juan Pablo Quesada Nieves
31
Funciones Funciones function nombre_funcion(param1,…paramn) { sentencias [return valor;] }
Yeray Caballero López - Juan Pablo Quesada Nieves
32
Funciones Paso de parámetros
Todos los parámetros son por valor si no se especifica lo contrario Para pasar una variable por referencia se antepone & Se permiten parámetros por defecto (el parámetro por defecto tiene que estar a la derecha de cualquier parámetro sin valor) PHP permite un número ilimitado de parámetros (ninguna sintaxis especial) func_num_args(): func_get_arg(int num_arg): func_get_args():
devuelve el nº de args pasados a la función devuelve un arg de la lista devuelve un array copia de la lista de args
Yeray Caballero López - Juan Pablo Quesada Nieves
33
Funciones Paso de parรกmetros por valor
Paso de parรกmetros por referencia
Yeray Caballero Lรณpez - Juan Pablo Quesada Nieves
34
Funciones Parรกmetros ilimitados
Parรกmetros por defecto
Yeray Caballero Lรณpez - Juan Pablo Quesada Nieves
35
Funciones return
La palabra reservada return permite devolver valores de las funciones Si lo que se quiere es devolver una referencia se tiene que usar & tanto en la declaración de la función como en la asignación del valor de retorno a una variable function & returns_reference() { return $someref; } $newref = & returns_reference();
Yeray Caballero López - Juan Pablo Quesada Nieves
36
Funciones include, require
Permiten cargar funciones y variables declaradas en otros scripts (reutilización) Similares a #include de C Se pueden incluir en cualquier parte del script Ambas tiene la misma funcionalidad, con pequeñas diferencias: – include, si no puede cargar el fichero, no provocará ningún error <? include ("archivo") ?> – require, si no puede cargar el fichero, provocará un error fatal <? require("archivo") ?>
Yeray Caballero López - Juan Pablo Quesada Nieves
37
Contenido Bloque I Bases del desarrollo web Fundamentos de PHP
Qué
es PHP Literales – Variables – Constantes Operadores Estructuras de control Funciones Arrays Yeray Caballero López - Juan Pablo Quesada Nieves
38
Arrays
Conocidos como matrices o arrays en PHP Muy utilizados (estructuras de datos, opciones de configuración, idiomas) En PHP existen dos tipos de arrays: – –
arrays escalares, cuyo índice es un entero arrays asociacitos, cuyo índice es una string
Array escalar
Array asociativo
amigos[0] amigos[1] amigos[2]
temp[‘Junio’] temp[‘Julio’] temp[‘Agosto’]
índice
0
1
2
índice
Junio
valor
Ana
Juan
Pepe
valor
28
Julio 29
Agosto 30
Yeray Caballero López - Juan Pablo Quesada Nieves
39
Arrays Creación e inicialización de arrays Operador [] Array vacío!
¡ Débilmente tipado !
Yeray Caballero López - Juan Pablo Quesada Nieves
40
Arrays Creación e inicialización de arrays Constructor array Array vacío!
¡ Débilmente tipado !
Yeray Caballero López - Juan Pablo Quesada Nieves
41
Arrays Arrays multidimensionales
Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
42
Arrays Recorrido for (var = valor_inicial; condición; var++) sentencia; for (var = valor_inicial; condición; var++) { sentencias }
count(variable_array): devuelve el número de elementos del array
Yeray Caballero López - Juan Pablo Quesada Nieves
43
Arrays Recorrido foreach(variable_array as $value) sentencia; foreach(variable_array as $value) { sentencias } foreach(variable_array as $key => $value) sentencia; foreach(variable_array as $key => $value) { sentencias }
Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
44
Arrays Funciones relacionadas con los arrays
Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
45
Contenido Bloque II Formularios Acceso a bases de datos MySQL Sesiones y Cookies Ficheros Programación Orientada a Objetos en PHP
Yeray Caballero López - Juan Pablo Quesada Nieves
46
Formularios Formularios HTML <form action=“” method=“”> … </form>
action define el tipo de acción a llevar a cabo con el formulario. Existen dos posibilidades: – el formulario es enviado a una dirección de correo electrónico – el formulario es enviado a un programa o script que procesa su contenido method se encarga de especificar la forma en la que el formulario es enviado. Los dos valores posibles que puede tomar esta atributo son post y get
Yeray Caballero López - Juan Pablo Quesada Nieves
47
Formularios Elementos de formulario <input name=“nombre” type=“text”> <input name=“nombre” type=“password”> <textarea name=“nombre” rows=n_filas cols=n_columnas></textarea> <select name=“nombre”> <option>opción1</option> … <option>opciónn</option> </select> <input name=“nombre” type=“radio” value=“valor”>Texto <input name=“nombre” type=“checkbox”>Texto Yeray Caballero López - Juan Pablo Quesada Nieves
48
Formularios Envío y borrado en formularios HTML <input type="submit" value="Enviar"> <input type=“reset" value=“Borrar">
Ejemplo de formulario: <form action=“login.php” method=“post” name=“login”> Usuario: <input name=“user” type=“text”> Contraseña: <input name=“pass” type=“password”> <input type=“submit” value=“Login”> </form>
Yeray Caballero López - Juan Pablo Quesada Nieves
49
Formularios
Yeray Caballero L贸pez - Juan Pablo Quesada Nieves
50
Formularios Recepción de las variables de formulario $_GET[‘variable’] $_POST[‘variable’]
Estos arrays asociativos contienen las variables transferidas de una página a otra a través de un formulario. Dependiendo del método utilizado (get o post) en el formulario, las variables estarán en uno u otro
Yeray Caballero López - Juan Pablo Quesada Nieves
51
Contenido Bloque II Formularios Acceso a bases de datos MySQL Sesiones y Cookies Ficheros Programación Orientada a Objetos en PHP
Yeray Caballero López - Juan Pablo Quesada Nieves
52
Acceso a bases de datos MySQL MySQL y phpMyAdmin
MySQL es un sistema gestor de bases de datos relacionales multiusuario phpMyAdmin es una herramienta para la administración de MySQL
Yeray Caballero López - Juan Pablo Quesada Nieves
53
Acceso a bases de datos MySQL Operaciones con MySQL
Conexión con MySQL: $conexion = mysql_connect(“host”,”usuario”,”password”);
Selección de base de datos en MySQL: mysql_select_db(“nombre_de_base_de_datos”, $conexion);
Trabajo con tablas: $consulta = mysql_query(“sentencia_sql”, $conexion); $registro = mysql_fetch_array($consulta); //mysql_fetch_array() devuelve un //array asociativo
Cierre de la conexión con MySQL: mysql_close($conexion);
Yeray Caballero López - Juan Pablo Quesada Nieves
54
Acceso a bases de datos MySQL Sentencias básicas SQL
SELECT (consultas a la base de datos): SELECT * | campo[,campo] FROM tabla[,tabla] [WHERE condicion];
INSERT (inserción de registros): INSERT INTO tabla [(campo[,campo])] VALUES (valor[,valor]);
UPDATE (actualización de registros): UPDATE tabla SET campo=nuevo_valor_campo [campo=nuevo_valor_campo] [WHERE condicion];
DELETE (borrado de registros): DELETE FROM tabla [WHERE condicion];
Yeray Caballero López - Juan Pablo Quesada Nieves
55
Contenido Bloque II Formularios Acceso a bases de datos MySQL Sesiones y Cookies Ficheros Programación Orientada a Objetos en PHP
Yeray Caballero López - Juan Pablo Quesada Nieves
56