Curso PHP y MySQL
-
Upload
olivia-owen -
Category
Documents
-
view
56 -
download
4
description
Transcript of Curso PHP y MySQL
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.";?>
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
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
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 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
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: