|
|
(10 revisiones intermedias por el mismo usuario no mostrado) |
Línea 1: |
Línea 1: |
| __NOEDITSECTION__ | | __NOEDITSECTION__ |
− | {|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:2px; border-color:#0066FF;"
| + | |
− | | width="100%" valign="top" style="padding: 0; margin:0px;" |
| + | |
− | {|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:1px; border-color:#0066FF;"
| + | |
− | | width="100%" valign="top" style="padding: 0; margin:0px;" |
| + | |
− | <span style="background:#FFFF99">
| + | |
− | </span>
| + | |
− | [[Imagen:DWES_TituloTema3.gif|center]]
| + | |
− | |}
| + | |
| | | |
| {{:Usuario:ManuelRomero/php/nav}} | | {{:Usuario:ManuelRomero/php/nav}} |
| + | |
| + | __TOC__ |
| | | |
| <br> --[[Usuario:ManuelRomero|Manuel Romero]] 16:12 3 nov 2013 (UTC) | | <br> --[[Usuario:ManuelRomero|Manuel Romero]] 16:12 3 nov 2013 (UTC) |
Línea 22: |
Línea 17: |
| | | |
| <div class="slide"> | | <div class="slide"> |
− | ===Introduccion===
| |
− | #PHP (acrónimo de PHP: Hypertext Preprocessor)
| |
− | ##es un lenguaje de código abierto
| |
− | ## muy popular (Podríamos pensar en un estándar?)
| |
− | ## especialmente adecuado para desarrollo web
| |
− | ## en desarrollos web
| |
− | ###Se ejecuta en el servidor web
| |
− | ###Es incrustrado en HTML.
| |
− | ### El cliente solo ve el resultado de la ejecución nunca el código
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Como escribir PHP 1===
| |
− | Dentro de páginas html
| |
− | '''<?php'''
| |
− | '' instrucciones''
| |
− | '''?>'''
| |
− | ;Otros modos menos usados
| |
− | :Estilo asp
| |
− | '''<%'''
| |
− | '' instrucciones''
| |
− | '''%>'''
| |
− | :Sintaxis para editores HTML
| |
− | '''<SCRIPT LANGAGE="PHP">'''
| |
− | '' instrucciones''
| |
− | '''</SCRIPT>'''
| |
− | *Guardamos el fichero con extensión .php
| |
− | **Así sabemos que el interprete php tiene que ejecutar códigoç
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Como escribir PHP 2===
| |
− | escribiendolo en un fichero aparte
| |
− | incluimos el fichero explícitamente
| |
− | include('ruta/nobrefichero');
| |
− | require('ruta/nobrefichero');
| |
− | include_one('ruta/nobrefichero');
| |
− | require_one('ruta/nobrefichero');
| |
− |
| |
− | </div>
| |
− |
| |
− |
| |
− | <div class="slide">
| |
− | === Variables===
| |
− | no hay que definir tipo
| |
− | El tipo dependerá del valor asignado
| |
− | *tipos básicos
| |
− | **entero
| |
− | **cadena
| |
− | **real o coma flotante
| |
− | **Booleano
| |
− | **NULL un tipo especial que solo tiene ese valor
| |
− | *tipos complejos
| |
− | **objetos
| |
− | **matrices
| |
− | **recursos
| |
− | identificador
| |
− | {{Puntos clave|$(a..zA..Z_)(ascii-127..255)*}}
| |
− |
| |
− | '''<?php'''
| |
− | $miVariable= 8;/*Variable de tipo entero*/
| |
− | edad = 5/*Error en el identificador*/
| |
− | $5edad = 5 /*Error en el identificador */
| |
− | '''?>'''
| |
− | *El lenguaje es sensible a mayúsculas y minúsculas
| |
− | **En los identificadores de variables
| |
− | **No lo es en nombres de funciones
| |
− | **No lo es en palabras reservadas (if, then, else,...)
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Comentarios ===
| |
− | Son ignorados por el intérprete
| |
− | '''<?php'''
| |
− | /*
| |
− | Este código no hace nada pero muestra
| |
− | la sintaxis de los comentarios
| |
− | como este que ocupa varias líneas
| |
− | */
| |
− | $miVariable= 8;// Esta parte de la línea se ignorará
| |
− | $miVariable+= 8;# y esta parte de línea tambien
| |
− | echo "Valor de la variable $miVariable";
| |
− | '''?>'''
| |
− | Este código nos visualizará
| |
− | Valor de la variable 16
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Valor de variable===
| |
− | *Una variable le asigno un valor en cualquier momento
| |
− | *El tipo de la variable depende del valor que tiene
| |
− | *función isset comprueba que una variable tenga valor
| |
− | '''<?php'''
| |
− | /*
| |
− | $VariableValor= 5;
| |
− | print ("El valor de la variable es $VariableValor");
| |
− | print ("El valor de otra variable es $OtraVariableValor");
| |
− | if (isset($VariableValor))
| |
− | print ("VariableValor tiene valor asignado");
| |
− | else
| |
− | print ("VariableValor no no tiene valor asignado");
| |
− | if (isset($OtraVariableValor))
| |
− | print ("OtraVariableValor tiene valor asignado");
| |
− | else
| |
− | print ("OtraVariableValor no no tiene valor asignado");
| |
− | '''?>'''
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | === Variables entera===
| |
− | *Posible notación decimal/octal/hexadecimal
| |
− | *Decimal
| |
− | **$Numero=10;
| |
− | *Octal
| |
− | **$NumeroOctal=067;
| |
− | *Hexadecimal
| |
− | **$NumeroHex=0cA56B;
| |
− | *Al imprimirlos con print los veré con valor decimal
| |
− | *Para verlos en otras base hay que usar printf o format
| |
− | </div>
| |
− |
| |
− |
| |
− |
| |
− | <div class=slider>
| |
− | === Variables reales===
| |
− |
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | === Variables booleanas===
| |
− | *Interpretar otros tipos como booleanos
| |
− |
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | === NULL===
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | === Cadenas===
| |
− | *Comillas dobles ""
| |
− | *Comillas sencillas <nowiki>''</nowiki>
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | === Funciones de salida===
| |
− | Construcciones básicas para salida de caracrteres
| |
− | No son funciones (con o sin paréntesis)
| |
− | ====echo====
| |
− | Es el uso más sencillo
| |
− | Imprime una cadena como argumentos
| |
− | En la versión si paréntesis también puedes pasar una lista de argumentos.
| |
− | '''<?php'''
| |
− | Echo “primer argumento”, “segundo argumento”, “tercer argumeto”
| |
− | '''?>'''
| |
− | ====print====
| |
− | Tiene dos diferencias con echo
| |
− | #Sólo puede aceptar un argumento
| |
− | #Devuelve un valor que representa si la sentencia ha tenido o no éxito
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | === Estructuras de control 1===
| |
− | A continuación veremos las estructuras de control
| |
− | Son de tres tipos
| |
− | #Selección
| |
− | #Iteración
| |
− | #Secuenciales
| |
− | Para construirlas necesitamos operadores
| |
− | #Operadores lógicos
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===Operadores lógicos===
| |
− | and
| |
− | or
| |
− | !
| |
− | xor
| |
− | &&
| |
− | ||
| |
− | Funcionan por cortocircuito
| |
− | Construyen expresiones booleanas y tras su evaluación retorna un valor booleano.
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===Operadores lógicos===
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===Operadores lógicos===
| |
− | ==
| |
− | ¡=
| |
− | <
| |
− | >
| |
− | <=
| |
− | >=
| |
− | ===
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===Operadores ternario===
| |
− | Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion
| |
− | </div>
| |
− |
| |
− |
| |
− | <div class=slider>
| |
− | ===Selección if===
| |
− | If ( condicion)
| |
− | Sentencia 1;
| |
− | if (condicion){
| |
− | Sentencia 1
| |
− | Sentencia 2
| |
− | }
| |
− |
| |
− | if (condicion)
| |
− | Sentencia 1
| |
− | else
| |
− | Sentencia 2
| |
− |
| |
− | if condicion:
| |
− | Sentencia 1;
| |
− | endif;
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===Seleccion else elseif===
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===Seleccion switch===
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===iteracion while===
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===iteracion do-while===
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===iteracion for===
| |
− | for (expression_inicial; comprobacion_terminacion;exrpesion_incremento){
| |
− | sentencias;
| |
− | }
| |
− | Escribir un programa que visualice una tabla con las divisiones de los números que confluyen
| |
− |
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===Leer datos===
| |
− | *Para leer datos lo hacemos de un formulario
| |
− | *el formulario lo envía el cliente
| |
− | *Obligatoriamente necesitamos el atributo name de la etiqueta input
| |
− | *EJ. en el emisor tenemos
| |
− | Dime un número:
| |
− | <FORM ACTION="tabla.php" METHOD="GET">
| |
− | <INPUT TYPE="text" NAME="numero"><BR>
| |
− | <INPUT TYPE="submit" VALUE="Enviar">
| |
− | </div>
| |
− | Al presionar el botón de enviar se envía la página al servidor
| |
− | La página que especificamos en el botón action la gestiona ''tabla.php'' en este caso
| |
− | En el servidor para recuperar el valor utilizaremos la tabla supergobal
| |
− | una tabla es una estructura indexada por índices
| |
− | leeremos el índice nombre de variable de la tabla
| |
− | $_GET o $_POST dependiendo de el método de envío
| |
− | Valor numérico introducido: <?php echo $_GET['numero'] ?>
| |
− |
| |
− |
| |
− |
| |
− | <div class=slider>
| |
− | ===iteracion while===
| |
− | </div>
| |
− | <div class=slider>
| |
− | ===iteracion while===
| |
− | </div>
| |
− |
| |
− |
| |
− | <div class=slider>
| |
− | =BASES DE DATOS=
| |
− | *Para trabajar con bases de datos debemos
| |
− | **Conectarnos
| |
− | **Seleccionar
| |
− | Normalmente también
| |
− | **Realizaremos Consulta o inserciones
| |
− | **Procesar información
| |
− | **Cerrar la base de datos
| |
− | Para realizar estas acciones disponemos de diversas funciones específicas dentro de PHP
| |
− | </div>
| |
− |
| |
− |
| |
− | <div class=slider>
| |
− | ===CONECTAR AL SERVIDOR MYSQL===
| |
− | resource mysql_connect($hostname, $user, $password);
| |
− | *Los parámetros de tipo string identificarían
| |
− | **$hostname = nombre del host
| |
− | **$user = usuario
| |
− | **$password = contraseña
| |
− | *Esta función retorna el recurso de la conexión
| |
− | **FALSO si no se ha conectado
| |
− | </div>
| |
− |
| |
− |
| |
− | <div class=slider>
| |
− | ===SELECCIONAR LA BASE DE DATOS===
| |
− | Dentro del servidor tendremos diferentes bases de datos
| |
− | Antes de trabajar con una debemos seleccionarla
| |
− | Si no la seleccionamos se intentará operar con la última seleccionada
| |
− | bool mysql_select_db ($namedatabase, $conexion)
| |
− | *Ejemplo
| |
− | <?php
| |
− | $conexion = mysql_connect('localhost', 'manolo', 'manolo');
| |
− | if (!$conexion) {
| |
− | die('No conectado : ' . mysql_error());
| |
− | }
| |
− | // Seleccionar alumnos como base de datos activa
| |
− | $db_seleccionada = mysql_select_db('alumnos', $conexion);
| |
− | if (!$db_seleccionada) {
| |
− | die ('No puedo conectar con la BD alumno : ' . mysql_error());
| |
− | }
| |
− | ?>
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− | ===FUNCIONES die()- mysql_error() y concatenador .===
| |
− | die('texto');
| |
− | Es una función que aborta la ejecución
| |
− | previamente visualiza el mensaje del parámetro por pantalla
| |
− | mysql_error()
| |
− | visualiza el error que da el sistema por el que no ha podido conectar
| |
− | .
| |
− | Es un concatenador de cadenas
| |
− | echo "Esto es una cadena " . "Esta es otra concatenada a la anterior"
| |
− | </div>
| |
− |
| |
− |
| |
− | <div class=slider>
| |
− | ===CREAR CONSULTA===
| |
− | resource mysql_query ( string $consulta );
| |
− | consulta es la consulta a la base de datos
| |
− | <?php
| |
− | $resultado = mysql_query('SELECT * from alumnos');
| |
− | if (!$resultado) {
| |
− | die('Invalid query: ' . mysql_error());
| |
− | }
| |
− | ?>
| |
− | </div>
| |
− |
| |
− |
| |
− | <div class=slider>
| |
− | ===PROCESAR INFORMACIÓN===
| |
− | Ahora ya tenemos los datos con los que queremos trabajar
| |
− | los tenemos en una variable de tipo consulta
| |
− | ahora debemos recorrela
| |
− | La variable es como un vector de filas que hay que recorrer
| |
− | array mysql_fetch_row ( resource $resultado )
| |
− | esta función devuelve falso o 0 cuando ya no retorna más filas
| |
− | si no retorna la siguiente fila de la consulta
| |
− | la forma de acceder a cada campo será por el índice del array
| |
− | array[0] .. array[n]
| |
− |
| |
− | <?php
| |
− | $resultado = mysql_query("SELECT nombre, apellido, direccion FROMM alumnos");
| |
− | if (!$resultado) {
| |
− | die("Could not run query: " . mysql_error();
| |
− | }
| |
− | $c=0;
| |
− | while ($alumno=mysql_fetch_row($result)){
| |
− | echo "alumno $c nombre $alumno[0] apellido $alumno[1] direccion $alumno[3]");
| |
− | $c++;
| |
− | ?>
| |
− | </div>
| |
− |
| |
− | <div class=slider>
| |
− |
| |
− | ===GESTIÓN DE BASE DE DATOS===
| |
− | Conocer todas las bases de datos
| |
− | mysql_connect('localhost', 'mysql_user', 'mysql_password');
| |
− | Todas las tablas de una base de datos
| |
− | resource mysql_list_tables ( string $database [, resource $link_identifier ])
| |
− | </div>
| |
− | Los campos de una tabla
| |
− | resource mysql_list_fields ( string $database_name , string $table_name [, resource $link_identifier])
| |
− | </div>
| |
− | <div class=slider>
| |
− | =FUNCIONES=
| |
− | </div>
| |
− | <div class=slider>
| |
− | ===Definición de funiones=
| |
− | function ‘’’nombre_de_funcion’’’ (’’’’lista_de_parametros’’’’){
| |
− | ’’’’codigo a ejecutar ’’’’
| |
− | }
| |
− | </div>
| |
− | <div class=slider>
| |
− | ===Ejemplo de funcion===
| |
− | *Realiza una función que convierta de mayúsculas a minúsculas
| |
− | </div>
| |
− | <div class=slider>
| |
− | ===Generar pdf desde el código php===
| |
− | pdf=new mPDF();
| |
− | $mpdf->WriteHTML('<p>Hello World</p>');
| |
− | $mpdf->Output();
| |
− | </div>
| |
− | |}
| |