1 Curso PHP y MySQL Implantación de Sistemas Implantación de Sistemas UNEFAUNEFA Hungria Berbesi
2 Wamp Server, antes conocido comoWAMP, es un completo paquete al estilo ’apachefriends’ que te permite instalar y configurar fácilmente en tu sistema lo último del servidor Web Apache, el lenguaje de programación PHP y el servidor de base de datos MySQL. Las versiones que instala de esta aplicaciones son las siguientes: Apache 2.2.6, PHP5, MySQL database, PHPmyadmin y SQLitemanager. Pero Wamp Server no es simplemente un paquete de programas, esta aplicación instala una interfaz residente en la barra de tareas que permite iniciar, supervisar y detener los distintos servicios.
3 Instalación y configuración de wampserver Pasos: Descargar Instalar Probar
4 Una de las ventajas de usar Wamp Server es que la instalación modificará los archivos de configuración (*.conf) con la ruta donde finalmente se ubicará el programa. También crea un directorio denominado ’www’ que será la raíz para tus documentos. Un icono ebarra de tareas nos indicará al instante el estado de los diferentes serviciosn la.
5 Lenguajes de script PHP es un lenguaje de script del lado del servidor. Otros lenguajes similares son ASP, JSP o ColdFusion Los scripts PHP están incrustados en los documentos HTML y el servidor los interpreta y ejecuta antes de servir las páginas al cliente El cliente no ve el código PHP sino los resultados que produce
6 PHP Es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. MySQL Es un sistema de gestión de bases de datos relacional, multihilo y multiusuario. MySQL es utilizado en aplicaciones web, como
7 ¿Cómo funciona PHP? (1) Página HTML internet Servidor web Cliente (navegador) Hola, Ana
8 Apache Es un servidor web HTTP de código abierto, para plataformas Unix, Microsoft Windows, Macintosh y otras que implementen el protocolo. Apache es usado principalmente para enviar páginas web estáticas y dinámicas en la World Wide Web.World Wide Web.
9 ¿Cómo funciona PHP? (2) Página PHP Intérprete PHP Página HTML internet Servidor web Cliente (navegador) Hola, Ana
10 Breve historia de PHP Creado por Rasmus Lerdorf para uso personal en 1994 PHP = PHP: Hypertext Preprocessor Versión actual: PHP 5 Es un módulo que se añade al servidor web y fue concebido inicialmente para Apache ¿Por qué PHP? Por sus ventajas: es potente, fácil de aprender, de libre distribución, permite el acceso a bases de datos y otras funcionalidades orientadas a la red Dispone de abundante soporte en la Web
11 Requisitos Servidor web Apache (www.apache.org)www.apache.org con el módulo PHP (www.php.net)www.php.net y la base de datos MySQL (www.mysql.com) si se desea crear páginas dinámicaswww.mysql.com Otras utilidades Herramientas para la gestión de MySQL, como PHPMyAdmin (www.phpmyadmin.net)www.phpmyadmin.net Editores de PHP, como DevPHP (www.sourceforge.net), Eclipse (www.eclipse.org) o Aptana Studio (www.aptana.com)www.sourceforge.netwww.eclipse.orgwww.aptana.com Manuales de PHP y MySQL Apache es un servidor Web cuya misión es la de recibir y responder peticiones de páginas Webs
12 ¿Cómo desarrollar un proyecto en PHP? ◦ Los ficheros PHP son ficheros de texto y se pueden crear con cualquier editor de texto, como el WordPad de Windows ◦ Es mucho más conveniente utilizar entornos de desarrollo que permiten editar el código más cómodamente, y además proporcionan funciones como la detección y corrección de errores, visualización de las páginas en el navegador, ayuda sensible al contexto y gestión de todos los recursos asociados al proyecto ◦ Algunos entornos de desarrollo: Dev-PHP Eclipse Aptana Studio Dreamweaver
13 1. Sintaxis básica 2. Tipos de datos 3. Variables 4. Constantes 5. Expresiones y operadores 6. Estructuras de control 7. Arreglos
14 PHP es sensible a las mayúsculas ¿Cómo se incrusta en la página web? Las instrucciones se separan con un ; como en C. La marca final ?> implica un ; Comentarios: como en C, /* … */ (varias líneas ) y // (una línea) /* Comentario de varias líneas */ printf “hola”; // Comentario de una línea
15 Para imprimir: echo y printf echo: muestra una o más cadenas echo cadena1 [, cadena2…]; echo “Hola mundo”; echo “Hola “, “mundo”; printf: muestra una cadena printff cadena; printf “Hola mundo”; printf “Hola “. “mundo”;
16 Ejemplo: Mi primer programa en PHP
17 Uso de \n para generar código HTML legible a) Sin \n printf (“Párrafo 1”); printf (“Párrafo 2”); Párrafo 1 Párrafo 2 Código PHP Código HTML Salida
18 Uso de \n para generar código HTML legible b) Con \n printf (“Párrafo 1\n”); printf (“Párrafo 2\n”); Párrafo 1 Párrafo 2 Párrafo 1 Párrafo 2 Código PHP Código HTML Salida
19 PHP soporta 8 tipos de datos primitivos: Tipos escalares: boolean, integer, double, string Tipos compuestos: array, object Tipos especiales: resource, NULL El tipo de una variable no se suele especificar. Se decide en tiempo de ejecución en función del contexto y puede variar Funciones de interés: La función gettype() devuelve el tipo de una variable Las funciones is_type comprueban si una variable es de un tipo dado: is_array(), is_bool(), is_float(), is_integer(), is_null(), is_numeric(), is_object(), is_resource(), is_scalar(), is_string() La función var_dump() muestra el tipo y el valor de una variable. Es especialmente interesante con los arrays
20 Las variables siempre van precedidas de un $ El nombre es sensible a las mayúsculas Comienzan por letra o subrayado, seguido de letras, números o subrayado Variables predefinidas: $GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES, $_ENV, $_REQUEST, $_SESSION Ámbito: globales al fichero (excepto funciones) o locales a una función Ejemplo: $valor = 5; printf “El valor es: “. $valor. “\n”; printf “El valor es: $valor\n”; // ojo: comillas dobles Resultado: El valor es: 5
21 Operadores aritméticos: +, -, *, /, %, ++, -- Operador de asignación: = operadores combinados:.=, +=, etc $a = 3; $a += 5; a vale 8 $b = “hola ”; $b.= “mundo”; b vale “hola mundo” Equivale a $b = $b. “mundo”; Operadores de comparación: ==, !=,, = y otros Operador de control de error: @. Antepuesto a una expresión, evita cualquier mensaje de error que pueda ser generado por la expresión Operadores lógicos: and (&&), or (||), !, xor and/&& y or/|| tienen diferentes prioridades Operadores de cadena: concatenación:. (punto) asignación con concatenación:.=
22 Estructuras selectivas: if-else switch Estructuras repetitivas: while for foreach
23 Estructura selectiva if-else Mismo comportamiento que en C Las sentencias compuestas se encierran entre llaves elseif puede ir todo junto if (condición) sentencia if (condición1) sentencia 1 else if (condición2) sentencia 2... else if (condición n) sentencia n else sentencia n+1 if (condición) sentencia 1 else sentencia 2
24 Ejemplo de estructura selectiva if-else:
25 Ejemplo de estructura repetitiva while:
26 Estructura repetitiva for for (inicialización; condición; incremento) sentencia Mismo comportamiento que en C condición sentencia ciertafalsa incremento inicialización
27 Ejemplo de estructura repetitiva for:
28 Sintaxis: array ([clave =>] valor,...) La clave es una cadena o un entero no negativo. El valor puede ser de cualquier tipo válido en PHP, incluyendo otro array Ejemplos: $cars1="Volvo"; $cars2="BMW"; $cars3="Toyota";
29 $age['Peter']="35"; $age['Ben']="37"; $age['Joe']="43"; "35","Ben"=>"37","Joe"=> "43"); echo "Peter is ". $age['Peter']. " years old."; ?>
30 1. Acceso a formularios HTML desde PHP 2. El formulario de PHP
31 Desde PHP se puede acceder fácilmente a los datos introducidos desde un formulario HTML Veámoslo con un ejemplo simple
32 Name: Age: Welcome. You are years old !
33
34 A partir de PHP 4.2.0, el valor por defecto de la directiva de PHP register_globals es off Esto tiene una gran importancia sobre los formularios, ya que no es posible acceder a las variables enviadas de la manera anterior (como variables globales). En su lugar hay que utilizar la variable predefinida de PHP $_REQUEST, escribiendo $_REQUEST[‘edad’] en lugar de $edad Se puede poner register_globals = on en el fichero de configuración php.ini, pero no es recomendable por motivos de seguridad. Una alternativa que permite hacer mínimos cambios en el código ya existente es la siguiente: $edad = $_REQUEST[‘edad’];
35 Name: Age: Welcome ! You are years old.
36 Acceso a los diferentes tipos de elementos de entrada de formulario Elementos de tipo INPUT TEXT RADIO CHECKBOX BUTTON FILE HIDDEN PASSWORD SUBMIT Elemento SELECT Simple / múltiple Elemento TEXTAREA
37 TEXT Introduzca la cadena a buscar:
38 RADIO Sexo: Mujer Hombre
39 CHECKBOX Garaje Piscina Jardín
40 BUTTON
41 FILE
42 HIDDEN
43 PASSWORD Contraseña:
44 SUBMIT
45 SELECT simple Color: Rojo Verde Azul
46 SELECT múltiple Idiomas: Inglés Francés Alemán Holandés
47 TEXTAREA Comentario: Este libro me parece...
48 1. Bases de datos en la Web 2. Herramientas de administración: phpMyAdmin 3. Lenguaje SQL 4. Funciones de PHP para el acceso a bases de datos MySQL 5. Ejercicios 6. Consulta avanzada de tablas
49 Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web Ventajas –Proporcionar información actualizada –Facilitar la realización de búsquedas –Disminuir los costes de mantenimiento –Implementar sistemas de control de acceso –Almacenar preferencias de los usuarios
50 Esquema básico de un sitio web soportado por bases de datos:
51 phpMyAdmin es una herramienta para la administración del servidor de bases de datos MySQL Dispone de una interfaz gráfica y es de libre distribución Permite realizar todo tipo de operaciones sobre bases de datos: crear, borrar y modificar tablas consultar, insertar, modificar y eliminar datos definir usuarios y asignar permisos realizar copias de seguridad etc Está escrita en php y se ejecuta desde el navegador Si está instalada en la carpeta phpmyadmin, se ejecuta escribiendo en la barra de direcciones del navegador la url http://localhost/phpmyadmin/ Puede administrar bases de datos locales y remotas
52 Para acceder a phpMyAdmin buscamos el icono de Easyphp en la barra de tarea y damos click derecho configuración/PhpMyAdmin
53 1 2 nombre de la base de datos 3
54 Nombre de la base creada anteriormente Nombre de la tabla a crear en la base de datos # de campo o columnas de la tabla
55 Propiedades de las columnas
56 1. Click Ingresar los valores
57 SQL (Structured Query Language) es el lenguaje que se utiliza para comunicarse con la base de datos Procedimiento de comunicación con la base de datos: Página PHP Base de datos orden SQL resultado
58 Los pasos para acceder desde PHP a una base de datos son los siguientes: ◦ Conectar con el servidor de bases de datos ◦ Seleccionar una base de datos ◦ Enviar la instrucción SQL a la base de datos ◦ Obtener y procesar los resultados ◦ Cerrar la conexión con el servidor de bases de datos
59 Las funciones concretas de MySQL que realizan estas operaciones son: ◦ Conectar con el servidor de bases de datos: mysql_connect() ◦ Seleccionar una base de datos: mysql_select_db() ◦ Enviar la instrucción SQL a la base de datos: mysql_query() ◦ Obtener y procesar los resultados: mysql_num_rows() y mysql_fetch_array() ◦ Cerrar la conexión con el servidor de bases de datos: mysql_close()
60 Conectar con el servidor de bases de datos: mysql_connect() ◦ Devuelve un identificador de la conexión en caso de éxito y false en caso contrario Sintaxis: $conexion = mysql_connect (servidor, username, password); Ejemplo: esto debe de estar dentro de un script php $conexion = mysql_connect (“localhost”, “cursophp”, “”); if(!$conexion) echo “No se puede conectar con el servidor”;
61 Seleccionar una base de datos: mysql_select_db() Devuelve true en caso de éxito y false en caso contrario Sintaxis: mysql_select_db (database,conexion); Ejemplo: if ( mysql_select_db (“lindavista”,$conexion)); echo “No se puede seleccionar la base de datos”;
62 Enviar la instrucción SQL a la base de datos: mysql_query() Devuelve un identificador o true (dependiendo de la instrucción) si la instrucción se ejecuta correctamente y false en caso contrario Ejemplo: $consulta=“select * from alumnos”; $respuesta = mysql_query ($consulta,$conexion);
63 Obtener y procesar los resultados: mysql_num_rows(), mysql_fetch_array() En el caso de que la instrucción enviada produzca unos resultados, mysql_query() devuelve las filas de la tabla afectadas por la instrucción mysql_num_rows() devuelve el número de filas afectadas Para obtener las distintas filas del resultado se utiliza la función mysql_fetch_array(), que obtiene una fila del resultado en un array asociativo cada vez que se invoca Sintaxis: $nfilas = mysql_num_rows ($respuesta); $fila = mysql_fetch_array ($respuesta);
64 Ejemplo: Título 1Texto 1 05/02/2004 noticias 1 Título 2Texto 2 05/02/20042 Título 3Texto 3 04/02/20043 Título 4Texto 4 01/02/20044 Título 5Texto 5 31/01/20045 Instrucción: select * from noticias where categoria=“promociones” ofertas promociones costas promociones
65 Ejemplo: Título 1Texto 1 05/02/2004 noticias 1 Título 2Texto 2 05/02/20042 Título 3Texto 3 04/02/20043 Título 4Texto 4 01/02/20044 Título 5Texto 5 31/01/20045 Instrucción: select * from noticias where categoria=“promociones” ofertas promociones costas promociones $consulta $nfilas=3
66 Obtención de las filas: $nfilas = mysql_num_rows ($respuesta); if ($nfilas > 0) { for ($i=0; $i
67 Obtener los resultados: mysql_num_rows(), mysql_fetch_array() Para acceder a un campo determinado de una fila se usa la siguiente sintaxis: $fila[“nombre_campo”]// por ser un array asociativo $fila[$i]// $i=índice del campo desde 0 Ejemplo: for ($i=0; $i
68 Cerrar la conexión con el servidor de bases de datos: mysql_close() Sintaxis: mysql_close ($conexion); Ejemplo mysql_close ($conexion);
69 Ejercicio 1: Ejercicio simple de acceso a una tabla de una base de datos. Ilustra cómo conectar con una base de datos, enviar una consulta, recuperar los resultados y mostrarlos en pantalla, actualizar eliminar e insertar un registro. Pasos previos: 1. Crear la base de datos alumnos 2. Crear la tabla personales en la base de datos alumnos 3. Ingresar los siguientes valores: