You are on page 1of 54

Programacin en PHP a travs de ejemplos

Programacin en PHP a travs de ejemplos


Apuntes de la asignatura Programacin para Internet, Ingeniera Tcnica en Inform tica de !estin

Manuel Palomo Duarte Departamento de Lenguajes y Sistemas Informticos Universidad de Cdiz Ildefonso Montero Prez Departamento de Lenguajes y Sistemas Informticos Universidad de Sevilla Esta obra est protegida bajo una licencia Creative Commons Creative Commons Reconocimiento-CompartirIgual !" Espa#a $ttp%&&creativecommons!org&licenses&b'-sa& !"&es&

Programacin en PHP a travs de ejemplos

"

1 Introduccin
El lenguaje P(P )cu'o nombre es acr*nimo de P(P% (iperte+t Preprocessor, es un lenguaje interpretado con una sinta+is similar a la de C-- o ./0/! /un1ue el lenguaje se puede usar para realizar cual1uier tipo de programa2 es en la generaci*n dinmica de pginas 3eb donde $a alcanzado su m+ima popularidad! En concreto2 suele incluirse incrustado en pginas (4M5 )o 6(4M5,2 siendo el servidor 3eb el encargado de ejecutarlo! /lgunas de las caracter7sticas de su enorme popularidad son%

Es un lenguaje libre! Puede descargarse de $ttp%&&333!p$p!net! Est disponible para muc$os sistemas )89:&5inu+2 ;indo3s2 :9I62 etc,! 4iene una e+tensa documentaci*n oficial en varios idiomas )disponible libremente en $ttp%&&333!p$p!net,! E+isten multitud de e+tensiones% para conectar con bases de datos2 para manejo de soc<ets2 para generar documentos PD=2 para generar dinmicamente pginas en =las$2 etc /l ejecutarse en el servidor2 los programas P(P lo pueden usar todo tipo de m1uinas con todo tipo de sistemas operativos! En caso de 1ue un cliente falle )por error $ard3are2 virus2 etc, se puede seguir usando el sistema desde otro cual1uiera 1ue tenga un navegador 3eb con cone+i*n al servidor!

Este documento ense#a a manejar P(P a personas con conocimientos bsicos de programaci*n! Para realizar programas son necesarios algunas nociones de (4M5 )o 6(4M5,2 pero se puede ir aprendiendo sobre la marc$a con los ejemplos!

Programacin en PHP a travs de ejemplos

2 Inclusin de cdigo PHP en una pgina HTML


Para incluir c*digo P(P basta con precederlo de la eti1ueta >?p$p2 ' cerrarlo con ?@! Ai el servidor 3eb est correctamente configurado2 detectar c*digo P(P '2 en vez de proporcionarle el contenido de la pgina directamente al cliente )lo 1ue significar7a 1ue recibir7a el c*digo fuente del programa,2 ejecuta el programa ' devuelve su resultado al navegador! /s7 pues2 el es1uema de una petici*n ser7a como sigue%

Programacin en PHP a travs de ejemplos

3 Configuracin del entorno de trabajo


3.1 Configuracin del ser idor 5os pasos para configurar un servidor 3eb con soporte para P(P en un sistema 89:&5inu+ son los siguientes%

Instalar el sistema 89:&5inu+ con soporte de red )aun1ue no tenga tarjeta de red2 se puede usar el loopbac<,! Con el comando ifconfig se puede comprobar si est activado! Instalar el pa1uete Apache con sus dependencias )1ue contiene el servidor 3eb,! Ai el manual est disponible )apache-doc, se recomienda instalarlo tambin 5anzar el servidor )tambin conocido como demonio, $ttpd2 invocando al script etc init!d apache" con el parmetro start! Probar 1ue Apache sirve peticiones! /brir un navegador 3eb ' escribir la :R5 localhost )o B C!D!D!B,! Deber de dar una pgina de bienvenida como respuesta o decir 1ue no la $a'2 pero no dar un error de petici*n rec$azada! Instalar el pa1uete php )1ue inclu'e el lenguaje, ' apache-php )el pa1uete 1ue permite conectar /pac$e con P(P,! 4ambin se recomienda php-manual2 el manual oficial! Ae puede probar P(P desde l7nea de comando ejecutando echo #$% print&"'"( %)# * php ! El resultado debe ser E! Por Fltimo $a' 1ue comprobar 1ue /pac$e ejecuta c*digo P(P! Para ello $a' 1ue ver el directorio donde /pac$e busca las pginas 3eb% grep Document+oot etc apache" , ! En el directorio 1ue nos indi1ue ejecutamos echo #$% print&"'-( %)# ) p!php ! G solicitamos a /pac$e la :R5 localhost p!php ! Ai el resultado es "2 todo est correcto!

Ai fuera necesario modificar el comportamiento de P(P2 su fic$ero de configuraci*n es &etc&p$p!ini 5a e+tensi*n 1ue suelen tener los programas en P(P es !p$p o !p$p seguido del nFmero ma'or de la versi*n de P(P 1ue se usa )!p$pH 2 !p$pE 2 !p$p", Ai adems se desea trabajar con bases de datos M'AI5%

Instalar el pa1uete m's1l )en algunas distribuciones se llama mys.l-server, con sus dependencias! Ai el manual est disponible se recomienda instalarlo tambin 5anzar el servidor )tambin conocido como demonio, m's1ld2 invocando al script etc init!d mys.l con el parmetro start! Probar 1ue mys.l sirve peticiones! /brir una consola ' escribir mys.lsho/! 5a respuesta 1ue tiene 1ue dar es el listado de bases de datos del sistema!

4ambin se recomienda la instalaci*n de algFn entorno para facilitar el trabajo con la base de datos2

Programacin en PHP a travs de ejemplos

como puede ser p$pM'/dmin )1ue est disponible libremente,! Este programa se puede instalar como pa1uete de la distribuci*n o bien bajar el c*digo fuente ' colocarlo en un directorio de donde Apache ejecute pginas 3ebs! 3.2 Trabajo re!oto 4ambin si se desea2 se puede trabajar con una m1uina remota! Para ello lo ms comFn es tener una cuenta a la 1ue se suban las pginas )por =4P2 scp2 etc, ' solicitar la :R5 correspondiente a la m1uina destino! 3.3 "ntorno de trabajo Ae recomienda usar el editor Iuanta Plus2 1ue es el editor 3eb del pro'ecto JDE )forma parte del pa1uete 0de/e1dev! E+isten otras alternativas interesantes% Kluefis$2 Eclipse2 etc! Es importante 1ue el entorno permite funciones como coloreado de sinta+is P(P2 entorno grfico2 gesti*n de pro'ectos2 previsualizaci*n de resultado2 sincronizaci*n con deirectorios remotos2 etc

Programacin en PHP a travs de ejemplos

&

# Pri!eros progra!as en PHP


El objetivo del resto del documento es ense#ar P(P a travs de ejemplos! 5as e+plicaciones de sinta+is sern m7nimas2 pues )salvo 1ue se indi1ue lo contrario, la sinta+is es idntica a la de C! 5os nombres de variables en P(P comienzan por un carcter ' van seguidos de nFmeros ' caracteres sin espacios! Para $acer referencia a una variable debemos anteponer a su nombre el s7mbolo del d*lar )L,! 5os tipos bsicos son%

Entero% nFmero entero con signo =lotante% nFmero decimal con signo Kooleano% vale true o false Cadena de caracteres% cadena de caracteres delimitada por comillas! 5as comillas simples interpretan el te+to literalmente2 mientras 1ue las dobles sustitu'en las variables!

9o es necesario declarar las variables2 simplemente el intrprete averiguar el tipo de dato 1ue almacenar ' se declarar automticamente! Ai es necesaria una conversi*n de tipos2 al igual 1ue en C2 se puede anteponer el tipo al 1ue se desea promocionar entre parntesis! 5os comentarios pueden ser de dos tipos% Para comentarios de unas s*lo l7nea )o parte de ella, se pueden usar indistintamente && o M2 1ue comentan todo lo 1ue se encuentre a continuaci*n de ellos $asta el fin de la l7nea! Ai se desean comentario de varias l7neas2 se abren con &N ' se cierran con N& Para imprimir en pantalla se puede usar la orden ec$o o print% 5a orden ec$o es mu' similar a la de s$ell Kas$! Recibe como primer ' Fnico parmetro una cadena! Esa cadena2 si est entre comillas simples2 se imprimir literalmente! Ai por el contrario deseamos 1ue se sustitu'an las variables 1ue contenga por sus valores $a' 1ue usar comillas dobles! Por ejemplo2 2cant345 echo 6Son 2cant euros65 dar como resultado Son 2cant euros! Pero 2cant345 echo #Son 2cant euros#5 imprimir Son 4 euros! Como se observa2 las *rdenes P(P van terminadas por el carcter O Por el contrario2 la orden print recibe sus parmetros entre parntesis! Es una orden 1ue admite muc$os ms parmetros ' opciones! :na de sus principales diferencias es 1ue evalua su parmetro ' despus lo imprime! Por ejemplo echo #do1le&4(# da doble)P,2 pero print&do1le&4(( da BQ! "jercicio #.1% Concatena dos cadenas con el operador punto )!, e imprimir su resultado! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <t"tl&%&(&r)")"# 4.1</t"tl&%

Programacin en PHP a travs de ejemplos

'

</h&a'% <*#'+% <,-h." " / "H#la "0 .1" / " a t#'#!"0 .t#'# / ." "..1" 0 &)h# .t#'#0 ,% </*#'+% </html% "jercicio #.2% (acer un programa 1ue sume dos variables 1ue almacenan dos nFmeros distintos! <html% <h&a'% <t"tl&%&(&r)")"# 4.2</t"tl&% </h&a'% <*#'+% <,-h. 1/10 . 2/20 .!3ma/. 14. 20 &)h# "!3ma / "..!3ma. "<*r%"0 &)h# ". 14. 2"0 ,% </*#'+% </html% "jercicio #.3% $acer un programa 1ue muestre en pantalla informaci*n de P(P con la funci*n p$pinfo),! Muestre la informaci*n centrada $orizontalmente en la pantalla! <html% <h&a'% <t"tl&%&(&r)")"# 4.3</t"tl&% </h&a'% <*#'+% <)& t&r% <,-h&)h# -h-" 1#560 ,%

Programacin en PHP a travs de ejemplos

</)& t&r% </*#'+% </html% "jercicio #.#% Mostrar en pantalla una tabla de BD por BD con los nFmeros del B al BDD <html% <h&a'% <t"tl&%&(&r)")"# 4.4</t"tl&% </h&a'% <*#'+% <,-h&)h# "<ta*l& *#r'&r/1%"0 . /10 1#r 5. 1/10 . 1</100 . 1446 7 &)h# "<tr%"0 1#r 5. 2/10 . 2</100 . 2446 7 &)h# "<t'%"8 . 8 "</t'%"0 . /. 410 9 &)h# "</tr%"0 9 &)h# "</ta*l&%"0 ,% </*#'+% </html% "jercicio #.$% 7dem a E!E anterior2 pero colorear las filas alternando gris ' blanco! /dems2 el tama#o ser una constante% define)4/M2 BD, <html% <h&a'% <t"tl&%&(&r)")"# 4.:</t"tl&% </h&a'% <*#'+% <,-h'&1" &5T;M81060 &)h# "<ta*l& *#r'&r/1%"0

Programacin en PHP a travs de ejemplos

. /10 1#r 5. 1/10 . 1</T;M0 . 1446 7 "1 5. 1 < 2 // 06 &)h# "<tr *=)#l#r/>*')3'?%"0 &l!& &)h# "<tr%"0 1#r 5. 2/10 . 2</T;M0 . 2446 7 &)h# "<t'%"8 . 8 "</t'%"0 . /. 410 9 &)h# "</tr%"0 9 &)h# "</ta*l&%"0 ,% </*#'+% </html% "jercicio #.%% mostrar una tabla de E por E 1ue muestre las primeras E potencias de los nFmeros del uno B al E )$acer una funci*n 1ue las calcule invocando la funci*n po3,! En P(P las funciones $a' 1ue definirlas antes de invocarlas! 5os parmetros se indican con su nombre )Lcantidad, si son por valor ' antecedidos de R )RLcantidad, si son por referencia! <html% <h&a'% <t"tl&%&(&r)")"# 4.?</t"tl&% </h&a'% <*#'+% <,-h'&1" &5T;M8460 13 )t"# -#t& )"a 5.@18 .@26 7 .r'#/ -#A5.@18 .@260 r&t3r .r'#0 9 &)h# "<ta*l& *#r'&r/1%"0 1#r 5. 1/10 . 1</T;M0 . 1446 7 &)h# "<tr%"0 1#r 5. 2/10 . 2</T;M0 . 2446 &)h# "<t'%". -#t& )"a5. 18. 26. "</t'%"0 &)h# "</tr%"0

Programacin en PHP a travs de ejemplos

1*

9 &)h# "</ta*l&%"0 ,% </*#'+% </html% "jercicio #.&% $acer un programa 1ue muestre en una tabla de E columnas todas las imgenes de el directorio SfotosS! Para ello consulte el manual )en concreto la referencia de funciones de directorios,! Auponga 1ue en el directorio s*lo e+isten fotos! <html% <h&a'% <t"tl&%&(&r)")"# 4.B</t"tl&% </h&a'% <*#'+% <,-h"1 5.=&!t#r / #-& '"r5C1#t#!C66 7 &)h# "<ta*l& *#r'&r/1%"0 &)h# "<tr%"0 ."/00 Ah"l& 51al!& !// 5.ar)h"@# / r&a''"r5.=&!t#r666 7 "1 5.ar)h"@#!/"." DD .ar)h"@#!/".."6 7 "1 5."//46 7 ."/00 &)h# "</tr%"0 &)h# "<tr%"0 9 ."440 &)h# "<t'%"0 &)h# "<a hr&1/1#t#!/.ar)h"@#%<"m= !r)/1#t#!/.ar)h"@#% </a%"0 &)h# "</t'%"0 9 9 &)h# "</tr%"0 &)h# "</ta*l&%"0 )l#!&'"r5.=&!t#r60 9 ,% </*#'+% </html%

Programacin en PHP a travs de ejemplos

11

"jercicio #.'% 7dem al anterior2 pero 1ue muestre las fotos en BDD+BDD ' 1ue al pulsar abra la foto entera! Compruebe 1ue s*lo muestra fotos con e+tensi*n !jpg2 !png2 bmp o !gif )$aga una funci*n 1ue lo compruebe usando las e+presiones regulares como aparecen en el manual,! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%&(&r)")"# 4.G</t"tl&% </h&a'% <*#'+% <,-h&)h# "<h1%Ta*la '& J#t#! )# E la)&</h1%"0

13 )t"# @al"'aK1#t#5.1#t#!6 7 .r'#/00 "1 5&r&=5"LM(NLP-NLO=N."8 .1#t#!66 "1 5&r&=5"LO=NLI"NLJ1N."8 .1#t#!66 "1 5&r&=5"LP-NL$ NLO=N."8 .1#t#!66 "1 5&r&=5"LB*NLMmNLP-N."8 .1#t#!66 r&t3r 9 .r'#0

r'#/10 r'#/10 r'#/10 r'#/10

&)h# "<ta*l& *#r'&r/1%"0 .-3 t&r# / #-& '"r5C1#t#!C60 ."/10 Ah"l& 51al!& !// 5.1#t# / r&a''"r5.-3 t&r#666 7 "1 5.1#t#!/"." DD .1#t#!/".." DD @al"'aK1#t#5.1#t#66 7 "1 5."//16 &)h# "<tr%"0 &)h# "<t'%<a hr&1/C1#t#!/.1#t#C%P0 &)h# P<"m= !r)/C1#t#!/.1#t#C A"'th/100 h&"=ht/100%</"m=%P0 &)h# Q</a%</t'%"0 "1 5."//46 7&)h# "</tr%"0 ."/009 ."440 9 9 )l#!&'"r5.-3 t&r#60 &)h# "</ta*l&%"0 ,% </*#'+% </html%

Programacin en PHP a travs de ejemplos

1"

"jericio #.(% 7dem al anterior2 pero 1ue por cada foto tenga una miniatura! Para la foto pla'a!jpg la miniatura ser MI9I-pla'a!jpg <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%&(&r)")"# 4.H</t"tl&% </h&a'% <*#'+% <,-h&)h# "<h1%Oal&r"a '& "ma=& &! )#

th3m* a"l!</h1%"0

13 )t"# @al"'aK1#t#5.1#t#!6 7 .r'#/00 "1 5&r&=5"LM(NLP-NLO=N."8 .1#t#!66 "1 5&r&=5"LO=NLI"NLJ1N."8 .1#t#!66 "1 5&r&=5"LP-NL$ NLO=N."8 .1#t#!66 "1 5&r&=5"LB*NLMmNLP-N."8 .1#t#!66 r&t3r 9 .r'#0

r'#/10 r'#/10 r'#/10 r'#/10

&)h# "<ta*l& *#r'&r/1%"0 .-3 t&r# / #-& '"r5C1#t#!C60 ."/10 Ah"l& 51al!& !// 5.1#t# / r&a''"r5.-3 t&r#666 7 "1 5.1#t#!/"." DD .1#t#!/".." DD @al"'aK1#t#5.1#t#66 7 "1 5."//16 &)h# "<tr%"0 &)h# "<t'%<a hr&1/C1#t#!/t3m*!/MI$I-.1#t#C%P0 &)h# P<"m= !r)/C1#t#!/.1#t#C A"'th/100 h&"=ht/100%</"m=%P0 &)h# Q</a%</t'%"0 "1 5."//46 7&)h# "</tr%"0 ."/009 ."440 9 9 )l#!&'"r5.-3 t&r#60 &)h# "</ta*l&%"0 ,% </*#'+% </html%

Programacin en PHP a travs de ejemplos

1#

"jercicio #.1)% 7dem al anterior2 pero 1ue si no e+iste la miniatura de una foto debe de crearla! Para generar la miniatura se usa el programa convert )$a' 1ue invocarlo en l7nea de comandos desde P(P son la funci*n system,! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%&(&r)")"# 4.10</t"tl&% </h&a'% <*#'+% <,-h&)h# "<h1%Oal&r"a '& "ma=& &! )#

th3m* a"l!</h1%"0

13 )t"# @al"'aK1#t#5.1#t#!6 7 .r'#/00 "1 5&r&=5"LM(NLP-NLO=N."8 .1#t#!66 "1 5&r&=5"LO=NLI"NLJ1N."8 .1#t#!66 "1 5&r&=5"LP-NL$ NLO=N."8 .1#t#!66 "1 5&r&=5"LB*NLMmNLP-N."8 .1#t#!66 r&t3r 9 .r'#0

r'#/10 r'#/10 r'#/10 r'#/10

13 )t"# )r&aKt3m*!5.1#t#6 7 "1 5!"!K'"r5C1#t#!/t3m*!C66 mR'"r 5C1#t#!/t3m*!C8 0BBB60 "1 5!"!K1"l&5C1#t#!/t3m*!/MI$I-.1#t#C66 !+!t&m 5")# @&rt -!am-l& 40E40 /1#t#!/.1#t# /1#t#!/t3m*!/MI$I.1#t#"60 9 &)h# "<ta*l& *#r'&r/1%"0 .-3 t&r# / #-& '"r5C1#t#!C60 ."/10 Ah"l& 51al!& !// 5.1#t# / r&a''"r5.-3 t&r#666 7 "1 5.1#t#!/"." DD .1#t#!/".." DD @al"'aK1#t#5.1#t#66 7 )r&aKt3m*!5.1#t#60 "1 5."//16 &)h# "<tr%"0 &)h# "<t'%<a hr&1/C1#t#!/t3m*!/MI$I-.1#t#C%P0 &)h# P<"m= !r)/C1#t#!/.1#t#C A"'th/100 h&"=ht/100%</"m=%P0

Programacin en PHP a travs de ejemplos

1$

&)h# Q</a%</t'%"0 "1 5."//46 7&)h# "</tr%"0 ."/009 ."440 9 9 )l#!&'"r5.-3 t&r#60 &)h# "</ta*l&%"0 ,% </*#'+% </html% "jercicio #.11% P(P desde l7nea de comandos! Auponga 1ue tenemos un servidor 1ue no soporta P(P! 8enere una pgina esttica con la galer7a de fotos del ejercicio anterior! 5as razones para usar P(P generando contenidos estticos pueden ser2 adems de la indicada anteriormente% para facilitar la inde+aci*n de contenidos )con spiders,2 para cargar menos el servidor2 para realizar una pgina 1ue funciona off-line )por ejemplo2 una recopilaci*n de informaci*n para grabarla en CD&D0D,2 etc Aimplemente abr7a 1ue invocar2 desde la l7nea de comandos php ejercicio7!89!php ) pag!html "jercicio #.12% vectores! /lmacene en un vector los BD primeros nFmero pares! Impr7malos cada uno en una l7nea )recuerde 1ue el salto de l7nea en (4M5 es >KR@,! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%&(&r)")"# 4.12</t"tl&% </h&a'% <*#'+% <,-h1#r 5."/00."<100."446 .@L."N/."S20 1#r 5."/00."<100."446 &)h# Q.@L."N<*r%P0 ,% </*#'+% </html%

Programacin en PHP a travs de ejemplos

1%

"jercicio #.13% Imprima los valores del vector asociativo siguiente usando la estructura de control foreac$% LvTBUVWDO LvTHDUVCO LvTXeXUVWWO LvTX$olaXUVEHO <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%E(&r)")"# 4.13</t"tl&% </h&a'% <*#'+% <,-h.@L1N/H00 .@L30N/B0 .@LC&CN/HH0 .@LCh#laCN/430 1#r&a)h 5.@ a! ." '")& /% .@al#r6 7 &)h# QEl &l&m& t# '& " '")& ." '")& @al& .@al#r <*r%P0 9 ,% </*#'+% </html%

Programacin en PHP a travs de ejemplos

1&

$ Interaccin con los clientes


4odos los ejemplos vistos anteriormente trabajan de manera independiente del usuario! 9o e+iste ninguna interacci*n a nivel de programa! En este apartado comenzaremos a interactuar! Para ello el elemento clave es el formulario (4M5 )o 6(4M5, 5os formularios (4M5 estn delimitados por las marcas >:;+<@ ' >&:;+<@! 5os formularios 1ue usaremos2 en principio2 tienen las siguientes caracter7sticas%

4ienen 1ue contener )entre sus marcas, toda la informaci*n necesaria para operar posteriormente! Ai $a' varios formularios en la pgina estos no pueden estar anidado '2 por lo tanto2 sern independientes! 5a marca >:;+<@ tiene 1ue incorporar dos parmetros )por a$ora,! :no es constante2 e indica c*mo se enviarn los datos% <=>?;D3@;S> ' otro indica la pgina P(P 1ue procesar la informaci*n del formulario% AC>I;A3pagina!php! Es importante 1ue la direcci*n del atributo AC>I;A sea relativa2 por1ue si es absoluta )de la forma AC>I;A3httpB ///!dominio!com pagina!php o AC>I;AV directorio pagina!php, s*lo funcionar en un servidor )o una estructura de directorios, determinado! 4odo formulario incluir un elemento tipo SUC<I>2 1ue ser el 1ue permita al usuario ordenar el procesado de la informaci*n! 4odo elemento del formulario necesitar un nombre para 1ue pueda ser procesado posteriormente )' se recomienda 1ue tambin incorpore un DALU=,!

5os elementos principales 1ue se pueden incluir dentro de un formulario son los siguientes )si desea una referencia ms completa puede dirigirse al estndar en $ttp%&&333!3Hc!org,%

Cajas de te+to% el atributo 0/5:E indica el valor por defecto2 AIYE el tama#o en pantalla ' M/65E984( la cantidad de caracteres 1ue se podrn escribir en ella! >I9P:4 4GPEVSte+tS 9/MEVSciudadS 0/5:EVZpepeZ AIYEVP M/65E984(V D@ Cajas de te+to para claves% idnticas a las cajas de te+to2 pero el te+to 1ue se escribe no est visible al usuario! >I9P:4 4GPEVSpass3ordS 9/MEVSciudadS AIYEVP M/65E984(V D@ Kotones de selecci*n% permiten elegir uno )' s*lo uno, de los elementos agrupados! Es importante 1ue todos los elementos agrupados tengan e+actamente el mismo nombre )para 1ue sean e+clu'entes, ' distintos valor en 0/5:E )1ue ser lo 1ue identifi1ue el seleccionado,! /dems2 si se desea obligar al usuario a 1ue seleccione uno de los elementos $a' 1ue poner el atributo C?=CE=D en alguno de ellos )pues en otro caso no aparecer7a ninguno seleccionado por defecto,! >KR@>I9P:4 4GPEVSradioS 9/MEVSmusicaS 0/5:EVSBS c$ec<ed@=lamenco >KR@>I9P:4 4GPEVSradioS 9/MEVSmusicaS 0/5:EVS S@Pop >KR@>I9P:4 4GPEVSradioS 9/MEVSmusicaS 0/5:EVSHS@Roc<

Cajas de selecci*n% similares a los botones de selecci*n2 pero se pueden seleccionar los

Programacin en PHP a travs de ejemplos

1'

elementos 1ue desee )uno2 varios o ninguno,! En este caso son independiente2 por lo 1ue casa uno tiene su nombre ' el valor C(ECJED si deseamos 1ue por defecto aparezca marcado >I9P:4 4GPEVZc$ec<bo+Z 9/MEVZpubliZ 0/5:EVB@ Mar1ue si desea publicidad

Kot*n de env7o% es un bot*n 1ue realiza la petici*n a la pgina indicada en el atributo AC>I;A del :;+<! El te+to 1ue tiene es el del DALU=! >I9P:4 4GPEVZsubmitZ 0/5:EVZProcesarZ@ Campos ocultos% sirven para 1ue el formulario env7e datos 1ue el usuario no vea en pantalla )pero 1ue podr7a ver en el c*digo fuente de la pgina2 no estn ocultos realmente,! Ae suele usar en las modificaciones de registros de bases de datos! El valor 1ue env7an se especifica en DALU=! >I9P:4 4GPEVZ$iddenZ 9/MEVZidentificadorZ 0/5:EVZPZ@ Cajas de te+to multil7nea% son similares a las cajas de te+to2 pero especifican sus dimensiones con C;LS )columnas, ' +;FS )filas,! /dems la marca tiene 1ue cerrarse ' el valor por defecto se especifica entre la marca 1ue abre ' la 1ue cierra )por1ue puede ser multil7nea,! >4E64/RE/ 9/MEVZcomentarioZ C[5AVZ DZ R[;AVZEZ@ Ponga a1u7 su comentario u opini*n >&4E64/RE/@ 5istas desplegables%permite elegir entre uno o varios valores mostrados! Entre la marca de apertura ' la de cierre puede $aber tantos elementos de selecci*n como se desee! E+iste el atributo AIYE 1ue indica las opciones 1ue se vern simultneamente en pantalla ' M:54IP5E 1ue indica si es posible realizar una selecci*n de ms de un valor )con el atributo M:54IP5E su funci*n es similar a la de las cajas de selecci*n ' sin l a la de los botones de selecci*n,! >AE5EC4 9/MEVZprovinciaZ@ >[P4I[9 0/5:EVZBZ C(ECJED@Aevilla >[P4I[9 0/5:EVZ Z@(uelva >&AE5EC4@

:na vez en cliente $a introducido los valores adecuados en los elementos ' $a pulsado el bot*n SUC<I>2 la pgina indicada en el atributo AC>I;A del :;+< se ejecutar! Para trabajar con los valores de los elementos del formulario se debe poner la funci*n import\re1uest\variables)SgpS2Sf\S,! 4ras ejecutar esta funci*n por cada elemento del formulario de nombre SedadS e+istir una variable SLf\edadS con su valor! En versiones anteriores de P(P no era necesario usar la funci*n anterior2 sino 1ue directamente e+ist7a para un elemento edad la variable Ledad! Ese efecto se consigue activando la directiva register\glo1alsVon en el fic$ero de configuraci*n de P(P! Ain embargo2 esta directiva puede acarrear problemas de seguridad2 por lo 1ue P(P la trae por defecto desactivada2 ' es raro encontrar servidores de $osting )alojamiento, 1ue la tengan activada! Ms informaci*n en el manual! :na vez e+plicados los conceptos bsicos2 vamos a ver ejemplos! / partir de a$ora los ejemplos

Programacin en PHP a travs de ejemplos

1(

sern2 por lo general dos pginas )una con el formulario ' otra 1ue precese,2 por lo 1ue antes de la marca D;C>G@= se pondr en nombre del fic$ero! "jercicio $.1% (acer un euroconversor de euros a pesetas! ej5.1.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%E(&r)")"# :.1</t"tl&% </h&a'% <*#'+% <1#rm m&th#'/-#!t a)t"# /&(:.1.-h-% I tr#'3T)a la )a t"'a' '& &3r#!U <" -3t t+-&/t&Et !"T&/10% <" -3t t+-&/!3*m"t am&/#R @al3&/& @"ar% </1#rm% </*#'+% </html% ej5.1.php <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%&(&r)")"# :.1</t"tl&% </h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"-="8"1K"60 &)h# "F# "0 &)h# .1K&3r#!S1??.3G?0 &)h# " -&!&ta!"0 ,% </*#'+% </html% "jercicio $.2 (acer un conversor de euro a pesetas o a dolares )1ue el usuario elija una moneda ' s*lo una, ej5.2.html am&/&3r#!

Programacin en PHP a travs de ejemplos

1)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%E(&r)")"# :.2</t"tl&% </h&a'% <*#'+% <1#rm m&th#'/-#!t a)t"# /&(:.2.-h-% I tr#'3T)a la )a t"'a'U <" -3t t+-&/t&Et am&/)a t"'a' !"T&/10% <" -3t t+-&/!3*m"t am&/#R @al3&/& @"ar% <*r% F&l&))"# & &l t"-# '& )# @&r!"# U<*r% <" -3t t+-&/ra'"# am&/)# @ @al3&/1 )h&)R&'%E3r#!<*r% <" -3t t+-&/ra'"# am&/)# @ @al3&/2%'#lar&!<*r% </1#rm% </*#'+% </html% ej5.2.php <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%&(&r)")"# :.2</t"tl&% </h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"-="8"1K"60 &)h# "F# "0 "1 5.1K)# @//16 7 &)h# .1K)a t"'a'/1??.3G?0 &)h# " &3r#!"0 9 &l!& 7 &)h# .1K)a t"'a'/1G0.3G?0 &)h# " '#lar&!"0 9 ,% </*#'+% </html%

Programacin en PHP a travs de ejemplos

"*

"jercicio $.3 /mplie el ejercicio de la galer7a de fotos realizada anteriormente ' permita al usuario a#adir nuevas fotos! Para ello $a' 1ue poner el atributo enc\t'peVmultipart&form-data en el =[RM ' usar la variable L\=I5EATXfotoXU ej5.3.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%Oal&r"a :.3</t"tl&% </h&a'% <*#'+% <1#rm & )t+-&/"m3lt"-art/1#rm-'ata" a)t"# /"&(:.3.-h-" m&th#'/"-#!t"% E @"ar 1#t#U <" -3t am&/"1#t#" t+-&/"1"l&"% <" -3t t+-&/"!3*m"t" @al3&/"E @"ar"% </1#rm% </*#'+% </html% ej5.3.php <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <*#'+% <,-h"1 5"!K3-l#a'&'K1"l&5.KJILEFLC1#t#CNLCtm-K am&CN66 7 . #m*r& / 'at&5D;TEKVJCG2260 -r" t5. #m*r&60 )#-+5.KJILEFLC1#t#CNLCtm-K am&CN8 "1#t#!/. #m*r&.(-="60 9 &l!& &)h# "P#!!"*l& 1"l& 3-l#a' atta)R. J"l& am&U " . .KJILEFLC1#t#CNLC am&CN. "---"..KJILEFLC1#t#CNLCtm-K am&CN0 ,% </*#'+% </html% "jercicio $.# Realizar el conversor de monedas en una Fnica pgina creando una m1uina de estados! M1uinas de estados% a veces puede interesar 1ue una misma pgina se env7e a s7 misma informaci*n! Para ello se implementa una m1uina de estado! 5a idea es 1ue al principio de la

Programacin en PHP a travs de ejemplos

"1

pgina se determina si es la primera invocaci*n de la pgina o si es una llamada a s7 misma con informaci*n2 ' se realiza una acci*n u otra! Por ejemplo% if )is\set)Lf\estado, RR Lf\estadoVVB, ] ec$o !!! ^ resto\del\prog\principal con (IDDE9 /l introducir el elemento (IDDE9 el mismo cliente nos indicar )sin 1ue lo sepa, el estado en el 1ue est! 5a ventaja 1ue tiene el uso de m1uinas de estado es 1ue permite reutilizar c*digo )aun1ue realmente ser7a ms adecuada escribir el c*digo a reutilizar en un fic$ero aparte e incluirlo donde se desee, ' 1ue se reduce el nFmero de pginas de un pro'ecto )lo 1ue facilita su gesti*n2 manejo de versiones2 etc,! /dems2 al reducir el nFmero de pginas tambin se reduce las posibilidades de fallo! / veces puede ser 1ue falle una determinada funcionalidad 1ue dependa de dos pginas2 lo 1ue implica revisar las dos pginas ' comprobar su comunicaci*n! Con una s*lo pgina )con m1uina de estados, es ms sencillo! ej5.4.php <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$"% <html% <h&a'% <m&ta )# t& t/"t&Et/html0 )har!&t/IFO-GG:H-1" htt-&I3"@/")# t& t-t+-&"% <t"tl&%E(&r)")"# :.4</t"tl&% </h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"-="8"1K"60 "1 5"!K!&t5.1K&!ta'#6 DD .1K&!ta'#//16 7 &)h# "F# "0 "1 5.1K)# @//16 &)h# .1K)a t"'a'/1??.3G?." &3r#!<BV%"0 &l!& &)h# .1K)a t"'a'/1G0.3G?." '#lar&!<BV%"0 9 ,% <1#rm m&th#'/-#!t a)t"# /&(:.4.-h-% I tr#'3T)a la )a t"'a'U <" -3t t+-&/t&Et am&/)a t"'a' !"T&/10% <" -3t t+-&/!3*m"t am&/#R @al3&/& @"ar% <*r% F&l&))"# & &l t"-# '& )# @&r!"# U<*r% <" -3t t+-&/ra'"# am&/)# @ @al3&/1 )h&)R&'%E3r#!<*r% <" -3t t+-&/ra'"# am&/)# @ @al3&/2%'#lar&!<*r% <" -3t t+-&/h"''& am&/&!ta'# @al3&/1%

Programacin en PHP a travs de ejemplos

""

</1#rm% </*#'+% </html%

Programacin en PHP a travs de ejemplos

"#

% PHP * M+,-L
:na de las principales razones de la popularidad de P(P es su capacidad para comunicarse con el sistema gestor de bases de datos M'AI5! M'AI5 es un sistema gestor de bases de datos libre 1ue funciona sobre una gran cantidad de sistemas operativos )tanto tipo :9I6&5inu+&KAD como ;indo3s, ' plataformas $ard3are! Entre sus principales caracter7sticas destacan su bajo consumo de recursos manejando grandes cantidades de datos! Est soportado por la empresa M'AI5 5os pasos para trabajar con una base de datos son los siguientes% Primero es necesario realizar una cone+i*n con el sistema de bases de datos! Para ello se usa la funci*n m's1l\connect! Esta funci*n recibe tres cadenas como parmetros% direcci*n IP del servidor2 usuario ' clave! Devuelve un manejador de cone+i*n )o cero si se $a producido un error,! "15!.l" R/m+!IlK)# &)t5C12B.0.0.1C8C-&-&C8C!&)r&t#C66 7 &)h# Q<a hr&1//" '&E.html%Err#r1</a%P 0 &E"t 0 9 En caso de error $a' 1ue comprobar si el e1uipo tiene activado el servidor de M'AI52 si no tiene ningFn cortafuegos 1ue no permita acceder a l ' si e+iste el par de usuario ' clave suministrado! G segundo es seleccionar la base de datos con la 1ue se va a trabajar! "1 5!m+!IlK!&l&)tK'*5Q*"*l"#t&)aP6 7 &)h# Q<a hr&1//" '&E.html%Err#r2</a%P 0 &E"t0 9 En caso de error puede ser 1ue no e+ista la base de datos o 1ue no se tengan permisos para manejarla! En este Fltimo caso se podr7an dar permisos de la siguiente manera% =ra t all -r"@"l&=&! # Ca)m&C0 a)m&.S t# a)m&WCl#)alh#!tC "'& t"1"&' *+

:na vez se tiene una cone+i*n ' una base de datos seleccionada se puede interactuar con el sistema de bases de datos! / continuaci*n describiremos brevemente los comandos AI5 ms usados para las cuatro operaciones ms usadas% altas2 bajas2 modificaciones ' listados sobre una tabla con escritores%

/ltas%

Ainta+is para alta de registro% I9AER4 I94[ tabla )columnaB2 columna , 0/5:EA )XvalorBX2 valor ,O

Programacin en PHP a travs de ejemplos

"$

Ejemplo% I9AER4 I94[ autores )nombre2 apellidos, 0/5:EA )X9ealX2XAtep$ensonX,O


Tabla Autores Nombre +a,rence .ic/ard 01 Al3erto 4eal Apellidos +essig 2tallman 4oguera 2tep/enson Nacionalidad -stadounidense -stadounidense -spa5ol 46++

Modificaciones%

Ainta+is para modificaci*n de registro&s% :PD/4E tabla AE4 columnaBVXvalorBX2 columna VXvalor X2 columnaHVXvalorHX T;(ERE columna9VXvalor9XUO Ejemplo% :PD/4E autores AE4 nacionalidadVXestadounidenseX ;(ERE nombreVX9ealX and apellidosVXAtep$ensonXO
Tabla Autores Nombre +a,rence .ic/ard 01 Al3erto 4eal Apellidos +essig 2tallman 4oguera 2tep/enson Nacionalidad -stadounidense -stadounidense -spa5ol estadounidense

Kajas%

Ainta+is para baja de registro&s% DE5E4E =R[M tabla ;(ERE campoBVXvalorBXO Ejemplo% DE5E4E =R[M autores ;(ERE nombreVX9ealX or apellidoVX9ogueraXO
Tabla Autores Nombre Apellidos +a,rence +essig .ic/ard 01 2tallman Nacionalidad -stadounidense -stadounidense

5istados%

Ainta+is para consulta de registro&s% AE5EC4 columnaB2 columna =R[M tabla ;(ERE columnaHVXvalorBX

Programacin en PHP a travs de ejemplos

"%

[RDER KG columna T /AC _ DEAC U Ae puede usar N )todas las columnas, Ejemplo% AE5EC4 N =R[M autores ;(ERE nacionalidadVXestadounidenseX [RDER KG apellidos DEAC
Resultado de la consulta Nombre Apellidos .ic/ard 01 2tallman +a,rence +essig Nacionalidad -stadounidense -stadounidense

Para manejo de los resultados de una consulta e+isten varias funciones% El nFmero de registros% m's1l\numro3s)Lresult,O 5a informaci*n del campoB para el registro i-simo% LdatoVm's1l\result)Lresult2Li2ScampoBS,O Por ejemplo2 para recorrer el resultado de una consulta imprimiendo el campo nombre en pantalla% "1 5m+!IlK 3mr#A!5.r&!3lt6 % 06 1#r 5."/00."<m+!IlK 3mr#A!5.r&!3lt60."446 &)h# m+!IlKr&!3lt5.r&!3lt8."8" #m*r&"6.Q<*r%P0 Cuando no $aga falta la cone+i*n $a' 1ue cerrarla% m's1l\close)Llin<,O :n mismo manejador puede ejecutar muc$as consultas2 pero s*lo se puede acceder al resultado de la Fltima! El sistema suele cerrar automticamente las cone+iones al terminar de ejecutarse el script! 9o obstante $a' 1ue $acerlo correctamente 0amos a ver ejemplos de pginas 1ue $acen altas2 bajas2 modificaciones ' listados sobre una tabla llamada empresas 1ue estn en una base de datos denominada `buscadorZ2 con los siguientes campos% id )entero autoincrementado2 calve primaria,2 nombre )cadena,2 3eb )cadena,2 telef )cadena,2 sector )cadena,2 descrip )cadena 1ue mostraremos multil7nea,2 <arma )entero 1ue servir para ordenar las empresas,

/lta

alta.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%;lta1</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"%

Programacin en PHP a travs de ejemplos

"&

</h&a'% <*#'+% <h2%;lta '& &m-r&!a</h2% <)& t&r% <JOVM a)t"# /Calta2.-h-C m&th#'/CPOFTC% <T;BLE *#r'&r/0% <TV% <TD%$#m*r&</TD% <TD%<I$PUT t+-&/Ct&EtC maEl& =th/C30C%</TD% </TV% <TV% <TD%W&*</TD% <TD%<I$PUT t+-&/Ct&EtC </TV% <TV% <TD%T&l&1</TD% <TD%<I$PUT t+-&/Ct&EtC </TV% <TV% <TD%F&)t#r</TD% <TD%<I$PUT t+-&/Ct&EtC maEl& =th/C30C%</TD% </TV% <TV% <TD%D&!)r"-</TD% <TD%<I$PUT t+-&/Ct&EtC maEl& =th/C:0C%</TD% </TV% <TV% <TD%Yarma</TD% <TD%<I$PUT t+-&/Ct&EtC </TV% </ta*l&%

am&/C #m*r&C !"T&/C30C

am&/CA&*C !"T&/C30C maEl& =th/C30C%</TD%

am&/Ct&l&1C !"T&/C20C maEl& =th/C20C%</TD%

am&/C!&)t#rC !"T&/C30C

am&/C'&!)r"-C !"T&/C:0C

am&/CRarmaC !"T&/C3C maEl& =th/C3C%</TD%

<I$PUT t+-&/C!3*m"tC @al3&/C;)&-tarC% </JOVM% </)& t&r% </*#'+% </html% alta2.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%alta2</t"tl&%

Programacin en PHP a travs de ejemplos

"'

<m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"P"8"1K"60 .l" &a1/"I$FEVT I$TO &m-r&!a! 5 #m*r&8 A&*8 t&l&18 !&)t#r8 '&!)r"-8 Rarma6 "0 .l" &a2/" Z;LUEF 5C.1K #m*r&C8 C.1KA&*C8 C.1Kt&l&1C8 C.1K!&)t#rC8 C.1K'&!)r"-C8 C.1KRarmaC6 "0 .)# !3lta/.l" &a1..l" &a20 //&)h# .)# !3lta0 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<*r%;lta )#rr&)ta"0 &)h# "<*r%<*r%<a hr&1/Calta.htmlC%Otra alta</a%"0 &)h# "<*r%<*r%<a hr&1/C" '&E.htmlC%I ")"#</a%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html%

Kaja

Programacin en PHP a travs de ejemplos

"(

baja.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%*a(a1</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h.l" &a1/"FELECT S JVOM &m-r&!a! "0 .)# !3lta/.l" &a10 //&)h# .)# !3lta0 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<h2%F&l&))"# & &m-r&!a/! a 'ar '& *a(a</h2%"0 &)h# "<CE$TEV%"0 &)h# "<JOVM ;CTIO$/*a(a2.-h- METHOD/POFT%"0 &)h# "<T;BLE BOVDEV/1%"0 1#r 5."/00."<m+!IlK 3mr#A!5.r&!3lt60."446 7 ."'/m+!IlKr&!3lt5.r&!3lt8."8""'"60 . #m*r&/m+!IlKr&!3lt5.r&!3lt8."8" #m*r&"60

Programacin en PHP a travs de ejemplos

")

&)h# "<TV%<TD%<I$PUT t+-&/C)h&)R*#EC am&/C*#rrarL."'NC%</TD%<TD%. #m*r&</TD%</TV%"0 9 &)h# "</T;BLE%"0 &)h# "<I$PUT t+-&/C!3*m"tC @al3&/CB#rrarC%"0 &)h# "</JOVM%"0 &)h# "</CE$TEV%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html% baja2.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"P"8"1K"60 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 1#r&a)h 5.1K*#rrar a! ." '")& /% .@al#r6 7 "1 5.@al#r//"# "6 7

Programacin en PHP a travs de ejemplos

#*

.l" &a1/"DELETE JVOM &m-r&!a! "0 .l" &a2/" WHEVE "'/C." '")&C "0 .)# !3lta/.l" &a1..l" &a20 //&)h# ".)# !3lta"0 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & &l *#rrar'#</a%"0 &E"t0 9 9 9 &)h# "<*r%B#rra'# )#rr&)t#"0 &)h# "<*r%<*r%<a hr&1/C*a(a.-h-C%Otra *a(a</a%"0 &)h# "<*r%<*r%<a hr&1/C" '&E.htmlC%I ")"#</a%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html%

Modificaciones

modif.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%m#'"11</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h.l" &a1/"FELECT S JVOM &m-r&!a! "0 .)# !3lta/.l" &a10 //&)h# .)# !3lta0 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0

Programacin en PHP a travs de ejemplos

#1

&E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<h2%F&l&))"# & &m-r&!a/! a 'ar m#'"1")ar</h2%"0 &)h# "<CE$TEV%"0 &)h# "<JOVM ;CTIO$/m#'"12.-h- METHOD/POFT%"0 &)h# "<T;BLE BOVDEV/1%"0 1#r 5."/00."<m+!IlK 3mr#A!5.r&!3lt60."446 7 ."'/m+!IlKr&!3lt5.r&!3lt8."8""'"60 . #m*r&/m+!IlKr&!3lt5.r&!3lt8."8" #m*r&"60 &)h# "<TV%<TD%<I$PUT t+-&/Cra'"#C am&/Cm#'"1C @al3&/C."'C%</TD%<TD%. #m*r&</TD%</TV%"0 9 &)h# "</T;BLE%"0 &)h# "<I$PUT t+-&/C!3*m"tC @al3&/CM#'"1C%"0 &)h# "</JOVM%"0 &)h# "</CE$TEV%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html% modif2.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html%

Programacin en PHP a travs de ejemplos

#"

<h&a'% <t"tl&%m#'"12</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"P"8"1K"60 .l" &a1/"FELECT S JVOM &m-r&!a! "0 .l" &a2/" WHEVE "'/C.1Km#'"1C "0 .)# !3lta/.l" &a1..l" &a20 //&)h# .)# !3lta0 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 ,% <h2%M#'"1 '& &m-r&!a</h2% <)& t&r% <JOVM a)t"# /Cm#'"13.-h-C m&th#'/CPOFTC% <T;BLE *#r'&r/0% <TV% <TD%$#m*r&</TD% <TD%<I$PUT t+-&/Ct&EtC am&/C #m*r&C !"T&/C30C maEl& =th/C30C @al3&/C<,-h- -r" t5m+!IlKr&!3lt5.r&!3lt808C #m*r&C660 ,%C %</TD% </TV% <TV%

Programacin en PHP a travs de ejemplos

##

<TD%W&*</TD% <TD%<I$PUT t+-&/Ct&EtC am&/CA&*C !"T&/C30C maEl& =th/C30C @al3&/C<,-h- -r" t5m+!IlKr&!3lt5.r&!3lt808CA&*C660 ,%C%</TD% </TV% <TV% <TD%T&l&1</TD% <TD%<I$PUT t+-&/Ct&EtC am&/Ct&l&1C !"T&/C20C maEl& =th/C20C @al3&/C<,-h- -r" t5m+!IlKr&!3lt5.r&!3lt808Ct&l&1C660 ,%C%</TD% </TV% <TV% <TD%F&)t#r</TD% <TD%<I$PUT t+-&/Ct&EtC am&/C!&)t#rC !"T&/C30C maEl& =th/C30C @al3&/C<,-h- -r" t5m+!IlKr&!3lt5.r&!3lt808C!&)t#rC660 ,%C%</TD% </TV% <TV% <TD%D&!)r"-</TD% <TD%<I$PUT t+-&/Ct&EtC am&/C'&!)r"-C !"T&/C:0C maEl& =th/C:0C @al3&/C<,-h- -r" t5m+!IlKr&!3lt5.r&!3lt808C'&!)r"-C660 ,%C%</TD% </TV% <TV% <TD%Yarma</TD% <TD%<I$PUT t+-&/Ct&EtC am&/CRarmaC !"T&/C3C maEl& =th/C3C @al3&/C<,-h- -r" t5m+!IlKr&!3lt5.r&!3lt808CRarmaC660 ,%C%</TD% </TV% </ta*l&% <I$PUT t+-&/Ch"''& C am&/C"'C @al3&/C<,-h-r" t5m+!IlKr&!3lt5.r&!3lt808C"'C660 ,%C% <I$PUT t+-&/C!3*m"tC @al3&/C;)&-tarC% </JOVM% </)& t&r% <,-hm+!IlK)l#!&5.l" R60 ,% </*#'+% </html% modif3.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%m#'"13</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"%

Programacin en PHP a travs de ejemplos

#$

</h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"P"8"1K"60 .l" &a1/"UPD;TE &m-r&!a! "0 .l" &a2/" FET #m*r&/C.1K #m*r&C8 A&*/C.1KA&*C8 t&l&1/C.1Kt&l&1C8 !&)t#r/C.1K!&)t#rC8 '&!)r"-/C.1K'&!)r"-C8 Rarma/C.1KRarmaC "0 .l" &a3/" WHEVE "'/C.1K"'C "0 .)# !3lta/.l" &a1..l" &a2..l" &a30 &)h# .)# !3lta0 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<*r%M#'"1 )#rr&)ta"0 &)h# "<*r%<*r%<a hr&1/Cm#'"1.-h-C%Otra m#'"1</a%"0 &)h# "<*r%<*r%<a hr&1/C" '&E.htmlC%I ")"#</a%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html%

Consulta de todas las empresas ordenadas por nombre

consulta1.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html%

Programacin en PHP a travs de ejemplos

#%

<h&a'% <t"tl&%C# !3lta1</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h.l" &a1/"FELECT S JVOM &m-r&!a! OVDEV BY .)# !3lta/.l" &a10 //&)h# .)# !3lta0 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<h2%Em-r&!a!</h2%"0 &)h# "<CE$TEV%"0 &)h# "<T;BLE BOVDEV/1%"0 &)h# "<TV%<TD%$#m*r&</TD%<TD%W&*</TD%<TD%T&l&1.</TD% <TD%F&)t#r</TD%<TD%D&!)r"-.</TD%<TD%Yarma</TD%</TV%"0 1#r 5."/00."<m+!IlK 3mr#A!5.r&!3lt60."446 7 &)h# "<TV%"0 . #m*r&/m+!IlKr&!3lt5.r&!3lt8."8" #m*r&"60 &)h# "<TD%. #m*r&</TD%"0 .A&*/m+!IlKr&!3lt5.r&!3lt8."8"A&*"60 #m*r&"0

Programacin en PHP a travs de ejemplos

#&

&)h# "<TD%.A&*</TD%"0 .t&l&1/m+!IlKr&!3lt5.r&!3lt8."8"t&l&1"60 &)h# "<TD%.t&l&1</TD%"0 .!&)t#r/m+!IlKr&!3lt5.r&!3lt8."8"!&)t#r"60 &)h# "<TD%.!&)t#r</TD%"0 .'&!)r"-/m+!IlKr&!3lt5.r&!3lt8."8"'&!)r"-"60 &)h# "<TD%.'&!)r"-</TD%"0 .Rarma/m+!IlKr&!3lt5.r&!3lt8."8"Rarma"60 &)h# "<TD%.Rarma</TD%"0 &)h# "</TV%"0 9 &)h# "</T;BLE%"0 &)h# "</CE$TEV%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html%

Consulta de todas las empresas ordenadas por sector ' <arma con franjas opcionales

consulta2.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%)# !3lta2</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <JOVM a)t"# /C)# !3lta2.-h-C m&th#'/CPOFTC% <I$PUT t+-&/C)h&)R*#EC am&/C)am*"#C% ;lt&r ar 1ra (a! <*r% <I$PUT t+-&/C!3*m"tC @al3&/CO& &rar " 1#rm&C% </JOVM% </*#'+% </html%

Programacin en PHP a travs de ejemplos

#'

consulta2.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%)# !3lta2</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"-"8"1K"60 .l" &a1/"FELECT S JVOM &m-r&!a! OVDEV BY !&)t#r8 Rarma DEFC"0 .)# !3lta/.l" &a10 //&)h# .)# !3lta0 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<h2%Em-r&!a!</h2%"0 &)h# "<CE$TEV%"0 &)h# "<T;BLE BOVDEV/1%"0 &)h# "<TV%<TD%$#m*r&</TD%<TD%W&*</TD%<TD%T&l&1.</TD%<TD%F&)t#r</TD%<TD% D&!)r"-.</TD%<TD%Yarma</TD%</TV%"0

Programacin en PHP a travs de ejemplos

#(

1#r 5."/00."<m+!IlK 3mr#A!5.r&!3lt60."446 7 "1 5.1K)am*"# DD 5."<266 &)h# "<TV *=)#l#r/C>B?BBBBC%"0 &l!& &)h# "<TV *=)#l#r/CAh"t&C%"0 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8" #m*r&"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"A&*"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"t&l&1"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"!&)t#r"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"'&!)r"-"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"Rarma"6."</TD%"60 &)h# "</TV%"0 9 &)h# "</T;BLE%"0 &)h# "</CE$TEV%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html%

Consulta de todas las empresas limitando la descripci*n ' con $iperenlaces

consulta3.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%)# !3lta3</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h-

Programacin en PHP a travs de ejemplos

#)

.l" &a1/"FELECT S JVOM &m-r&!a! OVDEV BY .)# !3lta/.l" &a10 //&)h# .)# !3lta0

#m*r&"0

"1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<h2%Em-r&!a!</h2%"0 &)h# "<CE$TEV%"0 &)h# "<T;BLE BOVDEV/1%"0 &)h# "<TV%<TD%$#m*r&</TD%<TD%T&l&1.</TD%<TD%F&)t#r</TD% <TD%D&!)r"-.</TD%<TD%Yarma</TD%</TV%"0 1#r 5."/00."<m+!IlK 3mr#A!5.r&!3lt60."446 7 &)h# "<TV%"0 .A&*/m+!IlKr&!3lt5.r&!3lt8."8"A&*"60 -r" t5"<TD%<; hr&1/htt-U//.A&*%".m+!IlKr&!3lt5.r&!3lt8."8" #m*r&"6."</;%</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"t&l&1"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"!&)t#r"6."</TD%"60 .'&!)r"-/m+!IlKr&!3lt5.r&!3lt8."8"'&!)r"-"60 "1 5!trl& 5.'&!)r"-6%1:6 -r" t5"<TD%".!3*!tr5.'&!)r"-808146."...</TD%"60 &l!& -r" t5"<TD%.'&!)r"-</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"Rarma"6."</TD%"60

Programacin en PHP a travs de ejemplos

$*

&)h# "</TV%"0 9 &)h# "</T;BLE%"0 &)h# "</CE$TEV%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html%

Consulta de todas las empresas ordenando como se desee

consulta4.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%)# !3lta4</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"=-"8"1K"60 13 )t"# & la)& 5.)am-#8 .#r'& 8 .a)t3al6 7 "1 5!tr)m-5.)am-#8.a)t3al66 .r'#/ "<; hr&1/C)# !3lta4.-h-,)am-#/.a)t3alD#r'& /;FCC%".3)1"r!t5.a)t3al6."< /;%"0 &l!& "1 5 ! !tr)m-5.#r'& 8";FC"66 .r'#/"<; hr&1/C)# !3lta4.-h-,)am-#/.a)t3alD#r'& /DEFCC%".3)1"r!t5.a)t3al6." </;%"0 &l!& .r'#/"<; hr&1/C)# !3lta4.-h-,)am-#/.a)t3alD#r'& /;FCC%".3)1"r!t5.a)t3al6."< /;%"0 r&t3r 9 .r'#0

Programacin en PHP a travs de ejemplos

$1

"1 5 ! "!!&t 5.1K)am-#66 .l" &a1/"FELECT S JVOM &m-r&!a! OVDEV BY #m*r&"0 &l!& .l" &a1/"FELECT S JVOM &m-r&!a! OVDEV BY .1K)am-# .1K#r'& "0 .)# !3lta/.l" &a10 //&)h# .)# !3lta0 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<h2%Em-r&!a!</h2%"0 &)h# "<CE$TEV%"0 &)h# "<T;BLE BOVDEV/1%"0 &)h# "<TV%"0 -r" -r" -r" -r" -r" -r" t t t t t t 5"<TD%".& 5"<TD%".& 5"<TD%".& 5"<TD%".& 5"<TD%".& 5"<TD%".& la)&5.1K)am-#8 la)&5.1K)am-#8 la)&5.1K)am-#8 la)&5.1K)am-#8 la)&5.1K)am-#8 la)&5.1K)am-#8 .1K#r'& .1K#r'& .1K#r'& .1K#r'& .1K#r'& .1K#r'& 8 8 8 8 8 8 " #m*r&"6."</TD%"60 "A&*"6."</TD%"60 "t&l&1"6."</TD%"60 "!&)t#r"6."</TD%"60 "'&!)r"-"6."</TD%"60 "Rarma"6."</TD%"60

&)h# "</TV%"0 1#r 5."/00."<m+!IlK 3mr#A!5.r&!3lt60."446 7 &)h# "<TV%"0 . #m*r&/m+!IlKr&!3lt5.r&!3lt8."8" #m*r&"60

Programacin en PHP a travs de ejemplos

$"

&)h# "<TD%. #m*r&</TD%"0 .A&*/m+!IlKr&!3lt5.r&!3lt8."8"A&*"60 &)h# "<TD%.A&*</TD%"0 .t&l&1/m+!IlKr&!3lt5.r&!3lt8."8"t&l&1"60 &)h# "<TD%.t&l&1</TD%"0 .!&)t#r/m+!IlKr&!3lt5.r&!3lt8."8"!&)t#r"60 &)h# "<TD%.!&)t#r</TD%"0 .'&!)r"-/m+!IlKr&!3lt5.r&!3lt8."8"'&!)r"-"60 &)h# "<TD%.'&!)r"-</TD%"0 .Rarma/m+!IlKr&!3lt5.r&!3lt8."8"Rarma"60 &)h# "<TD%.Rarma</TD%"0 &)h# "</TV%"0 9 &)h# "</T;BLE%"0 &)h# "</CE$TEV%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html%

Consulta de empresas de un sector

funciones.php <,-h13 )t"# )# &)tar5.*''6 7 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5.*''66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9 r&t3r .l" R0

Programacin en PHP a travs de ejemplos

$#

9 13 )t"# =& &rarK!&l&)t5.)am-#6 7 )# &)tar5"*3!)a'#r"60 &)h# "<!&l&)t am&/.)am-#%"0

.l" &a1/"!&l&)t S 1r#m &m-r&!a! =r#3- *+ .)am-#"0 .!Il / .l" &a10 .r&!3lt / m+!IlKI3&r+5.!Il60 "1 5!.r&!3lt6 7 &)h# "J =& &rarK!&l&)tU Err#r al a))&'&r a la *a!& '& 'at#!" 0 &)h# "<a hr&1/C./" '&E.htmlC%C# t" 3ar</a%<BV%[ "0 &E"t0 9 &l!& 7 1#r5."/00 ." < m+!IlK 3mr#A!5.r&!3lt60 ."446 7 .@/m+!IlKr&!3lt5.r&!3lt8 ."8 .)am-#60 &)h# &)h# &)h# &)h# 9 9 &)h# "</!&l&)t%"0 9 ,% consulta5.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%)# !3lta:</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% "<#-t"# @al3&/C.@C%"0 ".@"0 "</#-t"# %"0 "[ "0

Programacin en PHP a travs de ejemplos

$$

<JOVM a)t"# /C)# !3lta:-2.-h-C m&th#'/CPOFTC% F&l&))"# & !&)t#r <,-h" )l3'&K# )&5"13 )"# &!.-h-"60 =& &rarK!&l&)t5"!&)t#r"60 ,% <I$PUT t+-&/C!3*m"tC @al3&/CO& &rar " 1#rm&C% </JOVM% </*#'+% </html% consulta5-2.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%)# !3lta:-2</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"-"8"1K"60 .l" &a1/"FELECT S JVOM &m-r&!a! WHEVE !&)t#r/C.1K!&)t#rC OVDEV BY #m*r& "0 .)# !3lta/.l" &a10 //&)h# .)# !3lta0 "1 5 ! .l" R/m+!IlK)# &)t5Cl#)alh#!tC8Cr##tC8CC66 7 &)h# "<a hr&1/" '&E.html%Err#r al )# &)tar</a%"0 &E"t 0 9 "1 5 ! m+!IlK!&l&)tK'*5"*3!)a'#r"66 7 &)h# "<a hr&1/" '&E.html%Err#r al !&l&))"# ar BDD</a%"0 &E"t0 9

Programacin en PHP a travs de ejemplos

$%

"1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<h2%Em-r&!a!</h2%"0 &)h# "<CE$TEV%"0 &)h# "<T;BLE BOVDEV/1%"0 &)h# "<TV%<TD%$#m*r&</TD%<TD%W&*</TD%<TD%T&l&1.</TD%<TD%F&)t#r</TD%<TD% D&!)r"-.</TD%<TD%Yarma</TD%</TV%"0 1#r 5."/00."<m+!IlK 3mr#A!5.r&!3lt60."446 7 "1 5.1K)am*"# DD 5."<266 &)h# "<TV *=)#l#r/C>B?BBBBC%"0 &l!& &)h# "<TV *=)#l#r/CAh"t&C%"0 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8" #m*r&"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"A&*"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"t&l&1"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"!&)t#r"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"'&!)r"-"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"Rarma"6."</TD%"60 &)h# "</TV%"0 9 &)h# "</T;BLE%"0 &)h# "</CE$TEV%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html%

Programacin en PHP a travs de ejemplos

$&

Consulta telef*nica

consulta6.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%)# !3lta?</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <JOVM a)t"# /C)# !3lta?.-h-C m&th#'/CPOFTC% I tr#'3T)a t&l&1. <I$PUT t+-&/Ct&EtC am&/Ct&l&1C% <*r% <I$PUT t+-&/C!3*m"tC @al3&/CO& &rar " 1#rm&C% </JOVM% </*#'+% </html% consulta6.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra !"t"# al//E$" "htt-U//AAA.A3.#r=/TV/html4/l##!&.'t'"% <html% <h&a'% <t"tl&%)# !3lta?</t"tl&% <m&ta am&/"OE$EV;TOV" )# t& t/"X3a ta Pl3!"% <m&ta htt--&I3"@/"C# t& t-T+-&" )# t& t/"t&Et/html0 )har!&t/"!#GG:H-1"% </h&a'% <*#'+% <,-h" )l3'&K# )&5"13 )"# &!.-h-"60 "m-#rtKr&I3&!tK@ar"a*l&!5"-"8"1K"60 .l" R/)# &)tar5"*3!)a'#r"60 //.l" &a1/"FELECT S JVOM &m-r&!a! Ah&r& t&l&1/C.1Kt&l&1C OVDEV BY #m*r&"0 .l" &a1/"FELECT S JVOM &m-r&!a! Ah&r& t&l&1 LIYE C<.1Kt&l&1<C OVDEV BY #m*r&"0 .)# !3lta/.l" &a10

Programacin en PHP a travs de ejemplos

$'

//&)h# .)# !3lta0 "1 5 ! .r&!3lt/m+!IlKI3&r+5.)# !3lta8.l" R66 7 &)h# "<a hr&1/" '&E.html%Err#r & la )# !3lta</a%"0 &E"t0 9 &)h# "<h2%Em-r&!a!</h2%"0 &)h# "<CE$TEV%"0 &)h# "<T;BLE BOVDEV/1%"0 &)h# "<TV%<TD%$#m*r&</TD%<TD%W&*</TD%<TD%T&l&1.</TD% <TD%F&)t#r</TD%<TD%D&!)r"-.</TD%<TD%Yarma</TD%</TV%"0 1#r 5."/00."<m+!IlK 3mr#A!5.r&!3lt60."446 7 &)h# "<TV%"0 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8" #m*r&"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"A&*"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"t&l&1"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"!&)t#r"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"'&!)r"-"6."</TD%"60 -r" t5"<TD%".m+!IlKr&!3lt5.r&!3lt8."8"Rarma"6."</TD%"60 &)h# "</TV%"0 9 &)h# "</T;BLE%"0 &)h# "</CE$TEV%"0 m+!IlK)l#!&5.l" R60 ,% </*#'+% </html%

Programacin en PHP a travs de ejemplos

$(

& ,esiones en PHP


:na de las principales limitaciones del protocolo (44P es 1ue no permite relacionar peticiones consecutivas en sesiones! El concepto de sesi*n es importante2 por1ue permite 1ue no tengan 1ue reenviar los mismos datos en todas las peticiones )' respuestas, entre cliente ' servidor! Para solucionar este problema2 P(P proporciona manejo de sesiones2 1ue permite conservar datos de una peterminada petici*n en peticiones de la misma m1uina! Para ello cada petici*n de un cliente recibe un identificador Fnico llamado Ssession\idS! Este valor se puede almacenar en una coo<ie o bien propagarlo en la :R5! Para crear una sesi*n se usa la funci*n session\start),! / partir del momento en 1ue se invo1ue2 se pueden almacenar variables en ella con la siguiente sinta+is% L\AEAAI[9TXvariableBXU V PO Para disponer de las variables en pginas sucesivas tienen 1ue invocar la funci*n session\start),! Con la funci*n session\register), tambin se puede iniciar sesiones2 almacenar variables en ellas ' $acer accesibles variables de la sesi*n creada anteriormente! Es importante remarcar 1ue tanto la funci*n session\start), como session\register tienen 1ue invocarse antes de enviar ningFn dato al cliente! Es decir2 tienen 1ue ir antes de la marca >(4M5@ e2 incluso2 antes de ningFn retorno de carro2 espacio o tabulador! Para eliminar una variable de una sesi*n se podr7a $acer% unset)L\AEAAI[9TXvariableBXU,O G para eliminar la sesi*n session\destro'),O Por ejemplo2 si 1ueremos tener una pgina privada a la 1ue s*lo se puede acceder si e+iste una sesion con la variable SaccesoS con valor B2 ser7a necesario el siguiente c*digo% index.html <JOVM METHOD/POFT ;CTIO$/a))&!#.-h-% <I$PUT TYPE/TE\T $;ME/ #m*r&% <I$PUT TYPE/P;FFWOVD $;ME/)la@&% <I$PUT TYPE/FUBMIT% </JOVM% acceso.php <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"P"8"1K"60 "1 5!!tr)m-5.1K #m*r&8"r##t"6 DD !!tr)m-5.1K)la@&8"!3-&r"66 7 !&!!"# K!tart560 .KFEFFIO$LCa))&!#CN/10 9 &)h# "<a hr&1/-r"@a'a.-h-%;))&'&r a la -]=" a -r"@a'a</a%"0

Programacin en PHP a travs de ejemplos

$)

privada.php <,-h!&!!"# K!tart560 "1 5.KFEFFIO$LCa))&!#CN!/"1"6 7 h&a'&r5"L#)at"# U" '&E.html"60 &E"t0 9 &)h# "B"& @& "'# a la -]=" a -r"@a'a"0 &)h# "<a hr&1/!al"r.-h-%Fal"r '&l !"!t&ma</a%"0 ,% salir.php <^-h!&!!"# K'&!tr#+560 &)h# "Ha !al"'# '&l !"!t&ma"0 &)h# "<a hr&1/" '&E.html%Z#l@&r al " ")"#</a%"0 ,% / la $ora de trabajar se puede simplificar el manejo creando varios fic$eros 1ue comprueban los permisos de acceso de diferentes niveles! Por ejemplo2 se puede crear un fic$ero 1ue autenti1ue dos tipos de acceso )B o ,% index.php <,-h"m-#rtKr&I3&!tK@ar"a*l&!5"P"8"1K"60 "15.@ar/t"-#Ka))&!#5.1K #m*r&8.1K)la@&66 7 !&!!"# K!tart560 .KFEFFIO$LCa))&!#CN/.@ar0 h&a'&r5"L#)at"# U" ")"#.-h-"60 9 &l!& 7 &)h# "<h2%Cla@& " )#rr&)ta</h2%"0 9 ,% <JOVM METHOD/POFT ;CTIO$/" '&E.-h-% <I$PUT TYPE/TE\T $;ME/ #m*r&% <I$PUT TYPE/P;FFWOVD $;ME/)la@&% <I$PUT TYPE/FUBMIT% </JOVM% seguridad1.php <,-h!&!!"# K!tart560

Programacin en PHP a travs de ejemplos

%*

"1 5.KFEFFIO$LCa))&!#CN!/"1"6 7 h&a'&r5"L#)at"# U" '&E.-h-"60 &E"t0 9 ,% seguridad2.php <,-h!&!!"# K!tart560 "1 5.KFEFFIO$LCa))&!#CN!/"2"6 7 h&a'&r5"L#)at"# U" '&E.-h-"60 &E"t0 9 ,% salir.php <^-h!&!!"# K'&!tr#+560 &)h# "Ha !al"'# '&l !"!t&ma"0 &)h# "<a hr&1/" '&E.-h-%Z#l@&r al " ")"#</a%"0 ,% G el resto de pginas del sistema tendr7an como primera l7nea una de las dos siguientes segFn el nivel de seguridad al 1ue pertenezcan% <,-h- " )l3'&5"!&=3r"'a'1.-h-"6 ,% <,-h- " )l3'&5"!&=3r"'a'2.-h-"6 ,%

Programacin en PHP a travs de ejemplos

%1

Orientacin a objetos en PHP


PHP se ha centrado siempre en el paradigma de la programacin estructurada, pero eran muchas las voces que pedian que este lenguaje de programacin fuese poco a poco dando paso a otros paradigmas de programacin, de entre los cuales el ms demandado era sin lugar a dudas el relativo a la orientacin de objetos. As pues paso a paso en sucesivas versiones, comenzo mu discretamente en la version ! incrementandose el n"mero de funcionalidades posibles en cada revisin, se empezaron a incluir diversos mecanismos con los que poder llevar a cabo aplicaciones basadas en el paradigma anteriormente citado conocido por todos. Pero es que, conscientes de la potencia de otras estructuras no propias de la orientacin de objetos a la que nos acostumbran lenguajes tales como #$$, como pueden ser las interfaces propias del mundo %ava, PHP ha ido introduciendo todas estos artefactos para que la facilidad de adaptacin de programadores procedentes de estos lenguajes sea representada con una curva de aprendizaje suave. &amos a ver las estructuras que PHP nos proporciona para llevar a cabo la orientacin a objetos.

Clases
'e aplica el concepto de clase que todos conocemos, entidad contenedora de informacin basada en atributos en m(todos de construccin, modificacin consulta de dichos atributos necesarios suficientes para representar un objeto con el que trabajar o procesar informacin relativa al dominio del problema en el que nos estamos moviendo. Para esto se define la palabra reservada class. &amos a ver un ejemplo de definicin de una clase en PHP.
usuario1class1p/p

1 //-------------------------------------------------------------2 // Creacin de la clase Usuario 3 // Autor: Ildefonso Montero Prez - monteroperez arro!a"us#es $ //-------------------------------------------------------------% &'p(p ) class Usuario * + // A,-I.U,/0 1 private 2nom!re3eUsuario4 15 private 2pala!raCla6e4 11 12 // C/70,-UC,/- 38 9A C9A08 13 public function Usuario:; " 1$ 1% // <U7CI/780 C/70U9,/-A0 1) public function =et7om!re3eUsuario:; return $this->nom!re3eUsuario4 " 1* public function =etPala!raCla6e:; return $this->pala!raCla6e4 " 1+ 11 // <U7CI/780 M/3I<ICA3/-A0 25 public function set7om!re3eUsuario:2nu; $this->nom!re3eUsuario ? nu4 " 21 public function setPala!raCla6e:2pc; $this->pala!raCla6e ? 2pc4 "

Programacin en PHP a travs de ejemplos 22 23 " 2$ '>

%"

&amos a comentar detalladamente el ejemplo que se adjunta. )n (l estamos definiendo una clase que representar a un usuario de una aplicacin. )s un ejemplo mu bsico en el que se introducir unicamente el nombre de usuario su contrase*a, tpico ejemplo de un sistema de autenticacin. Para ello definiremos dos atributos denominados nom!redeUsuario pala!raCla6e los cuales podremos consultar modificar mediante sus respectivas funciones consultoras modificadoras, ms comunmente conocidas como funciones getters setters. Podemos comprobar en las cuatro primeras lineas que esta permitido el tipo de comentario propio de #$$ + ,, - vemos que a partir de la se.ta linea comenzamos con la definicion de la clase mediante la palabra reservada class seguida del nombre de la clase, en este caso /suario. 0os atributos son definidos como variables con visibilidad privada mediante la palabra clave pri6ate, tambien podriamos optar por hacer uso de 6ar pero de esta forma estas variables serian publicas no nos interesa )sto se define en las lineas nueve diez. A continuacin definimos el constructor en la linea trece como una funcin definida como publica mediante pu!lic function donde como vemos no es necesario introducir el tipo de objeto que se devuelve tras la llamada a la funcin o metodo como ocurre en %ava o #$$, es decir, nos olvidamos de indicar si la funcin devuelve un entero, un char o un tipo determinado, o si ni siquiera devuelve nada + void -. 1o es necesario en PHP. As pues a tenemos definida toda la clase. 2erece especial atencin la variable 2t(is la cual corresponde como equivalente a t(is en #$$ o %ava, es decir, una instancia del propio objeto que estamos modelando. A continuacin vamos a ver un ejemplo de uso de esta clase en el que crearemos una instancia de un usuario e introduciremos unos datos concretos.
veranoa7ul1p/p

1 &'p(p 2 require_once:@usuario#class#p(p@;4 3 2usuario ? new Usuario:;4 $ 2usuario->set7om!re3eUsuario:@c(anAuete@;4 % 2usuario->setPala!raCla6e:@(amuerto@;4 ) * echo @7om!re de Usuario: @#2usuario->=et7om!re3eUsuario:;#@&!r>@4 + echo @Pala!ra Cla6e: @#2usuario->=etPala!raCla6e:;#@&!r>@4 1 15 2usuario->setPala!raCla6e:@nonosmo6eran@;4 11 12 echo @7om!re de Usuario: @#2usuario->=et7om!re3eUsuario:;#@&!r>@4 13 echo @Pala!ra Cla6e: @#2usuario->=etPala!raCla6e:;#@&!r>@4 1$ '>

)n este ejemplo vemos como hacer uso de la clase que hemos definido en el fichero

Programacin en PHP a travs de ejemplos usuario1class1p/p

%#

con lo que necesitamos que se inclu a la definicion contenida en este fichero de la clase /suario. Para ello hacemos uso de reAuireBonceCesta es la opcin ms ptima para la carga de definiciones a que forzamos que solo se inclu a una "nica vez dentro de todo el cdigo. A partir de la linea tres empezamos a trabajar con la clase anteriormente definida. Para ello creamos una variable denominada 2usuario mediante neD construimos una nueva instancia de la clase /suario, a la que vamos a inicializar sus atributos en las lineas cuatro cinco posteriormente en la diez. &eamos la salida en el navegador de este cdigo3 7om!re de Usuario: c(anAuete Pala!ra Cla6e: (amuerto 7om!re de Usuario: c(anAuete Pala!ra Cla6e: nonosmo6eran

Herencia
PHP nos permite hacer uso de herencia entre clases, para ello se introduce la palabra clave extends. A continuacin vamos a ver un ejemplo de como aplicar herencia entre dos clases PHP como referenciar a la superclase desde una clase hija. )l ejemplo se centrar en una clase que heredar de la clase anteriormente comentada /suario para crear la clase 2i/suario.
miusuario1class1p/p

1 &'p(p require_once:@usuario#class#p(p@;4 class MiUsuario extends Usuario ### public function una<uncionCualAuiera: ### ; ### ec(o parent::=et7om!re3eUsuario:;4 " ### 8 '>

#omo se puede observar se hace uso de extends para heredar de la clase padre parent:: acceder a la misma.

mediante

Interfaces
)l concepto de interfaz es procedente del mundo %ava. /na interfaz es una entidad que encierra funcionalidades que pueden ser implementadas por diversos objetos. 'on mu utiles para poder permitir identificar rapidamente las funcionalidades que un sistema soft4are nos proporciona sin necesidad de acceder a ver los m(todos de las clases que lo conformen. )sto se lleva a cabo mediante la palabra reservada interface. &eamos un ejemplo de interfaz

Programacin en PHP a travs de ejemplos

%$

escrita en PHP3
idataaccess1class1p/p

1 //------------------------------------------------------------2 // Implementacin de la interfaz de acceso a !ase de datos 3 // Autor: Ildefonso Montero Prez - monteroperezEus#es $ //------------------------------------------------------------% &'p(p ) interface I3ataAccess * public function eFecute:2sAlAuerG;4 + public function de!u=HuerG:2sAlAuerG;4 1 " 15 '>

#omo podemos observar la definicin es identica. )n este caso dado que estamos definiendo un contenedor de funcionalidades, iremos introduciendo funciones dentro de esta definicin. 1o tiene sentido que una interfaz sea definida si no va a e.istir por lo menos un objeto que sea capaz de implementarla. )sto quiere decir que necesitaremos definir una clase que implemente los metodos contenidos en esta interfaz. &eamoslo para el ejemplo anteriormente citado en el que la interfaz encierra funcionalidades tpicas de una fachada de confrontacion de queries a una base de datos.
m9s:ldataaccess1class1p/p

1 2 3 $ % )

//------------------------------------------------------------// Clase Aue confronta Aueries contra !!dd de tipo MG0H9 // Autor: Ildefonso Montero Prez - monteroperezEus#es //------------------------------------------------------------&'p(p class MG0H93ataAccess implements I3ataAccess ### public function eFecute:2sAlAuerG; ### " public function de!u=HuerG:2sAlAuerG; ### " ###

" '>

)n este ejemplo hemos introducido una clase que lleva a cabo la implementacin de las funcionalidades introducidas en la interfaz definida anteriormente. Para ello podemos observar que se a*ade la palabra reservada implements.

You might also like