Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

95
Instituto de Desarrollo de tecnologías de la información Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y Curso Básico de PHP y MySQL MySQL

Transcript of Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Page 1: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Curso Básico de PHP y MySQLCurso Básico de PHP y MySQL

Page 2: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

AudienciaAudiencia

Cualquiera que necesite DESARROLLAR administrar, coordinar, o supervisar proyectos de desarrollo de software utilizando un Lenguaje de PROGRAMACION orientado a web:

• INGENIEROS DE SOFTWARE• PROGRAMADORES

Page 3: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Objetivos del CursoObjetivos del Curso

Obtener los conocimientos y las destrezas básicas para: Desarrollar programas en PHP, utilizando estructuras de control (decisión y repetitivas), así como construcción de sentencias SQL y forma general de petición a la Base de Datos MYSQL.

Page 4: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Agenda del CursoAgenda del Curso

• Introducción • Acceder a contenidos dinámicos • Trabajo con variables y constantes • Uso de Operadores • Funciones de variables y condicionales • Uso de Loops • Almacenar y recuperar datos de archivos • Funciones para trabajar con archivos • Arrays numéricos y asociativos • Arrays multidimensionales • Clasificación de Arrays

Page 5: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Agenda del CursoAgenda del Curso

• Uso de funciones para modificar Arrays • funciones para modificar strings. • Formatear, cortar y unir strings. • Buscar y reemplazar substrings • Introducción a las Expresiones Regulares • Reutilización de código: uso de require e include. • Declaración y llamada a funciones • Parámetros y alcance de las funciones

Page 6: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Agenda del CursoAgenda del Curso

• Diseñar una base de datos para la web • Crear una base de datos para la web • Tablas y campos en las bases de datos • Trabajar con Bases de Datos • Consultar, Modificar y Eliminar datos de la Base de Datos • Acceder a la base de datos MySQL desde la Web con

PHP • Añadir información a la base de datos desde la web con

PHP

Page 7: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

INTRODUCCIONINTRODUCCION

Page 8: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

¿ Que es PHP ?¿ Que es PHP ?

Es un preprocesador de hypertexto porque reemplaza los fragmentos de codigo PHP por la salida generada por estos dentro del mismo HTML que estamos generando. Otros programas que se utilizan para servir paginas web con contenido dinamico, generan el HTML de cero, en cambio PHP va completando el HTML, de esta manera podemos diseñar una pagina web en un editor visual sin problemas y despues agregar PHP para el contenido dinamico.

Page 9: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Acceder a contenidos dinámicos Acceder a contenidos dinámicos

Empezamos el estudio de PHP, el código de programación de lado del servidor . La necesidad de trabajar desde un servidor; Uso de Appserver; Creación de un formulario de pedido; Embeber el formulario; Embeber PHP en HTML; Etiquetas PHP; Declaraciones PHP; espacios en blanco y comentarios; Estilos de etiquetas PHP; Añadir contenido dinámico; Llamar a funciones; la Función date( ).

Page 10: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Entorno de trabajoEntorno de trabajo

Compuesta por apache , php y mysql.

•Appserv open project www.appservnetwork.com•EasyPHP http://www.easyphp.org/•Uniform Server http://www.uniformserver.com/•Wamp Server http://www.wampserver.com/en/•XAMPP http://www.apachefriends.org/en/xampp.html

Page 11: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Veamos un ejemplo:Veamos un ejemplo:

Codigo:

<html> <body><?php echo "Esto es lo que se va enviar en lugar del codigo PHP";?> </body></html>

Page 12: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Que sucede cuando el navegador pide una pagina PHP

Page 13: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

ComentariosPara escribir comentarios en nuestro codigo fuente lo hacemos de la siguiente manera:

// Comentario en una linea

/* Comentario que puede ser de varias lineas */

Estilo de etiquetas1. <?php echo("si quieres servir documentos XHTML o XML, haz como aqu&iacute;\n"); ?>

2. <? echo ("esta es la m&aacute;s simple, una instrucci&oacute;n de procesado SGML \n"); ?><?= expression ?> Esto es una abreviatura de "<? echo expression ?>"

3. <script language="php">echo ("muchos editores (como FrontPage) no aceptan instrucciones de procesado");</script>

4. <% echo ("Opcionalmente, puedes usar las etiquetas ASP"); %>

Page 14: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Trabajo con variables y constantesTrabajo con variables y constantes

Page 15: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

VARIABLEpodría definirse como una posición de memoria creada para introducir o asignar cualquier valor o dato. Durante la ejecución del script el valor de la variable puede "variar"(valga la redundancia) tanto de tipo como de valor.

EN PHP, las variables SON definidas anteponiendo el símbolo dólar ($) al nombre de la variable que estamos definiendo.

$cadena="5"; //esto es una cadena

$entero=3; //esto es un entero

Integer Números enteros positivos y negativos

Double Números decimales o de coma flotante

String Cadenas de texto

Boolean Valores True o False

Array Tipo especial de colección de valores

Object Tipo especial de dato complejo

Page 16: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Convertir tiposPHP es un lenguaje que realiza la conversión de tipos en función de los operandos y del operador. De esta forma si intentamos sumar la cadena '10' y el número 20 la acción que realizaría sería convertir la primera variable a numérica y de esa forma podría sumar 10+20=30.

Aparte de que PHP en algunos casos realiza la conversión existen dos funciones especiales del propio lenguaje las cuales nos permiten saber el tipo de variable que estamos usando y también pueden convertir el tipo de variable:

gettype() Recibe el tipo de variable que es

settype($variable,'tipo variable') Transforma el tipo de variable del modo actual a el modo que le introduzcamos.

Page 17: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

TipoLos posibles valores de tipo son:

"boolean" (o, desde PHP 4.2.0, "bool")

"integer" (o, desde PHP 4.2.0, "int")

"float" (únicamente posible desde PHP 4.2.0, para versiones anteriores use la variante obsoleta "double")

"string"

"array"

"object"

"null" (desde PHP 4.2.0)

Page 18: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Ejemplo de settype()Ejemplo de settype()

<?php$foo = "5bar"; // string$bar = true; // boolean

settype($foo, "integer"); // $foo es ahora 5 (integer)settype($bar, "string"); // $bar es ahora "1" (string)

?>

Page 19: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Constante

Son valores que se van a mantener constantes a lo largo de la ejecución del script y que posiblemente queramos usar a lo largo del script un gran número de veces. Para ello usamos la siguiente sintaxis:

define("nombre de la constante", valor);

define(“pi", 3.1416);

Page 20: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Uso de OperadoresUso de Operadores

Page 21: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Operadores

Al desarrollar cualquier programa empleamos normalmente operadores que nos sirven para realizar diversas operaciones que le otorgan un cierto grado de complejidad a nuestros programas, ya que, de otro modo el programa realizaría siempre lo mismo y por tanto no seria un programa útil.

Page 22: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Operadores Existentes en PHPOperadores Existentes en PHP

• Operadores de Aritmética

• Operadores de Asignación

• Operadores Bit a Bit

• Operadores de Comparación

• Operadores de Control de Errores

• Operadores de ejecución

• Operadores de Incremento/Decremento

• Operadores de Lógica

• Operadores de Cadena

• Operadores de Matrices

• Operadores de Tipo

Page 23: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Operadores aritméticosOperadores aritméticos

+ Suma dos valores

- Resta dos valores (o pasa a negativo un valor)

* Multiplica dos valores

/ Divide dos valores

% Resto de dividir dos valores

++ Incremento en una unidad

-- Decremento en una unidad

Page 24: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Operadores de asignaciónOperadores de asignación

= Asigna a la parte derecha el valor izquierdo

+= Realiza la suma de la derecha con la izquierda y la asigna a la derecha

-= Realiza la resta de la derecha con la izquierda y la asigna a la derecha

*= Realiza la multiplicación de la derecha con la izquierda y la asigna a la derecha

/= Realiza la división de la derecha con la izquierda y la asigna a la derecha

%= Se obtiene el resto y se asigna

.= Concatena el valor de la izquierda con la derecha y lo asigna a la derecha

Page 25: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Operadores lógicosOperadores lógicos! Operador NO o negacion.Si era true pasa a false y viceversa

and Operador Y, si ambos son verdaderos vale verdadero

or Operador O, vale verdadero si alguno de los dos es verdadero

xor Verdadero si alguno de los dos es true pero nunca ambos

&& True si ambos lo son

|| True si alguno lo es

Page 26: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Operadores condicionalesOperadores condicionales

== Comprueba si dos números son iguales

!= Comprueba si dos números son distintos

> Mayor que, devuelve true en caso afirmativo

< Menor que, devuelve true en caso afirmativo

>= Mayor o igual

<= Menor o igual

Page 27: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Funciones de variables y Funciones de variables y condicionalescondicionales

Page 28: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Precedencia de OperadoresPrecedencia de Operadores

La precedencia de un operador indica qué tan "cerca" se agrupan dos expresiones.

Por ejemplo, en la expresión 1 + 5 * 3, la respuesta es 16 y no 18, ya que el operador de multiplicación ("*") tiene una mayor precedencia que el operador de adición ("+"). Los paréntesis pueden ser usados para marcar la precedencia, si resulta necesario.

Por ejemplo: (1 + 5) * 3 evalúa a 18. Si la precedencia de los operadores es la misma, se utiliza una asociación de izquierda a derecha.

Page 29: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

La precedencia de operadores en PHP es la base de partida para usar los operadores, debemos entender como se evalúan las operaciones. Existe una lista un poco extensa de la precedencia sobre todos los operadores, sin embargo de momento solo voy a mencionar los más usados.

• *, /, %

• +, -

• ^

• &&

• ||

Los operadores que se encuentran en la misma linea tienen el mismo grado de precedencia, en este caso si nos encontramos 2 o mas operadores con la misma jerarquía, debemos evaluarlos de izquierda a derecha.

Page 30: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Ejemplo.php

<?php

$A=5;

$B=10;

$R=$A*$B/2;

echo "El resultado es: ".$R;

?>

En este ejemplo comenzamos a evaluar de izquierda a derecha, primero multiplicamos $A*$B (5*10) por lo que nos daría 50 y este resultado lo dividimos entre 2, que resultaría 25, ahora veamos otro ejemplo.

Ejemplo2.php

<?php

$A=5;

$B=10;

$R=$A+5*$B/2;

echo "El resultado es: ".$R;

?>

En este ejemplo primero se evalúa 5*$B (5*10) que da 50 y este resultado se divide entre 2, de lo cual resultan 25 y ya por ultimo este resultado se le suma a $A (5) lo que da 30, como podemos ver la suma la evaluamos después de terminar con la multiplicación y división.

Page 31: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Uso de LoopsUso de Loops

Page 32: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

WHILEWHILESin duda el bucle más utilizado y el más sencillo. Lo usamos para ejecutar las instrucciones contenidas en su interior siempre y cuando la condición definida sea verdadera. La estructura sintáctica es la siguiente.

while (condición)

{

instruccion1;

instruccion2;

...

}

Un ejemplo sencillo es este bucle que aumenta el tamaño de la fuente en una unidad a cada nueva vuelta por el bucle:

<?

$size=1;

While ($size<=6)

{

echo"<font size=$size>Tamaño $size</font><br>n";

$size++;

}

?>

Page 33: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Bucle do/whileBucle do/whileEste tipo de bucle no difiere en exceso del anterior. La sintaxis es la siguiente:

do

{

instruccion1;

instruccion2;

...

}

while (condición)

La diferencia con respecto a los bucles while es que este tipo de bucle evalúa la condición al final con lo que, incluso siendo falsa desde el principio, éste se ejecuta al menos una vez.

Page 34: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Bucle FORBucle FORPHP está provisto de otros tipos de bucle que también resultan muy prácticos en determinadas situaciones. El más popular de ellos es el bucle for que, como para los casos anteriores, se encarga de ejecutar las instrucciones entre llaves. La diferencia con los anteriores radica en cómo se plantea la condición de finalización del bucle. Para aclarar su funcionamiento vamos a expresar el ejemplo de bucle while visto en el capítulo anterior en forma de bucle for:

<?php

For ($size=1;$size<=6;$size++)

{

echo"<font size=$size>Tamaño $size</font><br>n";

}

?>

Page 35: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Bucle foreachBucle foreachEste bucle, implementado en las versiones de PHP4, nos ayuda a recorrer los valores de un array lo cual puede resultar muy útil por ejemplo para efectuar una lectura rápida del mismo. Recordamos que un array es una variable que guarda un conjunto de elementos (valores) catalogados por claves.

La estructura general es la siguiente:

Foreach ($array as $clave=>$valor)

{

instruccion1;

instruccion2;

…;

}

Un ejemplo práctico es la lectura de un array lo cual podría hacerse del siguiente modo:

<?php

$moneda=array("España"=> "Peseta","Francia" => "Franco","USA" => "Dolar");

Foreach ($moneda as $clave=>$valor)

{

echo "Pais: $clave Moneda: $valor<br>";

}

?>

Page 36: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Break y continueBreak y continue

Estas dos instrucciones se introducen dentro de la estructura y nos sirven respectivamente para escapar del bucle o saltar a la iteración siguiente. Pueden resultarnos muy prácticas en algunas situaciones.

Durante una iteración de un bucle podemos saltar directamente a la siguiente iteración, sin seguir con la actual, con la instrucción continue.

También podemos detener completamente las repeticiones de cualquier bucle con break, lo que parará la ejecución de la iteración actual y de las siguientes que pudiera haber.

Page 37: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Almacenar y recuperar datos de Almacenar y recuperar datos de archivosarchivos

Page 38: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Temas clave que veremosTemas clave que veremos• Salvar datos para usos posteriores• Abrir un archivo• Crear y escribir en un archivo• Cerrar un archivo• Leer de un archivo• Bloquear archivos• Borrar archivos• Otras funciones de archivos• Comparar con uso de Base de Datos

Page 39: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

HAY 3 PASOS PARA ESCRIBIR DATOS A UN ARCHIVOHAY 3 PASOS PARA ESCRIBIR DATOS A UN ARCHIVO1. Abre el archivo. Si el fichero no existe habra que crearlo

2. Escribe los datos en el archivo

3. Cierra el archivo

1. Abrir el archivo

2. Leer datos en del archivo

3. Cierra el archivo

HAY 3 PASOS PARA LEER DATOS A UN ARCHIVOHAY 3 PASOS PARA LEER DATOS A UN ARCHIVO

Page 40: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Tres elecciones que debemos hacer al abrir un archivoTres elecciones que debemos hacer al abrir un archivo

1. Puede que queramos abrir un archivo solo para leerlo, solo para escribir en el, o para ambas cosas, lectura y escritura

2. Si escribimos a un archivo, puede que queramos sobreescribir cualquier contenido existente o añadir los nuevos datos al final de los ya existentes

3. Si estas intentando escribir a un archivo en un sistema que diferencia entre archivos de texto y binarios, puede que lo quieras especificar

Page 41: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Funciones para trabajar con archivosFunciones para trabajar con archivos

Page 42: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

• Leer de un archivo;

• Abrir un archivo con fopen( );

• Saber cuando parar con feof( );

• Leer línea a línea con fgets( ), fgetss( ), y fgetcsv( );

• Leer archivos completos con readfile( ), fpassthru( ), y file( );

• Leer un carácter con fgetc( );

• Leer un tamaño arbitrario con fread( );

• Otras funciones: file_exists( ), filesize( ), unlink( )

Page 43: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

RESUMEN DE LOS MODOS DE ARCHIVOS PARA FOPENRESUMEN DE LOS MODOS DE ARCHIVOS PARA FOPENmodomodo DescripciónDescripción

'r' Apertura para sólo lectura; ubica el apuntador de archivo al comienzo del mismo.

'r+' Apertura para lectura y escritura; ubica el apuntador de archivo al comienzo del mismo.

'w' Apertura para sólo escritura; ubica el apuntador de archivo al comienzo de éste y lo trunca a una longitud de cero. Si el archivo no existe, intenta crearlo.

'w+' Apertura para lectura y escritura; ubica el apuntador de archivo al comienzo de éste y lo trunca a una longitud cero. Si el archivo no existe, intenta crearlo.

'a' Apertura para sólo escritura; ubica el apuntador de archivo al final del mismo. Si el archivo no existe, intenta crearlo.

'a+' Apertura para lectura y escritura; ubica el apuntador de archivo al final del mismo. Si el archivo no existe, intenta crearlo.

'x' Creación y apertura para sólo escritura; ubica el apuntador de archivo al comienzo de éste. Si el archivo ya existe, la llamada a fopen() fallará devolviendo FALSE y generando un error de nivel E_WARNING. Si el archivo no existe, intenta crearlo. Esto es equivalente a especificar las banderas O_EXCL|O_CREAT en la llamada de sistema open(2) interna.

'x+' Creación y apertura para lectura y escritura; ubica el apuntador de archivo al comienzo de éste. Si el archivo ya existe, la llamada a fopen() fallará devolviendo FALSE y generando un error de nivel E_WARNING. Si el archivo no existe, intenta crearlo. Esto es equivalente a especificar las banderas O_EXCL|O_CREAT en la llamada de sistema open(2) interna.

Page 44: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Arrays numéricos y asociativosArrays numéricos y asociativos

Page 45: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

MATRICES (ARRAY)MATRICES (ARRAY)En la realización de un script en PHP en múltiples ocasiones existen variables que tienen información similar y se procesan de forma semejante. Para ello PHP (y otros lenguajes) poseen un elemento denominado array. Un array es un conjunto de variables agrupadas bajo un único nombre. Cada variable dentro de la matriz se denomina elemento. Dentro de la misma matriz pueden existir variables de diferentes tipos y no es necesario que sean todas del mismo tipo.

Hay que diferenciar entre los dos tipos de matrices existentes:

- Indexada: Aquella cuyo acceso a los elementos se realiza por la posición que ocupan dentro de la estructura (se inician siempre desde la posición 0). Ejemplo: $amigos[0]

- Asociativa: Es aquella en la que los elementos están formados por pares clave-valor y el acceso se realiza proporcionando una determinada clave. Ejemplo: $amigos['edad']

Page 46: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Arrays asociativosArrays asociativos

Como ya sabemos, un array sencillo esta formado por conjuntos de parejas indice => valor, o como suele expresarse en inglés, key, value. Hasta ahora hemos manejado un ejemplo con indices o keys numericos (tamben comocidos como arrays escalares), pero tambien podemos usar strings como indices, es decir, cadenas de texto. Este tipo de array es el array asociativo:

<?php

$mis_ciudades = array(

"madrid"=>"madrid",

"cataluña"=>"barcelona",

"aragon"=>"zaragoza");

?>

Las ventajas son evidentes: imagina por ejemplo un array agenda construido a base de parejas email =>tu email, telefono => tu telefono etc. O por ejemplo para construir menus de páginas web. Sin ir mas lejos los menus que puedes ver en este manual estan construidos a base de llamadas a distintos arrays:

<?php

$temas_disp = array("index.php"=>"Introducción al ftp",

"comandos.php"=>"Comandos básicos",

"chmod.php"=>"CHMOD, asignando permisos",

"comandosftp.php"=>"Comandos ftp“ ); ?>

Page 47: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

MATRICES (ARRAY)MATRICES (ARRAY)Para crear matrices en PHP existen dos formas:

- De forma implícita, que consistiría en indicarle el elemento(ya sea proporcionando su posición o su clave).Ejemplo: $nombres[0]='Javier';

En caso de no indicarle una posición el array tomara el valor siguiente al ultimo valor introducido.Ejemplo: $nombres[]='Lucas' // tomaría como valor 1 ya que lo ultimo introducido era 0.

- Mediante array() en el cual le pasamos los elementos como parámetros. En caso de matriz indexada toman la posición que ocupan en la creación de la matriz, mientras que los de la matriz asociativa se les asigna su valor mediante "=>".Ejemplo: $amigo=array('Nombre'=>'Jose','Direccion'=>'Neopatria 21');

Cabe destacar que PHP no solo se limita a la existencia de matrices por sí solo sino que existen matrices de matrices, o lo que es lo mismo, matrices multidimensionales. Ejemplo: $amigos[2]['Pedro']

Page 48: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Recorrido de una matriz Recorrido de una matriz

Disponemos de diversas herramientas para poder acceder a los elementos de una matriz. En cada momento se mantiene una referencia del elemento de la matriz al que se tiene acceso, por tanto, para recorrer una matriz bastará con modificar dicha referencia. En caso de una matriz indexada el recorrido se realizara mediante un bucle y para ello debemos saber el número de elementos totales que posee la matriz. Para ello nos basamos de la función count(variable) donde variable representa la variable de la que se quiere obtener el número de elementos. Si variable es una matriz devuelve el número de elementos que tiene, devuelve 1 si solo tiene un elemento (aunque no sea matriz) y 0 si no tiene ningún valor.

Otra función que nos permite saber el número de elementos es sizeof(matriz) .

Para acceder a los elementos de una matriz asociativa debemos usar la función ecah() que recupera el par formado por clave y valor y además avanza una posición de puntero. Su sintaxis es each(matriz) y los valores que devuelve la matriz asociativa son los siguientes:

Clave Significado

0 Nombre de la clave1 Valor asociativo de la claveKey Nombre de la clave value Valor asociado a la clave

Page 49: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

La función que realiza el constructor list(variable1,variable2...variableN) es asignar los valores del elemento actual de una matriz a las variables indicadas como parámetro.

Navegación sobre matrices

Cuando se trata de matrices indexadas la navegación es sencilla ya que tan solo basta acceder al elemento que queremos mostrar, pero al tratarse de alguna matriz asociativa no se puede aplicar el mismo tratamiento. Para ello existen un conjunto de funciones prefabricadas que nos permiten realizar multitud de acciones:

Sintaxis Acciónreset(matriz); El puntero interno vuelve a la primera posiciónend(matriz); El puntero interno va a la ultima posiciónnext(matriz); El puntero va al elemento siguienteprev(matriz); Accede al elemento anteriorcurrent(matriz); Devuelve el contenido del elemento actual

Page 50: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Inserción de elementos

Para la inserción de elementos dentro de un array existen una serie de funciones que nos permiten añadir elementos. Entre ellas destacamos:

array_push(matriz,variable1,variableN);

Añade elementos al final de la función y su longitud se incrementara tantos elementos como se hayan añadido

array_unshift(matriz,variable1,variableN);

Añade elementos al principio de la función desplazando a los otros tantas posiciones como elementos haya.

array_pad(matriz,nuevo_tamaño,valor_relleno);

Aumenta el tamaño de la matriz empleando un valor proporcionado como relleno.

Page 51: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Eliminación de elementos

array_shift(matriz);

Elimina el primer elemento de la matriz

array_pop(matriz); Elimina el último elemento de la matriz

array_splice(entrada,pos_ini,[tamaño],[sustitutos]);

Se usa para reemplazar o borrar el contenido de una porción de matriz, para ello debemos especificar la posición desde la cual queremos iniciar el borrado o sustitución, el tamaño o número de elementos que se verán afectados y los sustitutos (en caso que deseemos sustituirlo por algún elemento).

array_keys(matriz,[valor buscado]);

Se emplea cuando deseamos eliminar un elemento cuya posición desconocemos.

array_values(matriz); Devuelve una matriz indexada con todos los valores almacenados en la matriz pasada como parámetro.

Page 52: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Arrays multidimensionalesArrays multidimensionales

Page 53: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Arrays MultidimensionalesArrays Multidimensionales

Un array multidimensional es simplemente un array en el que al menos uno de sus valores es, a su vez, un array:

<?php

$agenda = array("domicilio" => "calle tal cual",

"telefono" => $telefonos,

"trabajo" => "empresa tal cual");

$telefonos = array("trabajo" => "7296489",

"casa" => "5689524",

"movil" => "9558987");

?>

Page 54: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Clasificación de ArraysClasificación de Arrays

Page 55: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Ordenación de matricesOrdenación de matrices

Criterio FunciónOrden ascendente(matriz indexada) sort(matriz)

Orden descendente(matriz indexada) rsort(matriz)

Orden ascendente por valor(matriz asociativa) asort(matriz)

Orden descendente por valor(matriz asociativa) arsort(matriz)

Orden ascendente por clave(matriz asociativa) ksort(matriz)

Orden descendente por clave(matriz asociativa) krsort(matriz)

Page 56: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Uso de funciones para modificar Uso de funciones para modificar ArraysArrays

Page 57: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Manipulación masiva de matrices

array_walk(matriz,nombre_de_la_funcion,lista_parametros);

Se emplea para realizar el mismo proceso definido en la función en todos los elementos incluidos.

Obtención de submatrices

array_slice(matriz,posicion,tamaño);

Permite extraer una secuencia de elementos de una matriz. Los parámetros a pasarle son la matriz en la cual queremos extraer dichos elementos, la posición desde la que se inicia la extracción y el tamaño de la extracción (posiciones que abarcamos a partir de la inicial).

Page 58: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Otras funciones

compact() Devuelve una matriz asociativa a partir de un numero indeterminado de parámetros

extract() Crea variables desde matriz asociativa

array_unique() Devuelve matriz sin datos repetidos ya que algunos se eliminan

array_reverse() Devuelve matriz con mismos elementos pero en orden inverso

shuffle() Modifica el orden de elementos de forma aleatoria

array_count_values() Devuelve una matriz asociativa que contiene frecuencias de repetición de los valores de la matriz

in_array() Permite comprobar si un valor esta en la matriz

array_merge() Combina elementos de dos matrices en 1.

Page 59: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Funciones para modificar stringsFunciones para modificar strings

Page 60: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

•formateo de strings; la función nl2br( ) para formatear con etiquetas html; •uso de formateado con print( );• tipo de códigos de especificaciones de conversión.•Completar con Manual

Page 61: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Formatear, cortar y unir stringsFormatear, cortar y unir strings

Page 62: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

•Funciones para cambiar el case del string; strtoupper( ); strtolower( ); ucfirst( ); ucwords( ); •Formatera strings para almacenamiento con AddSlashes( ) y StripSlashes( ); •Unir y cortar strings con funciones string ;• usar explode( ), implode( ) y join( ); •Usar substr( ).

Page 63: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Buscar y reemplazar substringsBuscar y reemplazar substrings

Page 64: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

•Comparar strings; Ordenar strings con strcmp( ); •Comprobar tamaño de un string con strlen( );• Comparar y reemplazar Substrings con funciones string; •Encontrar Strings en Strings: strstr( ), strchr( ), strrchr( ), stristr( ); •Encontrar la posición de un substring: strpos( ), strrpos( ); •Reemplazar Substrings: str_replace( ), substr_replace( ).

Page 65: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Introducción a las Expresiones Introducción a las Expresiones RegularesRegulares

Page 66: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Las expresiones regulares permiten definir patrones de coincidencia y aplicarlas a cadenas de texto para saber si la cadena (o parte de ella) cumple el patrón e incluso realizar transformaciones de la cadena.

En PHP existen dos sistemas de expresiones regulares:

Expresiones regulares POSIX extendido:

Introducidas en PHP 2.0b7 en 1996, y consideras obsoletas a partir de PHP 5.3.0 (junio de 2009).

Siguen la recomendación POSIX 1003.2. POSIX (Portable Operating System Interface) es un conjunto de normas redactadas por el IEEE (The Institute of Electrical and Electronics Engineers) que definen la API de Unix.

Las funciones correspondientes empiezan por "ereg".

Expresiones regulares compatibles con Perl (en inglés, PCRE):

Introducidas en PHP 4.2.0 en 2002.

Siguen la sintaxis y semánticas del lenguaje de programación Perl 5. PHP 4.2.0 y posteriores incluyen la biblioteca de código libre escrita en C PCRE (Perl Compatible Regular Expressions).

Las funciones correpondientes empiezan por "preg".

Dado que las funciones ereg (POSIX extendido) se consideran obsoletas a partir de PHP 5.3.0 (publicado en junio de 2009), se recomienda utilizar únicamente las funciones preg (PCRE).

Page 67: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Expresiones regulares compatibles con Perl

Funciones de expresiones regulares compatibles con Perl La función de expresiones regulares compatibles con Perl preg_match($patron, $cadena [, $matriz_coincidencias [, $modificadores [, $desplazamiento]]]) compara una cadena con un patrón y devuelve 1 si el patrón ha coincidido o 0 si no. La primera coincidencia encontrada se puede guardar en el argumento opcional $matriz_coincidencias y, si se añade el modificador PREG_OFFSET_CAPTURE, se guarda también en el argumento opcional $matriz_coincidencias la posición de la coincidencia encontrada. El argumento opcional $desplazamiento es un número que permite indicar en qué carácter se inicia la búsqueda.

Los patrones deben empezar y acabar con el carácter / (barra).<?php

$cadena1 = "1234567";

$cadena2 = "abcdefg";

$patron = "/^[[:digit:]]+$/";

if (preg_match($patron, $cadena1)) {

print "<p>La cadena $cadena1 son sólo números.</p>\n";

} else {

print "<p>La cadena $cadena1 no son sólo números.</p>\n";

}

if (preg_match($patron, $cadena2)) {

print "<p>La cadena $cadena2 son sólo números.</p>\n";

} else {

print "<p>La cadena $cadena2 no son sólo números.</p>\n";

}

?>

Page 68: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Reutilización de código: uso de require Reutilización de código: uso de require e includee include

Page 69: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

INCLUSION DE CODIGO DESDE UN FICHEROINCLUSION DE CODIGO DESDE UN FICHERO

En ocasiones es necesario cargar el mismo archivo en diferentes scripts y de esa forma no repetir el mismo código en diversos scripts. Parece entonces razonable que debe existir algún método o forma de cargar algún archivo externo y de esa forma generar páginas web mas dinámicas.

A este efecto PHP dispone de dos instrucciones para poder cargar archivos:

require("archivo");

Cuando se incluye un archivo con require el interprete abandona el modo PHP y entra en modo HTML, una vez abierto el fichero lo incluye hasta su ultima línea y posteriormente abandona el modo HTML para volver a posicionarse en el modo PHP. Su principal diferencia con include() es que no permite la carga condicional.

include("archivo");

Cuando se incluye un archivo con require el interprete abandona el modo PHP y entra en modo HTML, una vez abierto el fichero lo incluye hasta su ultima línea y posteriormente abandona el modo HTML para volver a posicionarse en el modo PHP. Permite la carga condicional, es decir, que podemos cargar un archivo o otro según si se cumple o no una condición.

Page 70: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Declaración y llamada a funcionesDeclaración y llamada a funciones

Page 71: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Funciones en PHPFunciones en PHPUna de las herramientas mas importantes en cualquier lenguaje de programación son las funciones. Una función consiste en un conjunto de rutinas y acciones que a lo largo del script van a ser ejecutadas multitud de veces agrupados en una FUNCION y desde cualquier punto del script puede ser llamada y ejecutada. A su vez, esta función puede recibir parámetros externos de los cuales dependa el resultado de una función.

Las funciones deben ser colocadas siempre antes de realizar la llamada a la función (como es lógico). La sintaxis de una función es la siguiente:

function nombre(parámetros) {

instrucciones de la función

}

para llamar a la función sería de la siguiente forma: nombre(parámetros)

Page 72: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Funciones en PHPFunciones en PHPUn ejemplo para entender el uso de funciones es el siguiente:

Crearemos una función que realice la suma de dos números y muestre el resultado

function sumar($sumando1,$sumando2){

$ suma=$sumando1+$sumando2

echo $sumando1."+".$sumando2."=".$suma;

}

sumar(5,6)

Page 73: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Parámetros y alcance de las funcionesParámetros y alcance de las funciones

Page 74: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Un hecho relevante que cabe destacar es que las variables que declaremos dentro de la función solo existirán o tendrán dicho valor dentro de la función.

Existen casos en los cuales no sabemos el número de parámetros que le pasaremos a la función y en estos casos debemos usar las funciones creadas al efecto como son:

func_num_args() Numero de parámetros que se le han pasado a la función

func_get_args() Devuelve un elemento de los que forman la lista de argumentos

Page 75: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Paso de parámetros

Los parámetros son los datos que reciben las funciones y que utilizan para realizar las operaciones de la función. Una función puede recibir cualquier número de parámetros, incluso ninguno. A la hora de definir la función, en la cabecera, se definen los parámetros que va a recibir.

function f1 ($parametro1, $parámetro2)

Así definimos una función llamada f1 que recibe dos parámetros. Como se puede observar, no se tiene que definir el tipo de datos de cada parámetro.

Los parámetros tienen validez durante la ejecución de la función, es decir, tienen un ámbito local a la función donde se están recibiendo. Cuando la función se termina, los parámetros dejan de existir.

Page 76: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Los parámetros se pasan por valor El paso de parámetros en PHP se realiza por valor. "Por valor" es una manera típica de pasar parámetros en funciones, quiere decir que el cambio de un dato de un parámetro no actualiza el dato de la variable que se pasó a la función. Por ejemplo, cuando invocamos una función pasando una variable como parámetro, a pesar de que cambiemos el valor del parámetro dentro de la función, la variable original no se ve afectada por ese cambio. Puede que se vea mejor con un ejemplo:

function porvalor ($parametro1) {

$parametro1="hola";

echo "<br>" . $parametro1; //imprime "hola"

}

$mivariable = "esto no cambia";

porvalor ($mivariable);

echo "<br>" . $mivariable; //imprime "esto no cambia"

Esta página tendrá como resultado:

hola

esto no cambia

Page 77: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Paso de parámetros por referencia En contraposición al paso de parámetros por valor, está el paso de parámetros por referencia. En este último caso, el cambio del valor de un parámetro dentro de una función sí afecta al valor de la variable original.

Podemos pasar los parámetros por referencia si, en la declaración de la función, colocamos un "&" antes del parámetro.

<?php

function porreferencia(&$cadena)

{

$cadena = 'Si cambia';

}

$str = 'Esto es una cadena';

porreferencia ($str);

echo $str; // Imprime 'Si cambia'

?>

Este script mostrará por pantalla 'Si cambia'.

Page 78: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Parámetros por defecto Parámetros por defecto Podemos definir valores por defecto para los parámetros. Los valores por defecto sirven para que los parámetros contengan un dato predefinido, con el que se inicializarán si no se le pasa ningún valor en la llamada de la función. Los valores por defecto se definen asignando un dato al parámetro al declararlo en la función.

function pordefecto ($parametro1="pepe";$parametro2=3)

Para la definición de función anterior, $parametro1 tiene como valor por defecto "pepe", mientras que $parametro2 tiene 3 como valor por defecto.

Si llamamos a la función sin indicar valores a los parámetros, estos tomarán los valores asignados por defecto:

pordefecto () // $parametro1 vale "pepe" y $parametro2 vale 3

Si llamamos a la función indicando un valor, este será tenido en cuenta para el primer parámetro.

pordefecto ("hola") // $parametro1 vale "hola" y $parametro2 vale 3

Atención, estamos obligados a declarar todos los parámetros con valores por defecto al final.

Page 79: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Las funciones pueden retornar valores. Para ello se utiliza la palabra "return" indicando a continuación el dato o variable que tienen que retornar. La función puede tener múltiples return, aunque sólo devolverá datos por uno de ellos cada vez porque, cuando se llama a return, se termina la ejecución de la función devolviendo el dato indicado.

Ejemplo de función IVA

Se trata de hacer una función que calcula el IVA y que recibe dos parámetros. Uno el valor sobre el que se calcula y el otro el porcentaje a aplicar. Si no se indica el porcentaje de IVA se entiende que es el 16%.

<? <?

function iva($base,$porcentaje=16) { function iva($base,$porcentaje=16) {

return $base * $porcentaje /100; return $base * $porcentaje /100;

} }

echo iva(1000) . "<br>"; echo iva(1000) . "<br>";

echo iva(1000,7) . "<br>"; echo iva(1000,7) . "<br>";

?> ?>

Si se han entendido bien los conceptos, este ejemplo no puede resultar difícil. La función recibe un parámetro llamado $porcentaje con 16 como valor por defecto. Devuelve el porcentaje dado aplicado a la base también indicada por parámetro.

Así pues, en la primera ejecución de la función, como no se indica el porcentaje, se mostrará el 16% de 1000. En la segunda, se muestra el 7% de mil y en la tercera, el 0% de 10.

Page 80: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Retornar múltiples valores

Una función devuelve un único valor. Si queremos hacer que se puedan devolver varios valores distintos tenemos que recurrir a un truco que consiste en devolver un array.

function small_numbers()

{

return array (0, 1, 2);

}

list ($zero, $one, $two) = small_numbers();

list() se usa para asignar una lista de variables en una sola operación. Después de esa operación, $zero valdrá 0, $one valdrá 1 y $two valdrá 2.

Page 81: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Diseñar una base de datos para la webDiseñar una base de datos para la web

Page 82: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).

En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información.

El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales.

Page 83: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Las bases de datos relacionales pasan por un proceso al que se le conoce como normalización de una base de datos, el cual es entendido como el proceso necesario para que una base de datos sea utilizada de manera óptima.

Entre las ventajas de este modelo están:

• Garantiza herramientas para evitar la duplicidad de registros, a través de campos claves o llaves.

• Garantiza la integridad referencial: Así al eliminar un registro elimina todos los registros relacionados dependientes.

• Favorece la normalización por ser más comprensible y aplicable.

Page 84: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Crear una base de datos para la webCrear una base de datos para la web

Page 85: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

SQL, Structure Query Language (Lenguaje de Consulta Estructurado) es un lenguaje de programacion para trabajar con base de datos relacionales como MySQL, Oracle, etc.

MySQL es un interpretador de SQL, es un servidor de base de datos.

MySQL permite crear base de datos y tablas, insertar datos, modificarlos, eliminarlos, ordenarlos, hacer consultas y realizar muchas operaciones, etc., resumiendo: administrar bases de datos.

Ingresando instrucciones en la linea de comandos o embebidas en un lenguaje como PHP nos comunicamos con el servidor. Cada sentencia debe acabar con punto y coma (;).

La sensibilidad a mayúsculas y minúsculas, es decir, si hace diferencia entre ellas, depende del sistema operativo, Windows no es sensible, pero Linux si.

create database administracion;

Se recomienda usar siempre minúsculas.

Page 86: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Tablas y campos en las bases de datosTablas y campos en las bases de datos

Page 87: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Creación y modificación de Tablas en SQL

Para crear una tabla usaremos la siguiente sintaxis:

CREATE TABLE Nombre_tabla

(Campo1 Tipo_dato Not Null,

Campo2 Tipo_dato,

PRIMARY KEY (Campo3));

Esto nos crearía una tabla con 3 campos de los cuales Campo3 es un valor único, es decir, que no puede ser sobreescrito.

Para eliminar una tabla usaremos:

DROP TABLE Nombre_tabla;

Para modificar la estructura de la tabla usaremos la siguiente sintaxis:

ALTER TABLE Nombre_tabla

[ADD Nombre_atributo Definición] //Añadiría un nuevo campo

[CHANGE AntiguoNombreAtributo NuevoNombreAtributo Definición] //Cambiaría un campo

[DROP NombreAtributo]; //Borraría un campo

Page 88: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Trabajar con Bases de DatosTrabajar con Bases de Datos

Page 89: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

•Introducción al lenguaje SQL; •Insertar datos en la Base de Datos; •Recuperar datos de la Base de Datos; •Recuperar datos con criterios específicos;

Page 90: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Consultar, Modificar y Eliminar datos de la Consultar, Modificar y Eliminar datos de la Base de DatosBase de Datos

Page 91: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

•Recuperar datos de múltiples tablas; •Unión de dos tablas simples; unir más de dos tablas; •Recuperar filas que no cumplan alguna condición; •Uso de otros nombres para las tablas: aliases; •Sumario de los distintos joins; •Recuperar datos en un orden particular; •Agrupar y agregar datos; •Elegir que filas recuperar; •Actualizar registros de la base de datos; •Alterar tablas después de su creación; •Borrar registros de la base de datos; •Eliminar tablas; eliminar bases de datos completas.

Page 92: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Acceder a la base de datos MySQL Acceder a la base de datos MySQL desde la Web con PHPdesde la Web con PHP

Page 93: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

• Usamos las dos herramientas de modo conjunto. Como trabaja la arquitectura de una base de datos para la web; • Pasos básicos en consultas a bases de datos desde la web;• Comprobar y filtrar datos de entrada; • Configurar una conexión; • Elegir una base de datos para usar;• Hacer peticiones a la base de datos; • Recuperar los resultados de la consulta.

Page 94: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

Añadir información a la base de datos desde Añadir información a la base de datos desde la web con PHPla web con PHP

Page 95: Instituto de Desarrollo de tecnologías de la información Curso Básico de PHP y MySQL.

Instituto de Desarrollo de tecnologías de la información

Instituto de Desarrollo de tecnologías de la información

• Terminamos la primera parte del curso con la creación de una aplicación dinámica web con PHP y MySQL: Añadir nueva información en la base de datos; • Otras funciones útiles en PHP; • Crear y Eliminar bases de datos.