Está en la página 1de 90

e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !

ardo"#
$urso de %rogra&aci'n ()(
$urso de %rogra&aci'n ()(
Jorge Garca *choa de +s%uru
-a"a !ardo"-
bardok@telefonica.net - shadow@bardok.net
http://www.bardok.net
Julio 2005 e-ghost
ESIDE Universidad de Deusto
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License To view a co!" o# this license$ visit
htt!%&&creativecommonsor'&licenses&b"-nc-sa&()& or send a letter to Creative Commons$ **+ Nathan Abbott ,a"$ Stan#ord$ Cali#ornia +-.)*$ USA
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
,ndice

Introducci'n

)-./ 01sico

$on2iguraci'n de3 servidor +%ache

4unda&entos de ()(

()( e in2or&aci'n de usuario

!ases de datos en ()(

$on2iguraci'n de3 servidor de 0ase de


datos

()( 5 .5S6/
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
Introducci'n

76u8 es ()(9

()(: )5%erte;t (re%rocessor

/engua<e de scri%ting

Sinta;is si&i3ar a $= Java o (er3

(ro%'sito genera3

Uti3i>ado so0re todo %ara generaci'n de


%1ginas din1&icas )-./

Incrustado en %1ginas )-./

*%en Source
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
Introducci'n

)istoria de ()(

()(/4I: %recursor de ()( ?as&us


/erdor2= @AA5#

Scri%ts en (er3 %ara registrar accesos a su


Be0

Se e&%e>' a e;tender= hasta tener acceso a


0ases de datos 5 generaci'n de %1ginas Be0
din1&icas

En @AAC se 3i0er' 3a versi'n ()(/4I 2D0

()( E: 3a %ri&era versi'n si&i3ar a3 ()(


actua3 @AAF#

(ro5ecto universitario
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
Introducci'n

()( 4: se reescri0e e3 nGc3eo 33a&ado


Hend Engine#

.1s &odu3ar

.1s rendi&iento

.1s 2unciona3idad

Iersi'n actua3&ente &1s uti3i>ada de ()(

E3 curso se centra en 8sta versi'n

()( 5:

Hend Engine 2D0

Gesti'n de c3ases &e<orada

.uchas uti3idades 5 &e<oras en e3 +(I

Gesti'n de !ases de Datos &e<orada


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
Introducci'n

7$'&o 2unciona9

Josotros ve&os %1ginas Be0 en un


navegador:

.o>i33a= KonLueror= *%era= Jauti3usDDD

Un navegador inter%reta )-./

5 ho<as de esti3o= Javascri%t= etc= %ero eso est1 2uera


de3 a3cance de este curso M-#

Un navegador J* sa0e inter%retar ()(

Entonces= 7Lu8 ocurre con e3 ()(9


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
Introducci'n

E3 navegador %uede:

.ostrar una %1gina a3o<ada en e3


ordenador en e3 Lue 83 est1 insta3ado

Nste es e3 ordenador Oc3ienteP

/a %1gina se &uestra ta3 5 co&o est1


guardada= no ha5 %roceso %osi03e: tiene Lue
ser )-./

(edir una %1gina a un servidor

E3 servidor %uede %rocesar 3a %1gina antes de


enviar3a a3 navegador
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
Introducci'n

E<e&%3o: %etici'n de una %1gina ()( a


un servidor Be0
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

)-./ es un 3engua<e de etiLuetas


uti3i>ado %ara crear %1ginas Be0

En nuestro caso uti3i>are&os Q)-./

Sinta;is Q./

EtiLueta con inicio 5 2in:

RetiLuetaS$ontenidoR/etiLuetaS

EtiLueta sin contenido:

RetiLueta /S

/as etiLuetas de inicio o 3as etiLuetas sin


contenido# %ueden tener %ar1&etros:

RetiLueta %ara&@TPva3or@P %ara2TPva3or2PS

-oda etiLueta de inicio de0e tener su 2in

(ueden anidarse
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

Una %1gina Be0 01sica:


Rht&3S
RheadS
Rtit3eS-tu3o en 3a 0arra de3 navegadorR/tit3eS
R/headS
R0od5S
$ontenido de 3a %1gina
R/0od5S
R/ht&3S

EtiLueta Oht&3P: ra> de3 docu&ento

Secci'n OheadP: in2or&aci'n de 3a %1gina

Secci'n O0od5P: contenido de 3a %1gina


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

4or&ateando te;tosDDD

Si inserta&os un te;to dentro de una


secci'n= tendr1 di2erentes 2or&atos

R%Ste;toR/%S: %1rra2o de te;to

RiSte;toR/iS: cursiva

R0Ste;toR/0S: negrita

RhU@DDVWSte;toR/hU@DDVWS: esti3os de ttu3o

Rsu%Ste;toR/su%S: su%erndice

Rsu0Ste;toR/su0S: su0ndice

R%reSte;toR/%reS: te;to %re2or&ateado

.1s esti3os:
htt%://BBBDBEschoo3sDco&/ht&3/ht&3X2or&attingDas%

E<ercicio: esti3osDht&3
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

Esti3osDht&3
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

I&1genes

EtiLueta Ri&g srcTPDDDP /S

E3 atri0uto OsrcP indica d'nde se encuentra 3a


i&agen

I&%ortante: uti3i>ar %aths re3ativos

/os atri0utos OBidthP 5 OheightP %er&iten


%oner a3tura 5 anchura a 3a i&1gen

E<e&%3o: i&agenDht&3
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

i&agenDht&3
%ara centrar 3a i&1gen= etiLueta RcenterS#
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

En3aces

Jos %er&iten &overnos entre %1ginas

Su estructura es:
Ra hre2TPdestinoPSte;to= i&1gen= etcDR/aS

E3 destino de0era tener e3 %ath:

+0so3uto: se encuentra en otro servidor


htt%://BBBDgoog3eDes

?e3ativo a3 do&inio: se encuentra en otro directorio


virtua3= dentro de3 servidor
/noticias/3unesDht&3

?e3ativo a3 directorio de tra0a<o: se encuentra en e3


&is&o directorio Lue 3a %1gina actua3
%aginaDht&3
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

E<e&%3o: en3acesDht&3
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

/istas

(er&iten enu&erar e3e&entos

(ueden ser ordenadas con 3a etiLueta Ro3S# o


desordenadas Ru3S#

/os e3e&entos van de3i&intados %or 3a


etiLueta R3iS

E<e&%3o
/ista de 3a co&%ra:
Ru3S
R3iS.acarronesR/3iS
R3iSSa3R/3iS
R3iSDonutsR/3iS
R/u3S
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

E<e&%3o: 3istasDht&3
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

-a03as

(er&iten organi>ar e3e&entos

De3i&itadas %or Rta03eS

Se de2inen %or 2i3as RtrS# 5 co3u&nas RtdS#

Una ta03a tiene 2i3as= 5 cada 2i3a= co3u&nas

-odas 3as 2i3as tienen e3 &is&o nG&ero de ce3das

(ode&os hacer Lue una ce3da de una 2i3a ocu%e e3


es%acio de varias ce3dasDDD

DDD o Lue una ce3da est8 en varias 2i3as


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

Una ta03a senci33a


Rta03eS
RtrS
RtdS$e3da @R/tdS
RtdS$e3da 2R/tdS
RtdS$e3da ER/tdS
R/trS
RtrS
RtdS$e3da 4R/tdS
RtdS$e3da 5R/tdS
DDD
R/ta03eS
Celda Celda 2Celda !
Celda "Celda 5Celda #
Celda $Celda %Celda &
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

Juntando dos ce3das &is&a 2i3a#


Rta03eS
RtrS
RtdS$e3da @R/tdS
RtdS$e3da 2R/tdS
RtdS$e3da ER/tdS
R/trS
RtrS
RtdS$e3da 4R/tdS
Rtd co3s%anTP2PS$e3da 5R/tdS
DDD
R/ta03eS
Celda Celda 2Celda !
Celda " Celda 5
Celda $Celda %Celda &
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

Juntando dos ce3das &is&a co3u&na#


Rta03eS
RtrS
RtdS$e3da @R/tdS
Rtd roBs%anTP2PS$e3da 2R/tdS
RtdS$e3da ER/tdS
R/trS
RtrS
RtdS$e3da 4R/tdS
RtdS$e3da 5R/tdS
DDD
R/ta03eS
Celda
Celda 2 Celda 5
Celda !
Celda " Celda 5
Celda $Celda %Celda &
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

E<e&%3o: ta03asDht&3
3os 0ordes est1n %uestos con e3 atri0uto:
Rta03e 0orderTP@PS
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

4or&u3arios

(er&iten introducir in2or&aci'n

Estructura:
R2or& &ethodTP&odo de envioP actionTP%1gina de
rece%ci'nPS
- contro3es de3 2or&u3ario:
$a<as de te;toDDD
$a<as %ara %assBordDDD
.e&osDDD
$hec"0o;esDDD
/istas des%3ega03esDDD
R/2or&S

Dentro de un 2or&u3ario %uede ha0er c'digo


)-./ nor&a3
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

(1gina de rece%ci'n:

Indica e3 e3e&ento Lue va a %rocesar 3a


in2or&aci'n reci0ida

/o nor&a3= co&o vere&os= es Lue sea una %1gina


()(= aunLue %uede ser cua3Luier cosa

E<: R2or& actionTP%rocesarD%h%P &ethodTDDDS

.odo envo:

(er&ite es%eci2icar c'&o se enva 3a


in2or&aci'n de3 2or&u3ario a3 servidorD )a5
dos &odos:

OgetP: 3a in2or&aci'n se enva en 3a U?/

E<: %rocesarD%h%93oginT0ardo"Y%assT@2E45

O%ostP: 3a in2or&aci'n se enva ocu3ta

Zti3 %ara enviar= %or e<e&%3o= %assBords


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

$ontro3es %ara e3 2or&u3ario

+tri0uto Ona&eP

/a in2or&aci'n se enviar1 con ese no&0re a3


servidor

Es co&o si 2uese e3 no&0re de una varia03e

+tri0uto Ova3ueP

*%ciona3

Indica un va3or %or de2ecto

/a &a5ora se de2inen a trav8s de 3a etiLueta


Oin%utP

Rin%ut t5%eTPti%o de3 contro3P na&eTPno&0reP


Uva3ueTPva3or %or de2ectoPW /S

E3 Oti%o de contro3P indica Lu8 ti%o de contro3


esta&os insertando
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

$uadro de te;to

?ecuadro %ara introducir una 3nea de te;to

E<: Rin%ut t5%eTPte;tP na&eTP3oginP /S

$uadro %ara introducir %assBords

?ecuadro Lue %er&ite introducir una 3nea de te;to


ocu3to

E<: Rin%ut t5%eTP%assBordP na&eTP%assP /S

$hec"0o;:

(er&ite se3eccionar una o%ci'n

E<: Rin%ut t5%eTPchec"0o;P na&eTPrecordarP /S

!ot'n de envo:

(er&ite enviar 3os datos de3 2or&u3ario a3 servidor

E<: Rin%ut t5%eTPsu0&itP na&eTPenvioP va3uePEnviarP /S


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

!ot'n de 0orrado:

(er&ite 0orrar e3 contenido de 3os contro3es= 5


vo3ver a %oner sus va3ores %or de2ecto

Rin%ut t5%eT[reset[ na&eT[0orrado[ va3ueT[!orrar[ /S

E<e&%3o de 3os contro3es vistos hasta ahora:

2or&u3arioXsenci33oDht&3
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

/istas des%3ega03es

Se de2inen con 3a etiLueta Ose3ectP

-a&0i8n %ueden tener un no&0re na&e#

/as o%ciones se de2inen con 3a etiLueta Oo%tionP


Rse3ect na&eTP3istaPS
Ro%tion va3ueTP@PS*%ci'n @R/o%tionS
Ro%tion va3ueTP2PS*%ci'n 2R/o%tionS
Ro%tion va3ueTPEPS*%ci'n ER/o%tionS
R/se3ectS

E3 va3or enviado ser1 e3 Ova3ueP de 3a o%ci'n


se3eccionada

Un contro3 Ose3ectP %uede tener un atri0uto Osi>eP


Lue indica e3 nG&ero de o%ciones visi03es a 3a ve>
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
)-./ 01sico

E<e&%3o: 2or&u3arioX3istasDht&3

$a&%os ocu3tos:

(er&iten guardar va3ores sin Lue se &uestren %or


%anta33a
Rin%ut t5%eTPhiddenP na&eTPse3ectedP va3ueTPEP /S
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor
+%ache

Ia&os a uti3i>ar e3 servidor +%ache

htt%://BBBDa%acheDorg

Servidor )--( *%en Source

En %rinci%io= so%orta e3 %rotoco3o )--(

Se %ide un 2ichero= e3 servidor 3o devue3ve

E;tensi03e a trav8s de &'du3os= co&o e3


&'du3o ()(

Si est1 cargado 5 con2igurado= en caso de Lue e3


2ichero %edido sea una %1gina ()(= se %rocesa 5 3o
Lue se enva es e3 resu3tado
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor
+%ache

E3 %roceso descrito aLu es %ara


con2igurar e3 servidor en una distri0uci'n
De0ian GJU//inu;

Jo de0era variar sustancia3&ente %ara otras


distri0uciones

Insta3ar 3os %aLuetes %h%4= a%ache=


a%ache-co&&on 5 a%ache uti3s

a%t-get insta33 %h%4 a%ache

Iersiones <u3io 2004#:

+%ache: @DED2A

()(: 4DED4

+ctua3i>aci'n de G3ti&a hora: aca0a de sa3ir ()( 5


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor
+%ache

(ara co&%ro0ar Lue e3 servidor +%ache


est1 activo:

htt%://3oca3host

+%arecer1 3a siguiente %1gina

+ccede&os a trav8s de3 servidor= no directa&ente


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor
+%ache

+ctiva&os e3 &'du3o ()(:

Editar e3 2ichero O/etc/a%ache/htt%dDcon2P

Desco&entar 3as 3neas


+dd-5%e a%%3ication/;-htt%d-%h% D%h%
+dd-5%e a%%3ication/;-htt%d-%h%-source D%h%s

?einiciar e3 servidor +%ache:


\/etc/initDd/a%ache restart
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor
+%ache

4ina3&ente= creare&os un directorio


virtua3 en e3 servidor:

+ccedere&os a nuestras %1ginas en


Ohtt%://3oca3host/curso%h%P

Guardare&os nuestras %1ginas en


O/ho&e/usuario/curso%h%P

(ara e33o= edita&os e3 2ichero O/etc/a%ache/P

En 3a secci'n OSection 2P inc3u&os:


RI2.odu3e &odXa3iasDcS
+3ias /curso%h%/ /ho&e/usuario/curso%h%/
RDirector5 /ho&e/usuaro%/curso%h%S
*%tions Inde;es Inc3udes .u3tiIieBs
+33oB*verride Jone
*rder a33oB=den5
+33oB 2ro& a33
R/Director5S
R/I2.odu3eS

?einicia&os e3 servidor
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor
+%ache

4ina3&ente= co&%ro0a&os Lue 2uncionen 3as


%1ginas ()(

$rea&os e3 2ichero:
O/ho&e/usuario/curso%h%/ho3a&undoD%h%P
Rht&3S
R0od5S
R9%h% echo [)o3a &undo][#M 9S
R/0od5S
R/ht&3S

+ccede&os a 83 a trav8s de3 servidor:

htt%://3oca3host/curso%h%/ho3a&undoD%h%
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

$o&o se di<o en 3a introducci'n:

()( se incrusta dentro de3 c'digo )-./

()( se %rocesa en e3 servidor

Sirve %ara crear %1ginas )-./ Lue des%u8s


se enviar1n a3 c3iente= 5 %ara rea3i>ar otras
o%eraciones

(ode&os generar una %1gina segGn e3 contenido de


un 2or&u3arioDDD

DDD o segGn e3 contenido de una 0ase de datosDDD

DDD o segGn 3a hora de3 servidorDDD

DDD
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

7$'&o incrusta&os ()( dentro de3


)-./9

$on 3a etiLueta R9%h% UinstruccionesW 9S

E3 servidor %rocesa e3 c'digo Lue ha5 entre


OR9%h%P 5 O9SP o s&%3e&ente OR9 DDDD 9SP#
R9%h% echo O)o3a &undo]P#M 9S

$on 3a etiLueta R9TUe;%resi'nW9S

E3 servidor eva3Ga 3a e;%resi'n= 5 escri0e su


resu3tado en 3a %1gina Be0
R9TP)o3a &undo]P 9S

Jo %uede ha0er &1s c'digo Lue 3a e;%resi'n Lue


Luere&os eva3uar 5 sacar %or %anta33a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

7$'&o %rocesa e3 servidor e3 c'digo9

-ene&os 3a %1gina:
Rht&3S
R0od5S
R9%h% echo [)o3a &undo][#M 9S
R/0od5S
R/ht&3S

E3 servidor co&ien>a a %rocesar 3a %1gina

Si encuentra )-./= 3o enva directa&ente a3 c3iente

Si encuentra una etiLueta de ()(= %rocesa e3 c'digo= 5 si e3


c'digo escri0e a3go= esa OescrituraP se inc3u5e en e3 )-./
Lue se enva a3 c3iente
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

/a %1gina anterior enviara:


Rht&3S
R0od5S
)o3a &undo]
R/0od5S
R/ht&3S

E3 &is&o resu3tado se conseguira con:


Rht&3S
R0od5S
R9T[)o3a &undo][ 9S
R/0od5S
R/ht&3S
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

Sinta;is

/a sinta;is es &u5 si&i3ar a 3a sinta;is de


$ o Java

/as instrucciones se escri0en se%aradas %or ^M^

/as estructuras de contro3 i2= Bhi3e= etcD# son


&u5 si&i3ares

/as 33a&adas a 2unci'n se rea3i>an con


%ar8ntesis
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

Iaria03es

/as varia03es tienen dos di2erencias con


res%ecto a $:

(ueden ca&0iar de ti%o 21ci3&ente

E<D: si en una varia03e he&os guardado un entero= %ode&os


uti3i>ar3o co&o un String= 5 viceversa

sie&%re Lue e3 String re%resente un entero

E3 no&0re de 3a varia03e 33eva ^_^ de3ante


_usuario T O%e%eP

Es %osi03e concatenar varia03es strings# con


e3 o%erador ^D^
R9%h%
_&ensa<eX@ T O)o3aPM
_&ensa<eX2 T O&undo]PM
echo _&ensa<eX@DP OD_&ensa<eX2#M
9S
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

Dentro de un string de3i&itado con co&i33as


do03es se eva3Gan 3as varia03es
_no&0re T O0ardo"PM
echo OE3 va3or de 3a varia03e no&0re es _no&0reDP#M

$on 3a 2unci'n Ounset#P %ode&os Luitar e3


va3or de una varia03e
_var T O%e%ePM
unset_var#M // +hora no tiene va3or JU//#

/a 2unci'n Oisset#P nos indica si una varia03e


est1 inicia3i>ada
i2 isset_var##
`
echo O-iene va3orP#M
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

*%eradores

+rit&8ticos

+signaci'n
Operador Smbolo Ejemplo Resultado
'u(a ) ! ) ! #
*esta - " !
+ultiplicaci,n - " - ! 2
.i/isi,n / # / 2 !
+,dulo 0resto1 2 $ 2 2
3ncre(ento )) 45 6 !7 45)) "
.ecre(ento -- 45 6 !7 45-- 2
Operador Smbolo Equivalencia
8signaci,n 45 6 49 45 6 49
8signaci,n 9 su(a 45 )6 49 45 6 45 ) 49
8signaci,n 9 resta 45 -6 49 45 6 45 49
8signaci,n 9 (ultiplicaci,n 45 -6 49 45 6 45 - 49
8signaci,n 9 di/isi,n 45 /6 49 45 6 45 / 49
8signaci,n 9 resto 45 26 49 45 6 45 2 49
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

$o&%araci'n

/'gicos
Operador Smbolo Ejemplo Resultado
3gual 66 ! 66 ! cierto
.istinto :6 " :6 ! cierto
+a9or ; ! ; " falso
+enor < ! < " cierto
+a9or o igual ;6 $ ;6 2 cierto
+enor o igual <6 ! <6 2 falso
Operador Smbolo Ejemplo Resultado
= 0and1 >> cierto >> falso falso
? 0or1 @@ cierto @@ falso cierto
A? 0not1 : :cierto falso
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

$ondiciona3es

$ondiciona3 si&%3e
i2 Rcondici'nS#
`DDDa

$ondiciona3 5 a3ternativa
i2 Rcondici'nS#
`DDDa
e3se
`DDDa
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

$ondiciona3 &G3ti%3e
sBitch Re;%resi'nS#
`
case Rva3or @S: DDD
0rea"M
case Rva3or 2S: DDD
0rea"M
DDD
case Rva3or nS: DDD
0rea"M
de2au3t: DDD
0rea"M
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

E<e&%3o Oi2-e3seP:
i2 _; R 4#
`
echo OR%S/a varia03e es &enorR/%SP#M
a e3se
`
echo OR%S/a varia03e no es &enorR/%SP#M
a

E<e&%3o OsBitchP:
sBitch _varia03e#
`
case @: echo OJG&ero @P#M
0rea"M
case 2: echo OJG&ero 2P#M
0rea"M
case E: echo OJG&ero EP#M
0rea"M
de2au3t: echo OJo est1 entre @ 5 EP#M 0rea"M
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

!uc3es

Bhi3e

&ientras se cu&%3a una condici'n= se e<ecuta


e3 c'digo %uede no e<ecutarse nunca#

E<D:
_a T @M
Bhi3e a RT @0#
`
echo OR%SE3 nG&ero es PD_aDPR/%SP#M
_abbM
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

do DDD Bhi3e

Se e<ecuta un c'digo &ientras se cu&%3a una


condici'n a3 &enos se e<ecuta una ve>#

E<D:
_a T 0M
do
`
_abbM
echo OR%SE3 nG&ero esPD_aDPR/%SP#M
a
Bhi3e a R @0#M
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

2or

E<ecuta un c'digo &ientas se cu&%3a una


condici'n

(uede no e<ecutarse ninguna ve>

*%ciona3&ente= se %uede %ro%orcionar:

Una e;%resi'n de inicia3i>aci'n= se e<ecuta 3a %ri&era ve>

Una e;%resi'n de condici'n

Una e;%resi'n de %aso= se e<ecuta a3 2ina3 de cada %asada de3


0uc3e

E<D:
2or _a T @M _a RT @0M _abb#
`
echo OR%SE3 nG&ero es PD_aDPR/%SP#M
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

2oreach

Se e<ecuta un deter&inado c'digo %or cada


uno de 3os e3e&entos de una co3ecci'n

(or e<e&%3o= si tene&os un arra5 con E


e3e&entos:
_arr T arra5O%erroP=PgatoP=PornitorrincoP#M
2oreach _arr as _e3e&#
`
// En cada vue3ta= e3e& guarda uno de 3os strings
echo OR%SE3 e3e&ento es: PD_e3e&DPR/%SP#M
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

E<e&%3o: 0uc3esD%h%
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

.8todos avan>ados de esca%e

()( %er&ite construcciones co&o:


R9%h%
i2 _e;%resion#
`
9S
R%S/a e;%resi'n es ciertaR/%S
R9%h%
a
e3se
`
9S
R%S/a e;%resi'n es 2a3saR/%S
R9%h%
a
9S
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

E<e&%3o: ta03a2orD%h%
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

.atrices

+cceso a una %osici'n

+ trav8s de OUDDDWP
echo _&atri>U@W#M

E3 ndice de una &atri> %uede ser cua3Luier


cosa
echo _&atri>UOgatoPW#M

$reaci'n de una &atri>

+ trav8s de Oarra5#P
_ani&a3es T arra5OGatoP= O(erroP= O*rnitorrincoP#M

En 3a %osici'n 0 de3 arra5 est1 e3 string OGatoP= en 3a


@ O(erroP 5 as sucesiva&ente
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

(ode&os es%eci2icar e3 ndice de cada uno de 3os


e3e&entos:
_&atri> T arra5O2e3inoP TS OGatoP= OcanidoP TS O(erroP=
O&onotre&aP TS O*rnitorrincoP#M

Si hace&os:
echo arra5UO&onotre&aPW#M

o0tendre&os 3a %a3a0ra O*rnitorrincoP

$reaci'n con corchetes

(ode&os crear e3e&entos de una &atri> so0re 3a


&archa:
_&atri>M
_&atri>UCW T O-e;to de 3a %osici'n CPM
// si no es%eci2ica&os un ndice= se inserta en 3a siguiente %osici'n
_&atri>UW T OEsto ira en 3a %osici'n FPM
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

.odi2icaci'n de e3e&entos

(ode&os &odi2icar un e3e&ento de una &atri>


reasignando un va3or

_&atri> T arra5E TS O*soP= 5 TS O(erroP#M

_&atri>UEW T OGatoPM

E3i&inaci'n de e3e&entos

(ode&os e3i&inar e3e&entos= o 3a &atri>


entera con Ounset#P
_&atri> T arra5E TS O*soP= 5 TS O(erroP#M
unset_&atri>UEW#M // Jo ha5 nada en 3a %osici'n E
unset_&atri>#M // Jo ha5 nada en 3a &atri>
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

?ecorrido de un arra5 con O2oreachP

/a estructura 2oreach= ade&1s de ser uti3i>ada


co&o he&os visto en 3a secci'n de estructuras
de contro3 %uede usarse %ara o0tener ta&0i8n
3os ndices de3 arra5:
2oreach _arra5 as _c3ave TS _e3e&#
`
echo OE3 e3e&ento de 3a %osici'n OD_c3aveDP es OD_e3e&#M
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

4unciones

(ode&os de2inir nuestras %ro%ias


2unciones
2unction Rno&0reX2unci'nS _%ar&@= _%ar&2= DDD#
`
DDD
return Rresu3tadoSM
a

E<D:
R9%h%
2unction sa3udar_no&0re#
`
return O)o3a PD_no&0reDP]PM
a
sa3udarO!ardo"P#M
9S
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

*0<etos

De2inici'n de una c3ase


c3ass no&0reXc3ase Ue;tends c3aseX%adreW
`
var _atri0utoM
2unction no&0reXc3ase# // $onstructor
`a
2unction &etodo#
`a
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

$reaci'n de o0<etos

Si tene&os una c3ase O$3ase+P %odre&os crear


o0<etos &ediante e3 o%erador OneBP
_o0<eto T neB $3ase+M

E3 %untero O_thisP

Es una re2erencia a3 %ro%io o0<etoD Se usa


dentro de 3os &8todos
c3ass $3ase+
`
var _nu&M
2unction getJu&#
`
return _this-Snu&M // Onu&P no 33eva O_P
a
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

$onstructores

Un constructor es un &8todo con e3 no&0re de


3a c3aseD Se 33a&a a3 crearse e3 o0<etoD
c3ass (ersona
`
var _no&0reM
2unction (ersona_no&#
`
_this-S_no&0re T _no&M
a
a
_% T neB (ersonaO!ardo"P#M
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

)erencia

()( so%orta herencia de c3ases


c3ass $3ase+
`
var _attr+M
2unction get+ttr+#
` return _this-Sattr+M a
a
c3ass $3ase! e;tends $3ase+
`
var _attr!M
2unction get+ttr!#
` return _this-Sattr!M a
a
_o0< T neB $3ase!M
_o0<-Sget+ttr+#M
_o0<-Sget+ttr!#M
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
4unda&entos de ()(

*tros as%ectos de inter8s:

4unci'n Odie&ensa<e#MP:

(ara 3a e<ecuci'n de3 scri%t= 5 enva un


&ensa<e co&o sa3ida a 3a %1gina

(ara errores crticos

E<:
i2 _errorXcritico#
`
dieOError crticoD Jo se %uede continuarDP#M
a
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( e in2or&aci'n de usuario

In2or&aci'n desde 2or&u3arios

/a in2or&aci'n de un 2or&u3ario %uede


enviarse con e3 &8todo OgetP o e3 &8todo
O%ostP

E;istendo dos arra5s en ()( 33a&ados


O_XGE-P 5 O_X(*S-P

Se accede %or e3 no&0re de3 %ar1&etro

Se o0tiene e3 va3or de3 %ar1&etro


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( e in2or&aci'n de usuario

E<e&%3o: crear e3 siguiente 2ichero ()(


e<er%ara&sD%h%#:
Rht&3S
R0od5S
R9
2oreach _XGE- as _no&0re TS _%ara&#
`
9S
R%SR9T_no&0reDP: OD_%ara&9SR/%S
R9
a
9S
R/0od5S
R/ht&3S

+cceder a 3a %1gina con 3a U?/:

htt%://3oca3host/curso%h%/e<er%ara&sD%h%93oginT0ar
do"Y%assT@2E4_e&ai3T&ai3cserverDco&
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( e in2or&aci'n de usuario

$rea&os 3a %1gina O2or&%ara&sDht&3P 5


envia&os 3os datos a Oe<er%ara&sD%h%P:
Rht&3S
R0od5S
R2or& &ethodTPgetP actionTPe<er%ara&sD%h%PS
/ogin: Rin%ut t5%eTPte;tP na&eTP3oginP /SR0r /S
(assBord: Rin%ut t5%eTP%assBordP na&eTP%assP /SR0r /S
E&ai3: Rin%ut t5%eTPte;tP na&eTPe&ai3P /SR0r /S
Rin%ut t5%eTPsu0&itP va3ueTPEnviarP /S
R/2or&S
R/0od5S
R/ht&3S

.odi2icaci'n: en 3ugar de uti3i>ar e3 &8todo OgetP


uti3i>ar e3 O%ostP
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( e in2or&aci'n de usuario

(ara acceder a un dato en concreto dentro de


3os arra5s O_X(*S-P 5 O_XGE-P

/a c3ave %ara acceder a un e3e&ento es e3 no&0re


de3 %ar1&etro
echo OE3 no&0re de usuario uti3i>ado es PD_XGE-UO3oginPW#M

.G3ti%3es va3ores en un %ar1&etro:

Un %ar1&etro %uede tener distintos va3ores a 3a ve>:

E3 no&0re de3 %ar1&etro ser1 Ono&0re%ara&etroUWP:


Rin%ut t5%eTPchec"0o;P na&eTPse3UWP va3ueTPv@P/SIa3or @
Rin%ut t5%eTPchec"0o;P na&eTPse3UWP va3ueTPv2P/SIa3or 2

E3 %ar1&etro Ono&0re%ara&etroP es un arra5 con 3os


e3e&entos se3eccionadosD

Si se se3eccionan 3os dos chec"0o;es anteriores:


se3U0W TS Ov@P
se3U@W TS Ov2P
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( e in2or&aci'n de usuario

Iaria03es de sesi'n

(ode&os guardar in2or&aci'n de3 usuario


Lue se &antendr1 &ientras no se cierre e3
navegador

Se trans&ite de unas %1ginas a otras

E3 e<e&%3o &1s c31sico: carrito de 3a co&%ra

*tra uti3idad: va3idaci'n de usuarios

-odo 3o Lue guarde&os en e3 arra5


O_XSESSI*JP Luedar1 a3&acenado de
este &odo

(ara %oder usar3o: 3o %ri&ero en 3a %1gina=


33a&ada a OsessionXstart#MP
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( e in2or&aci'n de usuario

E<e&%3o: %1gina %G03ica/%rivada

%u03icX%rivateD%h%
R9%h%
sessionXstart#M
i2 isset_XGE-U[accion[W##
`
_accion T _XGE-U[accion[WM
i2 _accion TT [/ogin[#
`
_XSESSI*JU[3ogin[W T _XGE-U[3ogin[WM
a
e3se i2 _accion TT [Desconectar[#
`
unset_XSESSI*JU[3ogin[W#M
a
a
_registrado T isset_XSESSI*JU[3ogin[W#M
i2 _registrado#
`
_3ogin T _XSESSI*JU[3ogin[WM
a
9S
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( e in2or&aci'n de usuario
Rht&3S
R0od5S
R9%h%
i2 _registrado#
`
9S
R%S!ienvenido= R0SR9T_3ogin9SR/0SR/%S
R%SRa hre2T[%rivateX3oginD%h%[S/in" a una %1gina %rivadaR/aSR/%S
R2or& &ethodT[get[ actionT[%u03icX%rivateD%h%[S
Rin%ut t5%eT[su0&it[ na&eT[accion[ va3ueT[Desconectar[ /S
R/2or&S
R9%h%
ae3se`
9S
R%S(or 2avor= introduce tu no&0re de usuarioR/%S
R2or& &ethodT[get[ actionT[%u03icX%rivateD%h%[S
Jo&0re de usuario: Rin%ut t5%eT[te;t[ na&eT[3ogin[ /SR0r /S
Rin%ut t5%eT[su0&it[ na&eT[accion[ va3ueT[/ogin[ /S
R/2or&S
R9%h%
a
9S
R/0od5S
R/ht&3S
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( e in2or&aci'n de usuario

%rivateX3oginD%h%
R9%h%
sessionXstart#M
9S
Rht&3S
R0od5S
R9%h%
i2 isset_XSESSI*JU[3ogin[W##
`
echo [E3 no&0re de usuario es [D_XSESSI*JU[3ogin[W#M
a
e3se
`
echo[Jo ha5 no&0re de usuario[#M
a
9S
R/0od5S
R/ht&3S
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
!ases de datos en ()(

Es %osi03e acceder a 0ases de datos a


trav8s de ()(

Uso de &'du3os de 0ases de datos

Gran candidad de 0ases de datos


so%ortadas

En nuestro caso usare&os .5S6/ co&o


servidor de 0ases de datos <unto con
()(.5+d&in %ara ad&inistrar 3as
&is&as
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor de
0ase de datos

(aLuetes a insta3ar

En e3 caso de uti3i>ar De0ian= 3os %aLuetes


a insta3ar son:

&5sL3-c3ient= &5sL3-server= %h%4-&5sL3=


%h%&5ad&in= &5sL3cc= &5sL3cc-i@Fn

&5sL3-c3ient 5 &5sL3-server insta3ar1n tanto e3


c3iente co&o e3 servidor de 0ase de datos

En caso de Lue 3a 0ase de datos tenga un ordenador servidor


%ro%io= ha0ra Lue insta3ar e3 servidor en 83= 5 e3 c3iente en e3
servidor Be0

%h%4-&5sL3 insta3a e3 &'du3o Lue %er&ite a ()(


interactuar con .5S6/

&5sL3cc es un 2rontend de con2iguraci'n de 0ases de


datos= 5 %h%&5ad&in %er&ite ad&inistraci'n Be0
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor de
0ase de datos

$reaci'n de una 0ase de datos 5 un


usuario ad&inistrador

E<ecutar &5sL3cc 5 crear una cone;i'n:


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor de
0ase de datos

$rear un usuario 33a&ado Ocurso%h%P con


c3ave Ocurso%h%P 5 todos 3os %rivi3iegios
g3o0a3es en 3oca3host

J*-+: esto es terri03e&ente inseguro= %ero


Gti3 %ara este curso
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor de
0ase de datos

+ccede&os a ()(.5+d&in

htt%://3oca3host/%h%&5ad&in
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor de
0ase de datos

$rea&os una 0ase de datos Oe<e&%3oP


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor de
0ase de datos

$reaci'n de una ta03a


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
$on2iguraci'n de3 servidor de
0ase de datos

Estructura de una ta03a


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( 5 .5S6/

Una ve> insta3ado e3 &'du3o de .5S6/


tene&os un +(I de 2unciones %ara
interactuar con 0ases de datos .5S6/

(asos a seguir:

$one;i'n con e3 servidor de !ase de Datos

Se3ecci'n de 3a 0ase de datos

-ra0a<ar con 3as ta03as

En caso de se3ecci'n= tra0a<ar con 3os


registros

$errar 3a cone;i'n con 3a 0ase de datos


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( 5 .5S6/

$one;i'n con e3 servidor de 0ase de datos

_d0 T &5sL3XconnectOhostP=PusuarioP=P%assBordP#M

/a cone;i'n a 3a 0ase de datos devue3ve un


identi2icativo de 3a cone;i'n a 3a 0ase de datos

Si ha ha0ido error= e3 o0<eto devue3to ser1 4+/SE

Se3ecci'n de 3a 0ase de datos

&5sL3Xse3ectXd0Ono&0reXdeX0aseXdeXdatosP= _d0#M

/as o%eraciones %osteriores se e2ectuar1n


so0re 3a 0ase de datos se3eccionada

Si ha ha0ido error= devue3ve 4+/SE


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( 5 .5S6/

-ra0a<ar con 3as ta03as

&5sL3XLuer5OsentenciaXsL3P#M

/a sentencia S6/ %uede ser una inserci'n=


0orrado= actua3i>aci'n o se3ecci'n

E<:

&5sL3XLuer5OIJSE?- IJ-* usuarios I+/UES


O%e%eP=PaaaaaP#P#M

En e3 caso de rea3i>arse una se3ecci'n= se


devo3ver1 un o0<eto con e3 identi2icativo de3
resu3tado de 3a &is&a

_res T &5sL3XLuer5OSE/E$- 3ogin=%assBord 4?*.


usuariosP#M
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( 5 .5S6/

Una ve> rea3i>ada 3a se3ecci'n= %ode&os


recorrer e3 resu3tado uti3i>ando:

&5sL3X2etchXroB_res#M

Esta 2unci'n devue3ve 4+/SE si no ha5 &1s 2i3as


%ara %rocesar= 5 en caso contrario= devue3ve 3a 2i3a

(ode&os acceder a 3os va3ores de esta &anera:


_res T &5sL3XLuer5OSE/E$- 3ogin= %assBord 4?*. usuariosP#M
Bhi3e 3ist_3=_%# T &5sL3X2etchXroB_res##
`
echoOE3 3ogin es PD_3DP 5 e3 %assBord PD_%DPDP #M
a

$errar 3a cone;i'n con 3a 0ase de datos

&5sL3Xc3ose_d0#M
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( 5 .5S6/

E<e&%3o:

Introducir e3e&entos en 3a ta03a OusuariosP a


trav8s de ()(.5+d&in= 5 crear una %1gina
()( Lue 3os &uestre:
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( 5 .5S6/

E<ercicio:

Dar de a3ta una ta03a en 3a 0ase de datos


con 3a estructura Lue se Luiera#

Insertar e3e&entos en 3a ta03a

$rear una %1gina Lue tenga

Un 2or&u3ario Lue %er&ita a3tas= 0a<as 5


&odi2icaciones en 3a ta03a

Un 3istado con 3os e3e&entos de 3a ta03a

/os e3e&entos son en3aces Lue= %u3sados= nos 33evan


a 3a &is&a %1gina= %ero con e3 e3e&ento
se3eccionado sus datos a%arecen en e3 2or&u3ario#
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( 5 .5S6/

(ro%uesta de ta03a:
e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( 5 .5S6/

(ro%uesta de inter2a> gestiongru%osD%h%#:


e-ghost ESIDE Universidad de Deusto 2004/2005 Jorge Garca !ardo"#
$urso de %rogra&aci'n ()(
()( 5 .5S6/

(ro%uesta de estructura:

/a %1gina se %uede dividir en varios O03oLuesP

$one;i'n a 3a 0ase de datos

Gesti'n de 3os co&andos

-odos 3os e3e&entos de ti%o Osu0&itP tienen co&o no&0re


OaccionP 5 co&o Ova3ueP 3a accion Lue rea3i>an

?ecu%eraci'n de 3os datos de3 gru%o se3eccionado si 3o ha5#

+3 se3eccionar un gru%o= se %asar1 co&o %ar1&etro e3 c'digo de3


&is&o

(1gina Be0 en s

4or&u3ario: si ha5 a3gGn gru%o se3eccionado= sus va3ores se


&uestran en 3os co&%onentes= se &uestran 3os 0otones
O&odi2icarP 5 Oe3i&inarP 5 se guarda e3 c'digo se3eccionado en un
ca&%o OhiddenP

/istado: recorrido de 3a ta03aD $ada e3e&ento es un 3in" a 3a


%ro%ia %1gina con e3 2or&ato:
Ogestiongru%osD%h%9se3ectedcodigoTRcodigoSP e<D:
gestiongru%osD%h%9se3ectedcodigoTE#

Descone;i'n de 3a 0ase de datos