implantacion de aplicaciones web apuntes phpmyadmin
TRANSCRIPT
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
1/19
Implantacin de aplicaciones Web
PHPse ejecuta en el servidor (en clase nuestro ordenador sera como si fuera el ordenador para pruebas), paraejecutar php se usa el programa XAMPP, XAMPP viene de LAMP y WAMP
LAMP! Linu" # Apache$ My%&l # P'P WAMP! Windos # Apache$ My%&l # P'P XAMPP! WindosLinu" # Apache # My%&l # P'P # Pearl
phpMyAdminse ejecuta dentro del servidor y cuando un ordenador hace petici*n de una pagina eb &uecontiene php, este se ejecuta en el propio servidor y se env+a como resultado dentro de las sentencias html&ue si interpreta el navegador del ordenador &ue ha solicitado la pagina eb
ras instalar XAMPP hay &ue activar My%&l ("ampp$controle"e) y se guardan los archivos en ----
%i no se Activa el Apache puede ser por culpa de alg.n servicio, en caso de tener /mare instalado, en estehay &ue desactivar en Edit Preferencesla opci*n /irtual machine sharing en 0disable0
phpMyAdmin
%e accede poniendo en el navegador http!localhostphpmyadminy se crea una base de datos
http://www.apachefriends.org/es/xampp.htmlhttp://www.apachefriends.org/es/xampp.html -
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
2/19
Diagrama relacional&ue servir1 de ejemplo para crear las tablas correspondientes en phpMyAdmin
2MPL2A34% (cod5emp, nombre, telef, num5dpto(67))3A4% (num5dpto, denominacion, ubicacion)
%e crean las tablas!
8 se rellenan los campos (ota! 2n el campo de cod5emp en 9ndice se pone P:9MA8, para identificarlocomo primary ;ey) y se pincha en 0!?
@cod5emp
$ nombre
$telef
@num5dpto
$ denominacion
$ubicacion
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
3/19
%e crea la otra tabla!
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
4/19
%e pincha en bd5juan y en la pantalla &ue sale se pincha en diseador
2n la pantalla &ue sale en la parte de herramientas (parte superior) se selecciona crear relaci*n%e relaciona como llave de referencia num5dpto de t5dptos y como llave e"tranjera (6oreign 7ey) num5dptode t5empleados
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
5/19
%e hacen inserciones de datos, pinchando en 0insertar0
Bomo &ueda
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
6/19
%e meten algunos empleados de la misma manera con 0insertar0
4tro ejemploDiagrama relacional&ue servir1 de ejemplo para crear las tablas correspondientes en phpMyAdmin
ALCM?4% (cod5alu, nombre, telef, cp)A%9
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
7/19
La creaci*n de tablas e inserci*n de datos es similar al ejemplo anterior
%e introducen algunos datosabla t5alumnos
abla t5asignaturas
abla t5notas
Ahora con P'P accederemos a la tabla, veamos algunas opciones!
Primero conectamos con la base de datos y %i anteponemos !no escribe el error por defecto! D Econe"ion F mys&l5connect(0localhost0@ servidor @, 0root0@ usuario @,00@ clave @)G
if(HEcone"ion)Idie(J9mposible conectar 2rror nKuacuteGmero Jmys&l5errno()J! Jmys&l5error())G
%i ocurre un error entonces sale el mensaje especificado y se para la aplicaci*n
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
8/19
Abrimos la ase de datos de la siguiente manera (dos formas de hacerlo)!4pci*n >
Ebd5seleccionadaFmys&l5select5db(0nat"o0)Gif(HEbd5seleccionada)Idie(09mposible abrir la 33! 0mys&l5error())G
4pci*n N
mys&l5select5db(0bd5juanN0) or die(09mposible abrir la 33! 0mys&l5error())G
Breamos la consulta (&uery)EconsultaF0%2L2B @ 6:4M t5alumnos0G
Mandamos la &uery al servidor de 33, %i algo ha ido mal, Eresultado se interpreta como falsoEresultadoFmys&l5&uery(Econsulta) or die(J9mposible consultar! Jmys&l5error())G
2n este caso, &ue la consulta es una select, devuelve un objeto de tipo recurso &ue permite acceder alresultado de la consulta 2n otros casos, como 3:4P CP3A2 no se espera una colecci*n de registros sinoalgo del tipo ciertofalso
Enum5filasFmys&l5num5ros(Eresultado)Gprint JOpLa consulta ha devuelto Enum5filas registros, tuplas o filasOpJG
/amos sacando datos del recurso con alguna de las siguientes funciones! mys"l#fetch#ro$! 4btiene una fila de resultados como un array numQrico
print JOpremys&l5fetch5ro(REresultado)!RnJprint5r(mys&l5fetch5ro(Eresultado),true)JOpreJG
mys"l#fetch#assoc! :ecupera una fila de resultados como un array asociativo print JOpremys&l5fetch5assoc(REresultado)!RnJprint5r(mys&l5fetch5assoc(Eresultado),true)JOpreJG
mys&l5fetch5ro(Eresultado)!Array
(
S=T F UV
S>T F 4%2 M29A%
SNT F YVZUVY[Z
ST F U[ZU
)
mys&l5fetch5assoc(Eresultado)!
Array
(
Scod5aluT F UU=
SnombreT F :4%A %CA:2\
StelefonoT F YZVNUVY ScpT F U[Z>N
)
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
9/19
mys"l#fetch#array! :ecupera una fila de resultados como un array asociativo, numQrico o ambos mys&l5fetch5array(Eresultado,M8%]L54') Al utili^ar M8%]L54' (predeterminado), se
obtendr1 un array con ambos 9ndices print JOpremys&l5fetch5array(REresultado)!RnJprint5r(mys&l5fetch5array(Eresultado),true)JOpreJG
mys&l5fetch5array(Eresultado,M8%]L5?CM) se obtienen solo los 9ndices numQricos igual &uemys&l5fetch5ro()
print JOpremys&l5fetch5array(REresultado,M8%]L5?CM)!RnJprint5r(mys&l5fetch5array(Eresultado,M8%]L5?CM),true)JOpreJG
mys&l5fetch5array(Eresultado,M8%]L5A%%4B) se obtienen solo los 9ndices asociativos igual
&ue mys&l5fetch5assoc() print JOpremys&l5fetch5array(REresultado,M8%]L5A%%4B)!RnJprint5r(mys&l5fetch5array(Eresultado,M8%]L5A%%4B),true)JOpreJG
mys&l5fetch5array(Eresultado)!
Array
( S=T F >==
Scod5aluT F >==
S>T F MA9AL2? P2:2\
SnombreT F MA9AL2? P2:2\
SNT F VYZU_[N
StelefonoT F VYZU_[N
ST F U[VY
ScpT F U[VY
)
mys&l5fetch5array(Eresultado,M8%]L5?CM)!
Array
(
S=T F N=V
S>T F 6:A?B9%B4 :9B4
SNT F VYZ>N_[U
ST F U[VY
)
mys&l5fetch5array(Eresultado,M8%]L5A%%4B)!
Array
(
Scod5aluT F ==
SnombreT F :A?2:9
StelefonoT F UV_[UVYZ
ScpT F U[NU
)
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
10/19
%e e"traen algunos datos de un alumno en modo lista! print JOolJG
hile(EdatoFmys&l5fetch5ro(Eresultado))Iprint JOliEdatoS>T elef! EdatoSNTOliJG
print JOolJG
Ponemos el puntero de nuevo a cero (comien^o) con mys&l5data5see; (resource Eresult ,intEro5number ) mys&l5data5see;(Eresultado,=)G
:ecorremos de nuevo el resultado sin tener &ue reenviar la consulta con un for! print JOolJG
for(EiF=GEiOEnum5filasGEi``)I
EdatoFmys&l5fetch5ro(Eresultado)Gprint JOliEdatoS>T elef! EdatoSNTOliJG
print JOolJG
:ecorremos de nuevo el resultado sin tener &ue reenviar la consulta con un $hile! mys&l5data5see;(Eresultado,=)G
print JOhUBon hileOhUJGprint JOolJGhile(EdatoFmys&l5fetch5ro(Eresultado))
Iprint JOliEdatoS>T elef! EdatoSNTOliJG
print JOolJG
Labores de limpie^a! mys&l5free5result(Eresultado)G
mys&l5close()G
> 4%2 M29A% elef! YVZUVY[Z
N :4%A %CA:2\ elef! YZVNUVY
MA9AL2? P2:2\ elef! VYZU_[N
U 6:A?B9%B4 :9B4 elef! VYZ>N_[U
V :A?2:9 elef! UV_[UVYZ
Y :AM4? :2?A:4 elef! UVY[ZUVY
> 4%2 M29A% elef! YVZUVY[Z
N :4%A %CA:2\ elef! YZVNUVY
MA9AL2? P2:2\ elef! VYZU_[N
U 6:A?B9%B4 :9B4 elef! VYZ>N_[U
V :A?2:9 elef! UV_[UVYZ
Y :AM4? :2?A:4 elef! UVY[ZUVY
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
11/19
%e crea una base de datos llamada foroy dentro una tabla llamada %s%arios
%e introducen algunos usuarios (no se mete c*digo usuario por&ue lo he configurado como auto5increment)
%e crea un programa php &ue muestra los usuarios porejemplo de un foro (NU5listado5usuariosphp)
%i se pincha en el nombre muestra datos de eseusuario (NU5mostrar5fichaphp)
3a opciones de borrado del usuario(NU5borrar5fichaphp)
2dici*n del usuario para modificar sus datos(NU5editar5fichaphp)
8 tambiQn hay una opci*n para insertar usuariosen la base de datos (NU5insertar5fichahtml yNU5insertarphp)
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
12/19
&ontenido del programa '(#listado#%s%arios)php *%sando %n for+OH34B8P2 'ML PCL9B J$WB33 'ML U=>2?J Jhttp!org:htmlUstrictdtdJOhtml
OheadOmeta http$e&uivFJcontent$typeJ contentFJte"thtmlG charsetF9%4$[[V_$>J OtitleListado de usuarios Otitle
OheadObodyOh Listado de usuarios Oh
O-phpPrimero conectamos con la base de datos, %i anteponemos D no escribe el error por defectoD Econe"ion F mys&l5connect(0localhost0@ servidor @, 0root0@ usuario @,00@ clave @)Gif(HEcone"ion)
Idie(J9mposible conectar 2rror nKuacuteGmero Jmys&l5errno()J! Jmys&l5error())G
Abrimos la 333mys&l5select5db(0foro0) or die(09mposible abrir la 33! 0mys&l5error())G
Breamos la &ueryEconsultaF0%2L2B @ 6:4M usuarios0G
Mandamos la &uery al servidor de 33 %i algo ha ido mal, Eresultado se interpreta como falsoEresultadoFmys&l5&uery(Econsulta) or die(J9mposible consultar! Jmys&l5error())G
2n este caso, &ue la consulta es una select, devuelve un objeto de tipo recurso &ue permite acceder al resultado de la consultaEnum5filasFmys&l5num5ros(Eresultado)G
usando forBreamos una abla para mostrar el contenido de la consulta en formato tabla
print JRtRtOtable borderFRJNRJRnJGprint JRtRtOcaptionObabla Listado usuariosObOcaptionRnJG
genero la cabeceraprint JRtRtRtOtr
Oth?ombre usuarioOthOthorrarOthOth2ditarOth
OtrRnJGcon un for recorro las filas de la tablafor(EiF=GEiOEnum5filasGEi``)
IEdatoFmys&l5fetch5ro(Eresultado)G
imprimo en la tablaprint JRtRtRtRtOtrRnJG
con EdatoST imprimo el contenido de cada columna y lo referencioprint JRtRtRtRtOtdOa hrefFRJNU5mostrar5fichaphp-idFEdatoS=TRJEdatoS>TOaOtdRnJG
print JRtRtRtRtOtdOa hrefFRJNU5borrar5fichaphp-idFEdatoS=TRJ onclic;FRJreturn confirm(02stas
seguro-0)RJOimg altFRJborrarRJ srcFRJimgb5droppngRJOaOtdRnJGprint JRtRtRtRtOtdOa hrefFRJNU5editar5fichaphp-idFEdatoS=TRJ onclic;FRJreturn confirm(02stas
seguro-0)RJOimg altFRJeditarRJ srcFRJimgb5editpngRJOaOtdRnJGprint JRtRtRtRtOtrRnJG
print JRtRtOtableRnJG
Labores de limpie^a!mys&l5free5result(Eresultado)Gmys&l5close()G-
OH$$ Ponemos un boton para la insercion de un nuevo usuario $$Op KnbspG OpOform actionFJNU5insertar5fichahtmlJ methodFJ
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
13/19
&ontenido del programa '(#listado#%s%arios)php *%sando %n $hile+OH34B8P2 'ML PCL9B J$WB33 'ML U=>2?J Jhttp!org:htmlUstrictdtdJOhtml
OheadOmeta http$e&uivFJcontent$typeJ contentFJte"thtmlG charsetF9%4$[[V_$>J OtitleListado de usuarios Otitle
OheadObodyOh Listado de usuarios Oh
O-phpPrimero conectamos con la base de datos, %i anteponemos D no escribe el error por defectoD Econe"ion F mys&l5connect(0localhost0@ servidor @, 0root0@ usuario @,00@ clave @)Gif(HEcone"ion)
Idie(J9mposible conectar 2rror nKuacuteGmero Jmys&l5errno()J! Jmys&l5error())G
Abrimos la 333mys&l5select5db(0foro0) or die(09mposible abrir la 33! 0mys&l5error())G
Breamos la &ueryEconsultaF0%2L2B @ 6:4M usuarios0G
Mandamos la &uery al servidor de 33 %i algo ha ido mal, Eresultado se interpreta como falsoEresultadoFmys&l5&uery(Econsulta) or die(J9mposible consultar! Jmys&l5error())G
2n este caso, &ue la consulta es una select, devuelve un objeto de tipo recurso &ue permite acceder al resultado de la consultaEnum5filasFmys&l5num5ros(Eresultado)G
usando hilepongo el puntero de nuevo a ceromys&l5data5see;(Eresultado,=)GBreamos una abla para mostrar el contenido de la consulta en formato tabla
print JRtRtOtable borderFRJNRJRnJGprint JRtRtOcaptionObabla Listado usuariosObOcaptionRnJG
genero la cabeceraprint JRtRtRtOtr
Oth?ombre usuarioOthOthorrarOthOth2ditarOth
OtrRnJGcon un hile recorro la tabla y por cada fila &ue haya se ejecutahile(EdatoFmys&l5fetch5ro(Eresultado))
Iimprimo en la tabla
print JRtRtRtRtOtrRnJGcon EdatoST imprimo el contenido de cada columna y lo referencio
print JRtRtRtRtOtdOa hrefFRJNU5mostrar5fichaphp-idFEdatoS=TRJEdatoS>TOaOtdRnJG
print JRtRtRtRtOtdOa hrefFRJNU5borrar5fichaphp-idFEdatoS=TRJ onclic;FRJreturn confirm(02stasseguro-0)RJOimg altFRJborrarRJ srcFRJimgb5droppngRJOaOtdRnJG
print JRtRtRtRtOtdOa hrefFRJNU5editar5fichaphp-idFEdatoS=TRJ onclic;FRJreturn confirm(02stasseguro-0)RJOimg altFRJeditarRJ srcFRJimgb5editpngRJOaOtdRnJG
print JRtRtRtRtOtrRnJG
print JRtRtOtableRnJG
Labores de limpie^a!mys&l5free5result(Eresultado)Gmys&l5close()G-
OH$$ Ponemos un boton para la insercion de un nuevo usuario $$Op KnbspG OpOform actionFJNU5insertar5fichahtmlJ methodFJ
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
14/19
&ontenido del programa '(#mostrar#ficha)phpOH34B8P2 'ML PCL9B J$WB33 'ML U=>2?J Jhttp!org:htmlUstrictdtdJOhtml
OheadOmeta http$e&uivFJcontent$typeJ contentFJte"thtmlG charsetF9%4$[[V_$>J Otitle3atos usuario Otitle
OheadObodyOh 3atos usuario OhO-phpPrimero conectamos con la base de datos, %i anteponemos D no escribe el error por defectoD Econe"ion F mys&l5connect(0localhost0@ servidor @, 0root0@ usuario @,00@ clave @)Gif(HEcone"ion)
Idie(J9mposible conectar 2rror nKuacuteGmero Jmys&l5errno()J! Jmys&l5error())G
Abrimos la 333mys&l5select5db(0foro0) or die(09mposible abrir la 33! 0mys&l5error())G
Breamos la &ueryEconsultaF0%2L2B @ 6:4M usuarios W'2:2 cod5usuF0E5)
Iprint JRtRtOp?o se encuentra el usuarioOpRnJG
elseI
muestro la informacion del usuarioEdatoFmys&l5fetch5ro(Eresultado)G
con EdatoST imprimo el contenido de cada columna de la seleccion reali^adaprint JRtRtRt Op?ombre! EdatoS>TOpRnJGprint JRtRtRt Op?ic;! EdatoSNTOpRnJGprint JRtRtRt Op2mail! EdatoSUTOpRnJG
print JRtRtRt OpKnbspGOpRnJG
Labores de limpie^a!mys&l5free5result(Eresultado)Gmys&l5close()G-
OH$$ Ponemos un boton para volver a la tabla de usuarios $$OpOa hrefFJNU5listado5usuariosphpJOimg altFJretornoJ srcFJimgbuttonpngJOaOpObody
Ohtml
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
15/19
&ontenido del programa '(#borrar#ficha)phpOhtml
OheadOmeta http$e&uivFJcontent$typeJ contentFJte"thtmlG charsetF9%4$[[V_$>J Otitleborrado usuarios Otitle
OheadObodyOh orrado usuario OhO-phpPrimero conectamos con la base de datos, %i anteponemos D no escribe el error por defectoD Econe"ion F mys&l5connect(0localhost0@ servidor @, 0root0@ usuario @,00@ clave @)Gif(HEcone"ion)
Idie(J9mposible conectar 2rror nKuacuteGmero Jmys&l5errno()J! Jmys&l5error())G
Abrimos la 333mys&l5select5db(0foro0) or die(09mposible abrir la 33! 0mys&l5error())G
Breamos la &uery
EconsultaF0%2L2B @ 6:4M usuarios W'2:2 cod5usuF0E5)
Iprint JRtRtOp?o se encuentra el usuarioOpRnJG
else
IEdatoFmys&l5fetch5ro(Eresultado)G
con EdatoST imprimo el contenido de cada columna de la seleccion reali^adaprint JRtRtRt Op%e borrara al usuario! OpRnJGprint JRtRtRt Op?ombre! EdatoS>TOpRnJGprint JRtRtRt Op?ic;! EdatoSNTOpRnJGprint JRtRtRt Op2mail! EdatoSUTOpRnJG
borro el usuario indicadoEborradoF032L22 6:4M forousuarios W'2:2 usuarioscod5usuF0E5
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
16/19
&ontenido del programa '(#editar#ficha)phpOhtml
OheadOmeta http$e&uivFJcontent$typeJ contentFJte"thtmlG charsetF9%4$[[V_$>J Otitle2dita usuario Otitle
OheadObodyOh 2dita usuario OhO-phpPrimero conectamos con la base de datos, %i anteponemos D no escribe el error por defectoD Econe"ion F mys&l5connect(0localhost0@ servidor @, 0root0@ usuario @,00@ clave @)Gif(HEcone"ion)
Idie(J9mposible conectar 2rror nKuacuteGmero Jmys&l5errno()J! Jmys&l5error())G
Abrimos la 333mys&l5select5db(0foro0) or die(09mposible abrir la 33! 0mys&l5error())G
Breamos la &uery
EconsultaF0%2L2B @ 6:4M usuarios W'2:2 cod5usuF0E5)
Iprint JRtRtOp?o se encuentra el usuarioOpRnJG
else
IEdatoFmys&l5fetch5ro(Eresultado)Gprint OOO3A4%
Oform actionFJNU5actuali^arphpJ methodFJ
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
17/19
&ontenido del programa '(#act%ali,ar)php
OH34B8P2 'ML PCL9B J$WB33 'ML U=>2?J Jhttp!org:htmlUstrictdtdJOhtml
OheadOmeta http$e&uivFJcontent$typeJ contentFJte"thtmlG charsetF9%4$[[V_$>J Otitle 2dicion usuario Otitle
OheadObody
Oh 2dicion usuario OhO-phpPrimero conectamos con la base de datos, %i anteponemos D no escribe el error por defectoD Econe"ion F mys&l5connect(0localhost0@ servidor @, 0root0@ usuario @,00@ clave @)Gif(HEcone"ion)
Idie(J9mposible conectar 2rror nKuacuteGmero Jmys&l5errno()J! Jmys&l5error())G
Abrimos la 333mys&l5select5db(0foro0) or die(09mposible abrir la 33! 0mys&l5error())G
Breamos la &ueryEconsultaF0%2L2B @ 6:4M usuarios W'2:2 cod5usuF0E5)
Iprint JRtRtOp?o se encuentra el usuarioOpRnJG
elseIedito el usuario indicado
EeditoFJCP3A2 forousuarios %2 nombre F 0JE5
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
18/19
&ontenido del programa '(#insertar#ficha)html
OH34B8P2 'ML PCL9B J$WB33 'ML U=>2?J Jhttp!org:htmlUstrictdtdJOhtml
OheadOmeta http$e&uivFJcontent$typeJ contentFJte"thtmlG charsetF9%4$[[V_$>J Otitle9nsercion usuario Otitle
OheadObody
Oh 9nsercion nuevo usuario Oh
Oform actionFJNU5insertarphpJ methodFJ
-
7/23/2019 Implantacion de Aplicaciones Web Apuntes Phpmyadmin
19/19
&ontenido del programa '(#insertar)phpOH34B8P2 'ML PCL9B J$WB33 'ML U=>2?J Jhttp!org:htmlUstrictdtdJOhtml
OheadOmeta http$e&uivFJcontent$typeJ contentFJte"thtmlG charsetF9%4$[[V_$>J Otitle9nsercion usuario Otitle
OheadObodyOh 9nsercion usuario Oh
O-phpPrimero conectamos con la base de datos, %i anteponemos D no escribe el error por defectoD Econe"ion F mys&l5connect(0localhost0@ servidor @, 0root0@ usuario @,00@ clave @)Gif(HEcone"ion)
Idie(J9mposible conectar 2rror nKuacuteGmero Jmys&l5errno()J! Jmys&l5error())G
Abrimos la 333mys&l5select5db(0foro0) or die(09mposible abrir la 33! 0mys&l5error())G
Breamos la &ueryEconsultaFJ%2L2B @ 6:4M usuarios W'2:2 nic;F0JE5