UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERIA Y ARQUITECTURA ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS PROGRAMACION PARA DISPOSITIVOS MOVILES PDM115 Ciclo I-2014 GUIA DE LABORATORIO N° 10 b Creación de Servicios web y modificaciones al webhosting gratuito para consumir posteriormente desde el movil Objetivo: Crear los servicios web adicionales a los hechos en la guía 8b para que permitir consumo desde movil. Requerimientos previos: Desarrollar guia 8b Índice Contenido Encontrar Alumno y Materia por fecha .............................................................................................. 1 Agregar los campos de fecha a la tabla Alumno y Materia. ............................................................ 1 Servicio web de Alumnos filtrados desde una fecha. .................................................................... 2 Servicio web de Materias filtradas desde una fecha..................................................................... 3 Servicio web de Inserción de Notas. .............................................................................................. 4 Probar Con la siguientes URL: ............................................................................................................. 5 Obtener el Promedio de Notas de un Alumno .................................................................................... 6 Servicio web de Traer promedio de notas x alumno. .................................................................... 6 Consultar Notas agrupadas por carnet ............................................................................................... 6 1 Encontrar Alumno y Materia por fecha Agregar los campos de fecha a la tabla Alumno y Materia. *Si ya se tienen datos hacer el update ALTER TABLE `alumnos` ADD `fecha_modificado` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ; UPDATE `a6240432_carnet`alumnos` SET `fecha_modificado` = '2011-01-01 00:00:00' WHERE CONVERT( `alumnos`.`Carnet` USING utf8 ) <> 'AAAAAAA' LIMIT 5 ; ALTER TABLE `materia` ADD `fecha_modificado` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ; UPDATE `a6240432_carnet`.`materia` SET `fecha_modificado` = '2011-01-01 00:00:00' WHERE CONVERT( `materia`.`Codmateria` USING utf8 ) <> 'AAAAAA' LIMIT 5 ; Modifique los registros que desee para mostrar los servicios filtrados Script de inserción INSERT INTO `a6240432_carnet`.`alumnos` (`Carnet` ,`Nombre` ,`Apellido` ,`Sexo` , `Matganadas` ,`fecha_modificado` ) VALUES ('NN00004', 'nuevo1', 'nuevo2', 'M', '0', CURRENT_TIMESTAMP ); INSERT INTO `a6240432_carnet`.`materia` (`Codmateria` ,`Nommateria` , `Unidadesval` ,`fecha_modificado` ) VALUES ('MAT215', 'Matematicas 2', '4', CURRENT_TIMESTAMP ); INSERT INTO `a6240432_carnet`.`nota` (`Carnet` ,`Codmateria` ,`Ciclo` ,`Notafinal` ) VALUES ('NN00001', 'MAT215', '1', '4'); 2 Servicio web de Alumnos filtrados desde una fecha. Haga un archivo llamado ws_db_fecha.php que contenga: <?php $year=$_REQUEST['year']; $month=$_REQUEST['month']; $day=$_REQUEST['day']; $servidor="mysql3.000webhost.com"; $usuario="a7428544_pdm115"; $password="pdm115"; $conexion=mysql_connect($servidor,$usuario,$password) or die ("Problemas en la conexion"); $baseDatos="a7428544_carnet"; mysql_select_db($baseDatos,$conexion) or die("Problemas en la seleccion de la base de datos"); $registros=mysql_query("Select * from alumnos where fecha_modificado>'".$year."-".$month."-".$day."'",$conexion) or die("Problemas en el select:".mysql_error()); $filas=array(); while ($reg=mysql_fetch_assoc($registros)) { $filas[]=$reg; } echo json_encode($filas); mysql_close($conexion); ?> Nota: Ajústelo a sus parámetros del hosting gratuito. 3 Servicio web de Materias filtradas desde una fecha. Haga un archivo llamado ws_db_materia_fecha.php que contenga: <?php $year=$_REQUEST['year']; $month=$_REQUEST['month']; $day=$_REQUEST['day']; $servidor="mysql3.000webhost.com"; $usuario="a7428544_pdm115"; $password="pdm115"; $conexion=mysql_connect($servidor,$usuario,$password) or die ("Problemas en la conexion"); $baseDatos="a7428544_carnet"; mysql_select_db($baseDatos,$conexion) or die("Problemas en la seleccion de la base de datos"); $registros=mysql_query("Select * from materia where fecha_modificado>'".$year."-".$month."-".$day."'",$conexion) or die("Problemas en el select:".mysql_error()); $filas=array(); while ($reg=mysql_fetch_assoc($registros)) { $filas[]=$reg; } echo json_encode($filas); mysql_close($conexion); ?> 4 Servicio web de Inserción de Notas. Haga un archivo llamado ws_nota_insert.php que contenga: <?php $carnet=$_REQUEST['carnet']; $codmateria=$_REQUEST['codmateria']; $ciclo=$_REQUEST['ciclo']; $notafinal=$_REQUEST['notafinal']; $servidor="mysql3.000webhost.com"; $usuario="a7428544_pdm115"; $password="pdm115"; $respuesta=array('resultado'=>0); json_encode($respuesta); $conexion=mysql_connect($servidor,$usuario,$password) or die ("Problemas en la conexion"); $baseDatos="a7428544_carnet"; mysql_select_db($baseDatos,$conexion) or die("Problemas en la seleccion de la base de datos"); $resultado=mysql_query("Insert into nota values('$carnet','$codmateria','$ciclo',$notafinal)",$conexion) or die( json_encode($respuesta)); //Si la respuesta es correcta enviamos 1 y sino enviamos 0 if($resultado) $respuesta=array('resultado'=>1); echo json_encode($respuesta); mysql_close($conexion); ?> 5 Probar Con la siguientes URL: Consultar materias creadas desde una fecha http://carnetpdm115.site40.net/ws_db_materia_fecha.php?year=2012&month =01&day=01 Consultar alumnos creados desde una fecha http://carnetpdm115.site40.net//ws_db_fecha.php?year=2012&month=01&da y=01 Insertar Notas de alumnos(CON GET O POST) http://carnetpdm115.site40.net/ws_nota_insert.php?carnet=NN0000 1&codmateria=MAT115&ciclo=1&notafinal=2 6 Obtener el Promedio de Notas de un Alumno Servicio web de Traer promedio de notas x alumno. Haga un archivo llamado ws_db_carnet_group.php que contenga: <?php $carnet=$_REQUEST['carnet']; $servidor="mysql3.000webhost.com"; $usuario="a7428544_pdm115"; $password="pdm115"; $conexion=mysql_connect($servidor,$usuario,$password) or die ("Problemas en la conexion"); $baseDatos="a7428544_carnet"; mysql_select_db($baseDatos,$conexion) or die("Problemas en la seleccion de la base de datos"); $registros=mysql_query("Select Carnet,avg(Notafinal) as promedio from nota where Carnet='".$carnet."' group by carnet",$conexion) or die("Problemas en el select:".mysql_error()); $filas=array(); while ($reg=mysql_fetch_assoc($registros)) { $filas[]=$reg; } echo json_encode($filas); mysql_close($conexion); ?> Consultar Notas agrupadas por carnet http://carnetpdm115.site40.net/ws_db_carnet_group.php?carnet=NN00001