Curso PHP y MySQL

69
Curso PHP y MySQL Implantación de Sistemas U N E F A Hungria Berbesi

description

Implantación de Sistemas. Curso PHP y MySQL. U N E F A. Hungria Berbesi. Instalación de wampserver. - PowerPoint PPT Presentation

Transcript of Curso PHP y MySQL

Curso PHP y MySQL

Implantación de Sistemas

UNEFA

Hungria Berbesi

Instalación de wampserver

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.

Instalación de wampserver

Instalación y configuración de wampserver◦ Pasos:

Descargar Instalar Probar

Instalación de wampserver

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.

Introducción a PHP

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

PHPEs un lenguaje de

programación interpretado, diseñado originalmente para la creación de páginas web dinámicas.

MySQLEs un sistema de

gestión de bases de datos relacional, multihilo y multiusuario.

MySQL es utilizado en aplicaciones web, como

Introducción a PHP

¿Cómo funciona PHP? (1)

PáginaHTML

PáginaHTML

internet

Servidor web Cliente(navegador)

<P>Hola, Ana</P>

ApacheEs 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.

Introducción a PHP

¿Cómo funciona PHP? (2)

PáginaPHP

IntérpretePHP

PáginaHTML

PáginaHTML

internet

Servidor web Cliente(navegador)

<?PHP $nombre = "Ana"; printf ("<P>Hola, $nombre</P>");?>

<P>Hola, Ana</P>

Introducción a PHP

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

Introducción a PHP

Requisitos◦ Servidor web Apache (www.apache.org) ◦ con el módulo PHP (www.php.net)◦ y la base de datos MySQL (www.mysql.com) si se

desea crear páginas dinámicas Otras utilidades

◦ Herramientas para la gestión de MySQL, como PHPMyAdmin (www.phpmyadmin.net)

◦ Editores de PHP, como DevPHP (www.sourceforge.net), Eclipse (www.eclipse.org) o Aptana Studio (www.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

Entornos de desarrollo para PHP

¿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

Lenguaje PHP básico

1. Sintaxis básica2. Tipos de datos3. Variables4. Constantes5. Expresiones y operadores6. Estructuras de control7. Arreglos

Sintaxis básica

PHP es sensible a las mayúsculas ¿Cómo se incrusta en la página web?

<?PHP recomendado, siempre disponible

?>

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 devarias líneas */printf “hola”; // Comentario de una línea

Sintaxis básica

Para imprimir: echo y printf

echo: muestra una o más cadenasecho cadena1 [, cadena2…];

echo “Hola mundo”;echo “Hola “, “mundo”;

printf: muestra una cadenaprintff cadena;

printf “Hola mundo”;printf “Hola “ . “mundo”;

Sintaxis básica

Ejemplo:<HTML><HEAD><TITLE>Mi primer programa en PHP</TITLE></HEAD>

<BODY>

<?PHP printf (“Hola mundo”);?>

</BODY></HTML>

Sintaxis básica

Uso de \n para generar código HTML legible a) Sin \n

printf (“Párrafo 1”);printf (“Párrafo 2”);

<P>Párrafo 1</P><P>Párrafo 2</P>

Párrafo 1 Párrafo 2

Código PHP

Código HTML

Salida

Sintaxis básica

Uso de \n para generar código HTML legible b) Con \n

printf (“Párrafo 1\n”);printf (“Párrafo 2\n”);

<P>Párrafo 1</P><P>Párrafo 2</P>

Párrafo 1

Párrafo 2

Código PHP

Código HTML

Salida

Tipos de datos

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

Variables

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

Expresiones y operadores

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 (||), !, xorand/&& y or/|| tienen diferentes prioridades

Operadores de cadena:concatenación: . (punto)asignación con concatenación: .=

Estructuras de control

Estructuras selectivas:◦ if-else◦ switch

Estructuras repetitivas:◦ while◦ for◦ foreach

Estructuras de control

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 1else if (condición2) sentencia 2...else if (condición n) sentencia nelse sentencia n+1

if (condición) sentencia 1else sentencia 2

Estructuras de control

Ejemplo de estructura selectiva if-else:

<?PHPif ($sexo == ‘M’)

$saludo = "Bienvenida, ";else

$saludo = "Bienvenido, ";printf (“$saludo”);

?>

Estructuras de control

Ejemplo de estructura repetitiva while:

<?PHPprintf ("<UL>\n");$i=1;while ($i <= 5){

printf ("<LI>Elemento $i</LI>\n");

$i++;}printf ("</UL>\n");

?>

Estructuras de control

Estructura repetitiva for

for (inicialización; condición; incremento)sentencia

Mismo comportamiento que en C

condición

sentencia

ciertafalsa

incremento

inicialización

Estructuras de control

Ejemplo de estructura repetitiva for:

<?PHPprintf ("<UL>\n");for ($i=1; $i<=5; $i++)

printf ("<LI>Elemento $i</LI>\n");printf ("</UL>\n");

?>

Arreglos

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:<?php

$cars=array("Volvo","BMW","Toyota");echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";?>

$cars1="Volvo";$cars2="BMW";$cars3="Toyota";

$age['Peter']="35";$age['Ben']="37";$age['Joe']="43";

<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");echo "Peter is " . $age['Peter'] . " years old.";?>

Formularios HTML

1. Acceso a formularios HTML desde PHP2. El formulario de PHP

Acceso a formularios desde PHP

Desde PHP se puede acceder fácilmente a los datos introducidos desde un formulario HTML

Veámoslo con un ejemplo simple

Acceso a formularios desde PHP

<form action="welcome.php" method="get">Name: <input type="text" name="fname">Age: <input type="text" name="age"><input type="submit"></form>

Welcome <?php echo $_GET["fname"]; ?>.<br>You are <?php echo $_GET["age"]; ?> years old!

Acceso a formularios desde PHP

Acceso a formularios desde PHP

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’];

Acceso a formularios desde PHP

<form action="welcome.php" method="post">Name: <input type="text" name="fname">Age: <input type="text" name="age"><input type="submit"></form>

Welcome <?php echo $_POST["fname"]; ?>!<br>You are <?php echo $_POST["age"]; ?> years old.

Acceso a formularios desde PHP

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

Acceso a formularios desde PHP

TEXT

Introduzca la cadena a buscar:<INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20">

<?PHP $cadena = $_REQUEST[‘cadena’]; ?>

Acceso a formularios desde PHP

RADIO

Sexo:<INPUT TYPE="radio" NAME=“sexo" VALUE=“M“ CHECKED>Mujer<INPUT TYPE="radio" NAME=“sexo" VALUE=“H">Hombre

<?PHP $sexo = $_REQUEST[‘sexo’]; ?>

Acceso a formularios desde PHP

CHECKBOX

<INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje" CHECKED>Garaje<INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina<INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín

<?PHP $extras = $_REQUEST[‘extras’]; ?>

Acceso a formularios desde PHP

BUTTON

<INPUT TYPE="button" NAME=“actualizar" VALUE="Actualizar datos">

<?PHP $actualizar = $_REQUEST[‘actualizar’]; if ($actualizar) printf ("Se han actualizado los datos");?>

Acceso a formularios desde PHP

FILE

<FORM ACTION="procesa.php" METHOD="post“ ENCTYPE="multipart/form-data"> <INPUT TYPE="file" NAME="fichero"></FORM>

Acceso a formularios desde PHP

HIDDEN

<?PHP printf(“<INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’>\n”);?>

<?PHP $username = $_REQUEST[‘username’]; ?>

Acceso a formularios desde PHP

PASSWORD

Contraseña: <INPUT TYPE="password" NAME="clave">

<?PHP $clave = $_REQUEST[‘clave’]; ?>

Acceso a formularios desde PHP

SUBMIT

<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos">

<?PHP $enviar = $_REQUEST[‘enviar’]; if ($enviar) printff ("Se ha pulsado el botón de enviar");?>

Acceso a formularios desde PHP

SELECT simple

Color:<SELECT NAME=“color"> <OPTION VALUE=“rojo" SELECTED>Rojo <OPTION VALUE=“verde">Verde <OPTION VALUE=“azul">Azul</SELECT>

<?PHP $color = $_REQUEST[‘color’]; ?>

Acceso a formularios desde PHP

SELECT múltiple

Idiomas:<SELECT MULTIPLE SIZE="3" NAME="idiomas[]"> <OPTION VALUE="ingles" SELECTED>Inglés <OPTION VALUE="frances">Francés <OPTION VALUE="aleman">Alemán <OPTION VALUE="holandes">Holandés</SELECT>

<?PHP $idiomas = $_REQUEST[‘idiomas’];?>

Acceso a formularios desde PHP

TEXTAREA

Comentario:<TEXTAREA COLS=“50" ROWS=“4" NAME="comentario">Este libro me parece ...</TEXTAREA>

<?PHP $comentario = $_REQUEST[‘comentario’]; printf ($comentario);?>

Acceso a bases de datos MySQL en PHP

1. Bases de datos en la Web2. Herramientas de administración: phpMyAdmin3. Lenguaje SQL4. Funciones de PHP para el acceso a bases de

datos MySQL5. Ejercicios6. Consulta avanzada de tablas

Bases de datos en la Web

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

Bases de datos en la Web

Esquema básico de un sitio web soportado por bases de datos:

Herramientas de administración: phpMyAdmin 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

phpMyAdminPara acceder a phpMyAdmin buscamos el icono

de Easyphp en la barra de tarea y damos click derecho configuración/PhpMyAdmin

phpMyAdmin crear una base de datos

1

2 nombre de la base de datos

3

phpMyAdmin crear una tabla en la base de datos

Nombre de la base creada anteriormente

Nombre de la tabla a crear en la base de datos

# de campo o columnas de la tabla

phpMyAdmin atributos de las columnas de una tabla en la base de datos

Propiedades de las columnas

phpMyAdmin insertar registros a una tabla de la base de datos

1. Click

Ingresar los valores

Lenguaje SQL 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áginaPHP

Base de datos

orden SQL

resultado

Funciones de PHP para el acceso a bases de datos MySQL 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

Acceso a bases de datos MySQL 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()

Acceso a bases de datos MySQL 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”;

Acceso a bases de datos MySQL 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”;

Acceso a bases de datos MySQL 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);

Acceso a bases de datos MySQL 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);

Acceso a bases de datos MySQL Ejemplo:

Título 1 Texto 1 05/02/2004

noticias

1

Título 2 Texto 2 05/02/20042

Título 3 Texto 3 04/02/20043

Título 4 Texto 4 01/02/20044

Título 5 Texto 5 31/01/20045

Instrucción:select * from noticias where categoria=“promociones”

ofertas

promociones

promociones

costas

promociones

Acceso a bases de datos MySQL Ejemplo:

Título 1 Texto 1 05/02/2004

noticias

1

Título 2 Texto 2 05/02/20042

Título 3 Texto 3 04/02/20043

Título 4 Texto 4 01/02/20044

Título 5 Texto 5 31/01/20045

Instrucción:select * from noticias where categoria=“promociones”

ofertas

promociones

promociones

costas

promociones

$consulta

$nfilas=3

Acceso a bases de datos MySQL Obtención de las filas:

$nfilas = mysql_num_rows ($respuesta);if ($nfilas > 0){ for ($i=0; $i<$nfilas; $i++) { $fila = mysql_fetch_array ($respuesta); procesar fila i-ésima de los resultados }}

Acceso a bases de datos MySQL 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<$nfilas; $i++){ $fila = mysql_fetch_array ($respuesta); printf “Título: “ . $fila[“titulo”]; printf “Fecha: “ . $fila[“fecha”];}

Acceso a bases de datos MySQL Cerrar la conexión con el servidor de bases de datos:

mysql_close()

Sintaxis:

mysql_close ($conexion);

Ejemplo

mysql_close ($conexion);

Ejercicios

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 alumnos2. Crear la tabla personales en la base de datos alumnos3. Ingresar los siguientes valores: