Está en la página 1de 90

II.

Programacin de una
aplicacin web
Fundamentos de programacin
web (php)

Insertar cdigo php


Los scripts basados en php estn insertados en el
cdigo HTML. Utilizaremos la forma estndar de insertar
cdigo php.
Sintaxis:

Instrucciones bsicas
Separacin de
instrucciones

Combinando HTML
y PHP

Comentarios

Variables

Las instrucciones se terminan con un punto y coma.

Instrucciones bsicas
Separacin de
instrucciones

Combinando HTML
y PHP

Comentarios

Variables

Es posible combinar el cdigo php y html para producir


bloques html que sern parte de un condicional o un
bucle, tal como se ilustra a continuacin:

Instrucciones bsicas
Separacin de
instrucciones

Combinando HTML
y PHP

Comentarios

Variables

Instrucciones bsicas
Separacin de
instrucciones

Combinando HTML
y PHP

Comentarios

Variables

Instrucciones bsicas
Separacin de
instrucciones

Combinando HTML
y PHP

Comentarios

Variables

Las variables en php no necesitan ser declaradas.


Toda variable debe tener un nombre al que se le debe
anteponer el smbolo $, adems el nombre debe
empezar con una letra.

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

Los enteros se pueden especificar usando una de las


siguientes sintaxis:

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

Las cadenas se especifican usando como delimitadores


las comilla simple () o la comilla doble ()

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

El carcter de la barra invertida (\) se puede utilizar para


indicar caracteres especiales segn el siguiente cuadro:
Secuencia

Significado

\n

Nueva lnea

\r

Retorno de carro

\t

Tabulacin horizontal

\\

Barra invertida

\$

Signo de dlar

Comillas dobles

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

Tambin se puede insertar cdigo html como parte de la


cadena, tal como se ilustra en el siguiente ejemplo:

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

Para concatenar dos cadenas se utiliza el operador


punto (.)

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

Una forma de determinar el tipo de dato de una variable


es utilizando la funcin gettype(), tal como se ilustra a
continuacin:

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

Para especificar un literal boolean se usan las palabras reservadas


true o false. Ambas son insensibles a maysculas o minsculas.
Los siguientes valores son considerados false:
El literal boolean false
El integer 0 (cero)
El float 0.0
El string vaco y el string 0
Un array con cero elementos
Un tipo especial null

Tipos de datos
Enteros

Nmeros de punto
flotante

Cadenas

Averiguar el tipo de
una variable

Valor lgico

Impresin en el navegador
Instruccin echo

Funcin print()

Funcin printf()

Imprime una o ms cadenas. El uso del parntesis es


opcional.

Impresin en el navegador
Instruccin echo

Imprime una cadena

Funcin print()

Funcin printf()

Impresin en el navegador
Instruccin echo

Funcin print()

Imprime una cadena con formato

Funcin printf()

Impresin en el navegador
Instruccin echo

Funcin print()

Funcin printf()

Los tipos posibles se especifican en la siguiente tabla:


Tipo

Descripcin

El argumento es tratado como un entero y presentado como un nmero binario

El argumento es tratado como un entero y presentado como el carcter con dicho valor ASCII

El argumento es tratado como un entero y presentado como un nmero decimal

El argumento es tratado como un double y presentado como un nmero de coma flotante.

El argumento es tratado como un entero y presentado como un nmero octal.

El argumento es tratado como una cadena y es presentado como tal.

El argumento es tratado como un entero y presentado como un nmero hexadecimal (con minscula).

El argumento es tratado como un entero y presentado como un nmero hexadecimal (con maysculas).

Constantes
Las constantes son como las variables, salvo por dos
circunstancias, que las constantes deben ser definidas usando la
funcin define() y no pueden ser redefinidas con otro valor.
Las constantes slo pueden contener valores boolean, integer, float
y string.

Operadores
Aritmticos

Asignacin

Ejemplo

Comparacin

Nombre

Incremento/
Decremento

Lgicos

Resultado

$a + $b

Adicin

Suma de $a y $b

$a - $b

Sustraccin

Diferencia de $a y $b

$a * $b

Multiplicacin

Producto de $a por $b

$a / $b

Divisin

Cociente de $a entre $b

$a % $b

Mdulo

Resto de $a dividido entre $b

Cadena

Operadores
Aritmticos

Asignacin

Comparacin

Incremento/
Decremento

Lgicos

Cadena

Estos operadores permiten asignar un valor a una


variable.
Operador

Ejemplo

Equivalente

$a = 7;

+=

$a += 3;

$a = $a + 3;

-=

$a -= 3;

$a = $a - 3;

*=

$a *= 3;

$a = $a * 3;

/=

$a /= 3;

$a = $a / 3;

$a %= 3;

$a = $a % 3;

%=

Operadores
Aritmticos

Asignacin

Comparacin

Incremento/
Decremento

Lgicos

Cadena

Operadores
Aritmticos

Asignacin

Comparacin

Incremento/
Decremento

Lgicos

Cadena

Permiten comparar dos valores; el resultado es un valor


de tipo boolean, true o false.
Ejemplo

Nombre

Resultado

$a == $b

Igualdad

Cierto si $a es igual que $b

$a === $b

Identidad

Cierto si $a es igual a $b y sin son del mismo tipo

$a != $b

Desigualdad

Cierto si $a no es igual a $b

$a < $b

Menor que

Cierto si $a es estrictamente menor que $b

$a > $b

Mayor que

Cierto si $a es estrictamente mayor que $b

$a <= $b

Menor o igual que

Cierto si $a es menor o igual que $b

$a >= $b

Mayor o igual que

Cierto si $a es mayor o igual que $b

Operadores
Aritmticos
Ejemplo

Asignacin

Comparacin

Nombre

Incremento/
Decremento

Lgicos

Cadena

Efecto

++$a

Preincremento

Incrementa $a en uno y despus devuelve $a

$a++

Postincremento

Devuelve $a y despus incrementa $a en uno

--$a

Predecremento

Decrementa $a en uno y despus devuelve $a

$a--

Postdecremento

Devuelve $a y despus decrementa $a en uno

Operadores
Aritmticos

Asignacin

Ejemplo

Comparacin

Nombre

Incremento/
Decremento

Lgicos

Cadena

Resultado

$a and $b

Verdadero si $a y $b son verdaderos

$a or $b

Verdadero si $a o $b es verdadero

$a xor $b

O exclusiva

Verdadero si $a es verdadero o $b es verdadero


pero no ambos a la vez

Negacin

Verdadero si $a es falso

$a && $b

Verdadero si $a y $b son verdaderos

$a || $b

Verdadero si $a o $b es verdadero

! $a

Operadores
Aritmticos

Asignacin

Comparacin

Incremento/
Decremento

Lgicos

Cadena

Operadores
Aritmticos

Asignacin

Comparacin

Incremento/
Decremento

Lgicos

Cadena

Para concatenar dos cadenas utilizamos el operador


punto (.).

Operadores
Aritmticos

Asignacin

Comparacin

Incremento/
Decremento

Lgicos

Cadena

Existe el operador de concatenacin y asignacin, este


es el operador punto e igual (.=), agrega una cadena,
otra cadena.

Formularios html (GET y POST)


Los diferentes documentos que conforman una
aplicacin web necesitan comunicarse entre s, una de
las formas es utilizando formularios html que envan
datos a un programa php, estos campos enviados se
convierten en variables dentro del programa php, y
como provienen de otro documento se les denomina
variables externas.

Formularios html (GET y POST)


ejm01.html

Formularios html (GET y POST)


Segn el mtodo que utilicemos (POST o GET) tenemos 2 arreglos
globales ($_POST y $_GET) que nos permiten recibir los campos
que son enviados desde el formulario.
Si utilizamos el mtodo GET debemos utilizar el siguiente formato:

Si utilizamos el mtodo POST debemos utilizar el siguiente formato:

Arreglos globales http


Arreglo $_POST

Arreglo $_GET

Se trata de un arreglo asociativo de variables pasadas al


programa actual a travs del mtodo HTTP POST.

Esta es una variable superglobal; simplemente quiere


decir que est disponible en todos los contextos a lo
largo del programa.

Arreglos globales http


Arreglo $_POST

Arreglo $_GET

La primer figura muestra un formulario que permite el


ingreso de datos para calcular el sueldo de un
trabajador, en la segunda figura se reciben los datos y
se realiza el clculo del sueldo.

Arreglos globales http


Arreglo $_POST

Arreglo $_GET

ejm04.html

Arreglos globales http


Arreglo $_POST

Arreglo $_GET

ejm05.php

Arreglos globales http


Arreglo $_POST

Arreglo $_GET

Se trata de un arreglo asociativo de variables pasadas al programa


actual a travs del mtodo HTTP GET.
Es una variable superglobal; simplemente, quiere decir que est
disponible en todos los contextos a lo largo del programa.

La primer figura muestra un formulario que permite el ingreso de


dos nmeros, estos datos son enviados al programa de la segunda
figura, que recibe los datos, calcula la suma y muestra los
resultados.

Arreglos globales http


Arreglo $_POST

Arreglo $_GET

ejm06.html

Arreglos globales http


Arreglo $_POST

Arreglo $_GET

ejm07.php

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

La instruccin if es la estructura de control ms simple


de todas. En su forma ms simple, solo condiciona la
ejecucin de una o un grupo de sentencias.

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

Este programa muestra un formulario para que ingrese


su nombre, dato que es enviado al programa ejm02.php
para ser procesado.

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

Aqu se recibe el nombre ingresado en el formulario del


ejemplo ejm01.html y lo procesa.

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

A una instruccin if le podemos aadir instrucciones que


se ejecuten cuando la condicin es falsa mediante la
clusula else.

Si condicin se evala como verdadera, se ejecuta


instrucciones1; si se evala como falsa, instrucciones2.

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

El siguiente cdigo trata de un programa recursivo.


Inicialmente muestra un formulario para ingresar un
nmero entero, luego evala si el nmero ingresado es
para o impar, pero previamente verifica si realmente se
ingres un nmero entero.

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

ejm03.php

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

La etiqueta div se utiliza para separar las dos secciones, la del


formulario y la del resultado; de esta manera, es ms fcil
condicionar su impresin en el navegador de acuerdo al valor que
tome la variable $mostrar.
Su funcionamiento se ilustra a continuacin:

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

Es posible encadenar varias condiciones con la clusula elseif.

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

El siguiente ejemplo muestra un formulario para el ingreso de dos


notas, luego calcula el promedio y determina una condicin segn
el siguiente cuadro:
Promedio

Condicin

[18,20]

Excelente

[15,18)

Bueno

[11,15)

Regular

[6,11)

Malo

[0,6)

Psimo

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

ejm04.php

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

Esta estructura permite evaluar una expresin y segn


su resultado ejecutar un bloque de instrucciones.

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

ejm05.php

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

ejm06.php

Estructuras condicionales
Condicional
simple: If

Condicional doble:
if - else

Condicional mltiple: if
elseif - else

Selectiva mltiple:
switch

ejm07.php

Estructuras repetitivas
Bucle: While

Bucle: Do - While

Bucle: For

Bucle: Foreach

Representa una estructura que ejecuta un grupo de


instrucciones mientras una condicin es verdadera. Para
ingresar al bucle, inicialmente la condicin debe ser
verdadera, de lo contrario nunca se ejecutar.

Estructuras repetitivas
Bucle: While

Bucle: Do - While

ejm08.php

Bucle: For

Bucle: Foreach

Estructuras repetitivas
Bucle: While

Bucle: Do - While

Bucle: For

Bucle: Foreach

La estructura do while tambin representa un bucle


que se ejecuta mientras la condicin es verdadera, pero
la comprobacin se realiza despus de la primera
iteracin; como consecuencia de ello, el bucle se ejecuta
por lo menos una vez.

Estructuras repetitivas
Bucle: While

Bucle: Do - While

Bucle: For

Bucle: Foreach

ejm10.php

Estructuras repetitivas
Bucle: While

Cont.

Bucle: Do - While

Bucle: For

Bucle: Foreach

Estructuras repetitivas
Bucle: While

Bucle: Do - While

Bucle: For

Bucle: Foreach

Resulta muy til cuando debemos ejecutar un bloque de


cdigo a condicin de que una variable se encuentre
entre un valor mnimo y otro mximo.

Elemento

Descripcin

expresin1

Inicio del bucle, solo se ejecuta una vez.

expresin2

Es la condicin. Mientras la expresin2 sea verdadera, el bucle estar


iterando. Se evala al inicio de cada iteracin.

expresin3

Es el paso de iteracin. Se ejecuta despus de cada iteracin y


generalmente, modifica el valor de alguna variable.

Estructuras repetitivas
Bucle: While

Bucle: Do - While

Bucle: For

Bucle: Foreach

ejm11.php

Estructuras repetitivas
Bucle: While

Cont.

Bucle: Do - While

Bucle: For

Bucle: Foreach

Estructuras repetitivas
Bucle: While

Bucle: Do - While

Bucle: For

Bucle: Foreach

El bucle foreach representa una estructura de control


que permite hacer el recorrido a travs de los elementos
de una matriz.
Sintaxis:

Estructuras repetitivas
Bucle: While

Bucle: Do - While

Bucle: For

Bucle: Foreach

ejm12.php

Estructuras repetitivas
Bucle: While

Bucle: Do - While

Bucle: For

Bucle: Foreach

La siguiente sintaxis se aplica sobre arreglos


asociativos:

Estructuras repetitivas
Bucle: While

Bucle: Do - While

Bucle: For

Bucle: Foreach

Sesiones
Las sesiones son un mecanismo que permiten identificar
a los usuarios que acceden a un sitio web y, de esta
manera, almacenar informacin referente a sus
transacciones.
Un ejemplo tpico donde se aplican sesiones son las
aplicaciones de comercio electrnico; en estas
aplicaciones se debe llevar un registro de los productos
que ha agregado a su canasta de compras.

Manejo de sesiones
Funcin:
session_start()

Funcin:
session_id()

Arreglo: $_session

Funcin:
session_unset()

Funcin:
session_destroy()

Sintaxis:

Valor de retorno: siempre devuelve true.


Esta funcin, en caso de que el visitante no tenga una sesin, la
crea, y si ya tiene una, contina en ella.

Es necesario llamar a esta funcin antes de enviar cualquier


cabecera HTTP, es decir, antes de imprimir nuestra pgina.

Manejo de sesiones
Funcin:
session_start()

Funcin:
session_id()

Arreglo: $_session

Funcin:
session_unset()

Funcin:
session_destroy()

Esta funcin se utiliza para leer o cambiar el id de la


sesin actual.

Manejo de sesiones
Funcin:
session_start()

Funcin:
session_id()

Arreglo: $_session

Funcin:
session_unset()

Funcin:
session_destroy()

Es una matriz que contiene variables de sesin


disponibles en la aplicacin actual.

En el siguiente ejemplo el usuario ingresa nombres de


artculo y sus respectivos precios, cada nombre de
artculo se utiliza como clave en el arreglo $_SESSION.

Manejo de sesiones
Funcin:
session_start()

Funcin:
session_id()

Arreglo: $_session

Funcin:
session_unset()

Funcin:
session_destroy()

Manejo de sesiones
Funcin:
session_start()

Funcin:
session_id()

Arreglo: $_session

Funcin:
session_unset()

Funcin:
session_destroy()

Sintaxis:

No retorna ningn valor. Esta funcin elimina y libera


espacio ocupado por todas las variables de sesin
actualmente registradas.

Manejo de sesiones
Funcin:
session_start()

Funcin:
session_id()

Arreglo: $_session

Funcin:
session_unset()

Funcin:
session_destroy()

Sintaxis:

Esta funcin destruye todos los datos asociados con la


sesin actual. Retorna true si se ha destruido la sesin
correctamente y false en caso de haber algn problema.

Manejo de sesiones
Funcin:
session_start()

Funcin:
session_id()

Arreglo: $_session

Funcin:
session_unset()

ejm04.php

Funcin:
session_destroy()

Manejo de sesiones
Funcin:
session_start()

Funcin:
session_id()

Arreglo: $_session

Funcin:
session_unset()

ejm04_delete.php

Funcin:
session_destroy()

Incluir archivos
Funciones: require() e
include()

Funciones: require_once()
e include_once()

El objetivo de estas dos funciones es incluir el contenido


de un archivo en el punto donde se invoca. En su
funcionamiento son idnticas en todos los aspectos,
excepto en el modo de actuar ante un error; include()
produce un mensaje de advertencia, mientras que
require() produce un error fatal.

Incluir archivos
Funciones: require() e
include()

Funciones: require_once()
e include_once()

titulo.html

estilos.css

Incluir archivos
Funciones: require() e
include()

Funciones: require_once()
e include_once()

ejm10.php

Incluir archivos
Funciones: require() e
include()

Funciones: require_once()
e include_once()

Estas funciones son similares a sus pares require() e


include() respectivamente, con la diferencia que si el
archivo ya fue incluido no se volver a incluir.

Acceso a la base de datos


Funcin:
mysql_connect()

Funcin:
mysql_close()

Funcin:
mysql_select_db

Abre una conexin a un servidor mysql y retorna un


identificador positivo si tiene xito, o false si hay error.

En caso de que se haga una llamada a mysql_connect()


con los mismos argumentos, no se establecer una
nueva conexin, sino que se devolver la conexin ya
establecida.

Acceso a la base de datos


Funcin:
mysql_connect()

Funcin:
mysql_close()

Funcin:
mysql_select_db

Cierra una conexin con mysql, retorna true si tiene


xito y false en caso contrario.

Acceso a la base de datos


Funcin:
mysql_connect()

Funcin:
mysql_close()

Funcin:
mysql_select_db

Esta funcin establece la base de datos activa que


estar asociada con la conexin abierta, es necesario
especificar un identificador de conexin.
conexin.php

Manejo de resultados
Mysql_query()

Mysql_num
_rows()

Mysql_result()

Mysql_fetch
_row()

Mysql_data
_seek()

Mysql_fetch
_assoc()

Esta funcin enva una instruccin SQL a la base de


datos activa en el servidor asociado al identificador de
conexin.

Manejo de resultados
Mysql_query()

Mysql_num
_rows()

Mysql_result()

Mysql_fetch
_row()

Mysql_data
_seek()

Mysql_fetch
_assoc()

Con esta funcin podemos averiguar el nmero de filas


de un conjunto de resultados.

Manejo de resultados
Mysql_query()

Mysql_num
_rows()

Mysql_result()

Mysql_fetch
_row()

Mysql_data
_seek()

Mysql_fetch
_assoc()

Esta funcin retorna el contenido de una celda de un conjunto de resultados.


El parmetro id_resultado representa el conjunto de resultados, normalmente es una
variable que almacena el resultado que retorna la funcin mysql_query().
El parmetro numero_de_fila representa la fila que queremos consultar, las filas
estn enumeradas a partir de cero.
El parmetro campo puede ser el nombre de la columna o el nmero de columna. Si
la columna tiene un alias, se debe utilziar el alias en lugar del nombre de la columna.

Manejo de resultados
Mysql_query()

Mysql_num
_rows()

Mysql_result()

Mysql_fetch
_row()

Mysql_data
_seek()

Mysql_fetch
_assoc()

Esta funcin retorna un arreglo que corresponde a la fila


actual de un conjunto de resultados, o false si no
quedan ms filas.
El puntero interno de fila del conjunto de resultado se
desplaza a la siguiente fila. Cada columna del resultado
es guardada como un elemento del arreglo, el ndice de
este arreglo empieza con 0 (cero).

Manejo de resultados
Mysql_query()

Mysql_num
_rows()

Mysql_result()

Mysql_fetch
_row()

Mysql_data
_seek()

Mysql_fetch
_assoc()

Esta funcin mueve el puntero de fila de un conjunto de


resultado a una fila especfica.

El nmero de fila inicia en 0 (cero).

Manejo de resultados
Mysql_query()

Mysql_num
_rows()

Mysql_result()

Mysql_fetch
_row()

Mysql_data
_seek()

Mysql_fetch
_assoc()

Recupera la fila actual de un conjunto de resultados y la


retorna como una matriz asociativa, o false si no hay
ms filas.
Si dos o ms columnas del resultado tienen el mismo
nombre de columna, la ltima tomar precedencia.

Bibliografa
Coronel C. E. 2010. Php profesional. Empresa editora
Macro.

También podría gustarte