Objetivo:
Crear servicios web utilizando la arquitectura REST, para obtener información desde un
servidor web en un Hosting Gratuito que se conecta a una base de datos.
Requerimientos previos:
https://www.000webhost.com
1
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
Seleccione el signo + para crear un website, que aunque no lo utilizaremos, es necesario para
activar la cuenta, Luego presione clic en OK
2
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
Crear clic en el link y Luego presionar clic para crear el sitio web.
3
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
Las opciones que tendremos para trabajar son Administrador de Archivos(para crear los servicios
web) y Administrador de Base de Datos(para crear la base carnet)
4
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
5
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
*Parte Opcional
Si deseamos crear la base de datos a partir de un modelo conceptual podemos utilizar el archivo
modelo_guia08.cdm y generar archivo físico(MySQL ) y crear Script de Base de Datos.
6
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
7
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
/*==============================================================*/
create table MATERIA
(
CODMATERIA char(6) not null,
NOMMATERIA varchar(30) not null,
UNIDADESVAL char(1) not null,
primary key (CODMATERIA)
) ENGINE = InnoDB;
/*==============================================================*/
/* Table: NOTA */
/*==============================================================*/
create table NOTA
(
CODMATERIA char(6) not null,
CARNET char(7) not null,
CICLO char(6) not null,
NOTAFINAL float,
primary key (CODMATERIA, CARNET, CICLO)
) ENGINE = InnoDB;
alter table NOTA add constraint FK_POSEE foreign key (CODMATERIA)
references MATERIA (CODMATERIA) on delete restrict on update restrict;
alter table NOTA add constraint FK_TIENE foreign key (CARNET)
references ALUMNO (CARNET) on delete restrict on update restrict;
8
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
En Alumno
En Materia
En Nota
9
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
1) Verificamos en la tabla nota. Que existe la integridad Referencial(Clic en tabla NOTAS, clic
en Estructura y clic en vista relaciones)
Veremos que efectivamente están activadas las restricciones de Foreign Key para modalidad
RESTRICT en OPERACIÓN UPDATE Y DELETE.
10
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
Probamos la integridad referencial (con un carnet que no tiene referencia en la tabla alumno)
Probamos la integridad referencial (con un codmateria que no tiene referencia en la tabla materia)
11
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
12
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
<?php
$codmateria=$_REQUEST['codmateria'];
$carnet=$_REQUEST['carnet'];
13
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
$ciclo=$_REQUEST['ciclo'];
$notafinal=$_REQUEST['notafinal'];
$servidor="localhost";
$usuario="su_usuario";
$baseDatos="su_base";
$password="su clave”;
$respuesta=array('resultado'=>0);
json_encode($respuesta);
$conexion=mysqli_connect($servidor,$usuario,$password,$baseDatos);
echo($query);
if(mysqli_affected_rows($conexion) == 1) $respuesta=array('resultado'=>1);
echo json_encode($respuesta);
mysqli_close($conexion);
?>
Insertar Notas de alumnos
http://pdm115-2018.000webhostapp.com/ws_nota_insert.php?
carnet=SS00001&codmateria=MAT215&ciclo=3¬afinal=7
14
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
<?php
$codmateria=$_REQUEST['codmateria'];
$carnet=$_REQUEST['carnet'];
$ciclo=$_REQUEST['ciclo'];
$servidor="su_servidor ";
$usuario="su_usuario";
$baseDatos="su_base";
$password="su clave";
$conexion=mysqli_connect($servidor,$usuario,$password,$baseDatos) or
die ("Problemas en la conexion");
$db_select_db = mysqli_select_db($conexion,$baseDatos);
if (!$db_select_db) {
die("Problemas en la seleccion de la base de datos " . mysqli_error($connection));
}
//mysqli_select_db($baseDatos,$conexion)
// or die("Problemas en la seleccion de la base de datos");
$registros=mysqli_query($conexion,"SELECT * FROM NOTA WHERE carnet='".$carnet."' AND
codmateria='".$codmateria."' AND ciclo='".$ciclo."'") or
die("Problemas en el select:".mysql_error());
$filas=array();
while ($reg=mysqli_fetch_assoc($registros))
{
$filas[]=$reg;
}
echo json_encode($filas);
15
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
mysqli_close($conexion);
?>
<?php
$codmateria=$_REQUEST['codmateria'];
$carnet=$_REQUEST['carnet'];
$ciclo=$_REQUEST['ciclo'];
$notafinal=$_REQUEST['notafinal'];
$servidor="su_servidor ";
$usuario="su_usuario";
$baseDatos="su_base";
$password="su clave";
$respuesta=array('resultado'=>0);
json_encode($respuesta);
$conexion=mysqli_connect($servidor,$usuario,$password,$baseDatos) or
16
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
echo($query);
if(mysqli_affected_rows($conexion) == 1)
$respuesta=array('resultado'=>1);
echo json_encode($respuesta);
mysqli_close($conexion);
?>
Actualizar Notas de alumnos
http://pdm115-
2018.000webhostapp.com/ws_nota_update.php?carnet=SS00001&codmateri
a=MAT215&ciclo=2¬afinal=10
<?php
$codmateria=$_REQUEST['codmateria'];
$carnet=$_REQUEST['carnet'];
$ciclo=$_REQUEST['ciclo'];
$servidor="su_servidor ";
$usuario="su_usuario";
$baseDatos="su_base";
17
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
$password="su clave";
$respuesta=array('resultado'=>0);
json_encode($respuesta);
$conexion=mysqli_connect($servidor,$usuario,$password,$baseDatos) or
if(mysqli_affected_rows($conexion) == 1)
$respuesta=array('resultado'=>1);
echo json_encode($respuesta);
mysqli_close($conexion);
?>
Eliminar Notas de alumnos
http://pdm115-
2018.000webhostapp.com/ws_nota_delete.php?carnet=SS00001&codmateri
a=MAT215&ciclo=2
18
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
19
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
Modifique los registros que desee para mostrar los servicios filtrados
Script de inserción
<?php
//error_reporting(E_ALL ^ E_DEPRECATED);
$year=$_REQUEST['year'];
$month=$_REQUEST['month'];
$day=$_REQUEST['day'];
$servidor="su_servidor ";
$usuario="su_usuario";
$baseDatos="su_base";
$password="su clave";
$conexion=mysqli_connect($servidor,$usuario,$password,$baseDatos)
or
die("Problemas en el select:".mysqli_error($conexion));
20
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
$filas=array();
while ($reg=mysqli_fetch_assoc($registros))
$filas[]=$reg;
echo json_encode($filas);
mysqli_close($conexion);
?>
<?php
$year=$_REQUEST['year'];
$month=$_REQUEST['month'];
$day=$_REQUEST['day'];
21
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
die("Problemas en el select:".mysqli_error($conexion));
$filas=array();
while ($reg=mysqli_fetch_assoc($registros))
$filas[]=$reg;
echo json_encode($filas);
mysqli_close($conexion);
?>
<?php
$carnet=$_REQUEST['carnet'];
22
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
$password="su clave";
$conexion=mysqli_connect($servidor,$usuario,$password,$baseDatos) or
die("Problemas en el select:".mysqli_error($conexion));
$filas=array();
while ($reg=mysqli_fetch_assoc($registros))
$filas[]=$reg;
echo json_encode($filas);
mysqli_close($conexion);
?>
Probar el servicio :
http://pdm115-2018.000webhostapp.com/ws_db_carnet_group.php?carnet=SS00001
$carnet=$_REQUEST['carnet'];
23
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION PARA DISPOSITIVOS MOVILES
PDM115 Ciclo I-2018
$password="su clave";
$conexion=mysql_connect($servidor,$usuario,$password) or
$baseDatos="carnet";
mysql_select_db($baseDatos,$conexion) or die("Problemas en la
seleccion de la base de datos");
Con la conexión ya establecida, ahora vamos a conectarnos a la base de datos con la función
mysql_select_db que recibe como parámetros el nombre de la base de datos y la conexión que
creamos anteriormente.
Ya definidas la conexion con el servidor y la base de datos ahora podemos hacer consultas sobre la
base utilizando mysqli_query que recibe como parámetros la consulta y la conexión.
$filas=array();
while ($reg=mysqli_fetch_assoc($registros))
{
$filas[]=$reg;
}
echo json_encode($filas);
mysqli_close($conexion);
Con $filas=array( ), vamos a crear un vector vacío donde vamos a guardar todos los resultados de
la consulta.
24