PHP y MySQL
Introducción
   ¿Qué es?
   Es un lenguaje de "código abierto" interpretado, de alto
    nivel, embebido en páginas HTML y ejecutado en el
    servidor.
   PHP es el acrónimo recursivo de (Personal Home Page
    Tools) = "PHP: Hypertext Preprocessor“ .
   La mayoría de su sintaxis es similar a C, Java y Perl y es
    fácil de aprender.
   La principal meta de este lenguaje es permitir a los
    creadores de páginas web, escribir páginas dinámicas de
    una manera rápida y fácil.
Funcionamiento
   PHP se ejecuta en el servidor y el
    resultado es enviado al navegador web.
   El resultado normalmente es HTML.
   Acceso a los recursos del servidor.
    – Ej. BBDD
   El navegador no necesita soportar PHP
   El servidor SÍ debe soportar PHP.
   Modo de operación:
    – El Navegador realiza una petición al servidor (URL)
    – Después el servidor ejecuta el código PHP solicitado y
    retorna el código HTML al navegador
    – El navegador muestra la respuesta del servidor.
¿Qué se necesita?
    PHP no es un lenguaje que se interprete en el cliente o en el
    navegador, es un lenguaje que interpreta el servidor y manda
    la salida en el formato deseado (HTML, XML...) al navegador.

    Sin embargo con PHP en el servidor es necesario lo
    siguiente:

   Apache - IIS (Servidor Web)
   MySQL – SQL (Gestor de base de datos)
   PHP (Lenguaje de Programación)

   WAMP (Windows + Apache + MySQL + PHP)
   APPServer (Apache + MySQL + PHP)
   XAMPP
Bases del desarrollo web

Arquitectura
Cliente - Servidor
Cliente:     Explorer,   FireFox,
Safari
Servidor: Apache, IIS




Tecnología
Cliente: CSS, Flash, HTML,
JavaScript
Servidor: C#,       Java, PHP,
Phyton
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)
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
Bases del desarrollo web
 Diálogo entre cliente y servidor
Bases del desarrollo web
Modelos de comunicación cliente - servidor



      Modelo Síncrono




      Modelo Asíncrono
           (Ajax)
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
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
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)
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
Fundamentos de PHP

Operadores
Operadores aritméticos




Operadores de cadenas – Concatenación
Fundamentos de PHP

Operadores
Operadores de comparación




Operadores lógicos
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
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
Fundamentos de PHP

Estructuras de control
switch
         switch ($variable) {
             case Valor1: ...; break;
             case Valor2: ...; break;
             [default:    ...; break;]
         }
Fundamentos de PHP

Estructuras de control
while

         while (condición) sentencia;
         while (condición) { sentencia1; sentencia2; … sentencian; }




       Operadores break y continue;
Fundamentos de PHP

Estructuras de control
do while

      do { sentencias } while (condición);
Fundamentos de PHP

Estructuras de control
for

      for (var = valor_inicial; condición; var++) sentencia;
      for (var = valor_inicial; condición; var++) { sentencias }
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
Funciones
Funciones

  function nombre_funcion(param1,…paramn) {
    sentencias
    [return valor;]
  }
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)
Funciones
Paso de parámetros por valor




Paso de parámetros por referencia
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();
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") ?>
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    Julio   Agosto

    valor        Ana        Juan      Pepe   valor        28      29       30
Arrays
Creación e inicialización de arrays

                                                 Operador []

                                      Array vacío!
Arrays
Creación e inicialización de arrays

                                               Constructor array

                                      Array vacío!
Arrays
Arrays multidimensionales
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
Arrays
Funciones relacionadas con los arrays
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
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
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>
Formularios
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
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
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);
Acceso a bases de datos MySQL
Sentencias básicas SQL
      SELECT (consultas a la base de datos):
        SELECT * | campo[,campo]
        FROM 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];

Curso php y_mysql

  • 1.
  • 2.
    Introducción  ¿Qué es?  Es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en páginas HTML y ejecutado en el servidor.  PHP es el acrónimo recursivo de (Personal Home Page Tools) = "PHP: Hypertext Preprocessor“ .  La mayoría de su sintaxis es similar a C, Java y Perl y es fácil de aprender.  La principal meta de este lenguaje es permitir a los creadores de páginas web, escribir páginas dinámicas de una manera rápida y fácil.
  • 3.
    Funcionamiento  PHP se ejecuta en el servidor y el resultado es enviado al navegador web.  El resultado normalmente es HTML.  Acceso a los recursos del servidor. – Ej. BBDD  El navegador no necesita soportar PHP  El servidor SÍ debe soportar PHP.  Modo de operación: – El Navegador realiza una petición al servidor (URL) – Después el servidor ejecuta el código PHP solicitado y retorna el código HTML al navegador – El navegador muestra la respuesta del servidor.
  • 4.
    ¿Qué se necesita? PHP no es un lenguaje que se interprete en el cliente o en el navegador, es un lenguaje que interpreta el servidor y manda la salida en el formato deseado (HTML, XML...) al navegador. Sin embargo con PHP en el servidor es necesario lo siguiente:  Apache - IIS (Servidor Web)  MySQL – SQL (Gestor de base de datos)  PHP (Lenguaje de Programación)  WAMP (Windows + Apache + MySQL + PHP)  APPServer (Apache + MySQL + PHP)  XAMPP
  • 5.
    Bases del desarrolloweb Arquitectura Cliente - Servidor Cliente: Explorer, FireFox, Safari Servidor: Apache, IIS Tecnología Cliente: CSS, Flash, HTML, JavaScript Servidor: C#, Java, PHP, Phyton
  • 6.
    Bases del desarrolloweb  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)
  • 7.
    Bases del desarrolloweb  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
  • 8.
    Bases del desarrolloweb Diálogo entre cliente y servidor
  • 9.
    Bases del desarrolloweb Modelos de comunicación cliente - servidor Modelo Síncrono Modelo Asíncrono (Ajax)
  • 10.
    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
  • 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
  • 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)
  • 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
  • 14.
    Fundamentos de PHP Operadores Operadoresaritméticos Operadores de cadenas – Concatenación
  • 15.
    Fundamentos de PHP Operadores Operadoresde comparación Operadores lógicos
  • 16.
    Fundamentos de PHP Operadores Operadoresde asignación Operador de referencia (&)  Este operador permite obtener la referencia o dirección de memoria de una variable
  • 17.
    Fundamentos de PHP Estructurasde 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
  • 18.
    Fundamentos de PHP Estructurasde control switch switch ($variable) { case Valor1: ...; break; case Valor2: ...; break; [default: ...; break;] }
  • 19.
    Fundamentos de PHP Estructurasde control while while (condición) sentencia; while (condición) { sentencia1; sentencia2; … sentencian; }  Operadores break y continue;
  • 20.
    Fundamentos de PHP Estructurasde control do while do { sentencias } while (condición);
  • 21.
    Fundamentos de PHP Estructurasde control for for (var = valor_inicial; condición; var++) sentencia; for (var = valor_inicial; condición; var++) { sentencias }
  • 22.
    Fundamentos de PHP Estructurasde 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
  • 23.
    Funciones Funciones functionnombre_funcion(param1,…paramn) { sentencias [return valor;] }
  • 24.
    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)
  • 25.
    Funciones Paso de parámetrospor valor Paso de parámetros por referencia
  • 26.
    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();
  • 27.
    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") ?>
  • 28.
    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 Julio Agosto valor Ana Juan Pepe valor 28 29 30
  • 29.
    Arrays Creación e inicializaciónde arrays Operador [] Array vacío!
  • 30.
    Arrays Creación e inicializaciónde arrays Constructor array Array vacío!
  • 31.
  • 32.
    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
  • 33.
  • 34.
    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
  • 35.
    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
  • 36.
    Formularios Envío y borradoen 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>
  • 37.
  • 38.
    Formularios Recepción de lasvariables 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
  • 39.
    Acceso a basesde 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
  • 40.
    Acceso a basesde 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);
  • 41.
    Acceso a basesde datos MySQL Sentencias básicas SQL  SELECT (consultas a la base de datos): SELECT * | campo[,campo] FROM 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];