+ All Categories
Home > Documents > BD PR Cardenas Marlon.jose Punto5

BD PR Cardenas Marlon.jose Punto5

Date post: 16-Dec-2015
Category:
Upload: marlonjcc1
View: 213 times
Download: 0 times
Share this document with a friend
Description:
BD PR Punto
21
Máster Internacional en Software Libre - Bases de Datos 1 Ejercicio 5 Integración con PHP y Java(25%) a) Realizar un programa en PHP (utilizando el SGBD PostgreSQL) que permita introducir los siguientes datos a las tablas creadas en los ejercicios anteriores: Numero regimiento. Numero batallón. Fecha ID Tipo comida ID Momento comida Numero soldados Una vez introducidos los datos y pulsar sobre un botón ‘Insertar’, se verificará la corrección de los datos, enseñando el nombre del regimiento, el nombre del batallón, la descripción del tipo de comida y del momento de la comida. Una vez comprobados los datos tendremos habrá opción de pulsar sobre ‘Continuar’. En el caso de haber algún dato incorrecto tendremos opción de volver a la pantalla anterior. La siguiente pantalla servirá para pedir los datos: Id alimento Cantidad De forma continuada, hasta introducir en id alimento un cero. Cada vez que aceptemos los datos deberá aparecer en pantalla la descripción del alimento. Al finalizar el proceso, por haber introducido un cero en id alimento, se nos mostrará el total de calorías y proteínas que aportará a cada soldado el menú creado. NOTA: Para traspasar el contenido de una variable de un programa PHP a otro que se llame, sin necesidad de que el valor sea de un campo recién introducido por el usuario, se puede utilizar el código: <input type="hidden" name="idcomida" value="<?php echo $NumeroComida; ?> ">
Transcript
  • Mster Internacional en Software Libre - Bases de Datos

    1

    Ejercicio 5 Integracin con PHP y Java(25%) a) Realizar un programa en PHP (utilizando el SGBD PostgreSQL) que permita introducir los siguientes datos a las tablas creadas en los ejercicios anteriores: Numero regimiento. Numero batalln. Fecha ID Tipo comida ID Momento comida Numero soldados Una vez introducidos los datos y pulsar sobre un botn Insertar, se verificar la correccin de los datos, enseando el nombre del regimiento, el nombre del batalln, la descripcin del tipo de comida y del momento de la comida. Una vez comprobados los datos tendremos habr opcin de pulsar sobre Continuar. En el caso de haber algn dato incorrecto tendremos opcin de volver a la pantalla anterior. La siguiente pantalla servir para pedir los datos: Id alimento Cantidad De forma continuada, hasta introducir en id alimento un cero. Cada vez que aceptemos los datos deber aparecer en pantalla la descripcin del alimento. Al finalizar el proceso, por haber introducido un cero en id alimento, se nos mostrar el total de caloras y protenas que aportar a cada soldado el men creado. NOTA: Para traspasar el contenido de una variable de un programa PHP a otro que se llame,

    sin necesidad de que el valor sea de un campo recin introducido por el usuario, se puede utilizar el cdigo:

  • Mster Internacional en Software Libre - Bases de Datos

    2

    La secuencia de funcionamiento ser:

    error

  • Mster Internacional en Software Libre - Bases de Datos

    3

    Pegad aqu el cdigo PHP:

    autentica.php Control Dieta Batallon Control Dieta Introduce nombre de usuario USER: PASSWORD:

    control.php Control de Acceso

  • Mster Internacional en Software Libre - Bases de Datos

    4

    $TotalRegistres = pg_result($resultat_set, 0); pg_close($conexio); if ($TotalRegistres == 0) { echo "Autentication Error: "; ?> Back to home captura.php Control Dieta Ejercito Introduccion Datos Operation details Numero de Regimiento: Numero de Batallon:

    Fecha: Id. Tipo de Comida: Id. Momento Comida: Numero de Soldados:

  • Mster Internacional en Software Libre - Bases de Datos

    5

    verifica.php Control Dieta Control dieta ejercito

  • Mster Internacional en Software Libre - Bases de Datos

    6

    if ($numRows_3 == 0) { $nomcom="Tipo de comida no encontrada"; } else { $nomcom=pg_result($result_set_3, 0); } $sql_4 = "SELECT tipocomida FROM orden WHERE id_orden = '".$_POST['nombremomento']."'"; $result_set_4 = pg_Exec ($conexio, $sql_4); $numRows_4 = pg_num_rows ($result_set_4); if ($numRows_4 == 0) { $nommom="Tipo de comida no encontrada"; } else { $nommom=pg_result($result_set_4, 0); } pg_close($conexio); ?> Datos Introducidos Regimiento: Batallon:

    Tipo Comida: Momento Comida:

  • Mster Internacional en Software Libre - Bases de Datos

    7

    componentes.php Control Dieta Ejercito Introduccion Componentes Comidas Operation details ID del Alimento: Cantidad: introducecomponentes.php Control Dieta

    Control dieta ejercito

  • Mster Internacional en Software Libre - Bases de Datos

    8

    { $nomreg=pg_result($result_set_1, 0); } $sql_2 = "SELECT calorias FROM alimento WHERE id = '".$_POST['id']."'"; $result_set_2 = pg_Exec ($conexio, $sql_2); $numRows_2 = pg_num_rows ($result_set_2); if ($numRows_2 == 0) { } $sql_3 = "SELECT id_menu FROM menu WHERE id = '".$_POST['tipocomida']."'"; $result_set_3 = pg_Exec ($conexio, $sql_3); $numRows_3 = pg_num_rows ($result_set_3); { $menu=pg_result($result_set_1, 1); $totalcal=$calorias*$integrantes; $sql_4 = "SELECT proteinas FROM alimento WHERE id = '".$_POST['id']."'"; $result_set_4 = pg_Exec ($conexio, $sql_2); $numRows_4 = pg_num_rows ($result_set_2); if ($numRows_4 == 0) { $sql_2 = "SELECT proteinas FROM alimento WHERE id = '".$_POST['id']."'"; $result_set_4 = pg_Exec ($conexio, $sql_4); $numRows_4 = pg_num_rows ($result_set_4); if ($numRows_4 == 0) { } { $proteinas=pg_result($result_set_5, 0); $sql_5 = "SELECT id_menu FROM menu WHERE id = '".$_POST['tipocomida']."'"; $result_set_5 = pg_Exec ($conexio, $sql_5); $numRows_5 = pg_num_rows ($result_set_5); { $menu=pg_result($result_set_1, 1); $totalpro=$proteinas*$integrantes; }

    pg_close($conexio); ?> Datos Introducidos alimento: Total Calorias por Soldado:

  • Mster Internacional en Software Libre - Bases de Datos

    9

    Total Proteinas por Soldado: Total Proteinas por Soldado: Total Calorias por Soldado:

    Adjuntar las capturas de pantalla que consideris necesarias para mostrar el correcto funcionamiento de la aplicacin: Ingreso a la aplicacion

    Control Dieta

  • Mster Internacional en Software Libre - Bases de Datos

    10

    Detecta Error

    Introduccir componentes

    Busqueda datos correcto

  • Mster Internacional en Software Libre - Bases de Datos

    11

    b) Realizar un programa en java (utilizando el SGBD PostgreSQL) que muestre los datos nutricionales de los alimentos usados en la ltima comida. El programa deber funcionar ininterrumpidamente, mostrando cada 2 minutos los datos de los componentes del ltimo men creado. Se pide concretamente que se muestre el nombre del alimento, las caloras, las protenas y las grasas de cada uno de los mismos.

    ConexionBd.java /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package utilidades; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * * @author Kevin Arnold */ public class ConexionDB { public static Connection GetConnection() { String servidor; Connection conexion=null; try { Class.forName("org.postgresql.Driver"); servidor = "jdbc:postgresql://localhost:5432/catalogo"; String usuarioDB="postgres"; String passwordDB="admin"; conexion= DriverManager.getConnection(servidor,usuarioDB,passwordDB); } catch(ClassNotFoundException ex) { System.out.println("error en la conexion con la base de datos"); conexion=null; } catch(SQLException ex) { System.out.println("error2 en la conexion con la base de datos"); conexion=null; } catch(Exception ex) { System.out.println("error3 en la conexion con la base de datos"); conexion=null; } finally { return conexion;

  • Mster Internacional en Software Libre - Bases de Datos

    12

    } } } Componentemenu.java /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package utilidades; /** * * @author programador */ public class ComponenteMenu { private String alimento,calorias,proteinas,grasa; public ComponenteMenu() { } public String getGrasa() { return grasa; } public void setGrasa(String grasa) { this.grasa = grasa; } public String getAlimento() { return alimento; } public void setAlimento(String alimento) { this.alimento = alimento; } public String getCalorias() { return calorias; } public void setCalorias(String calorias) { this.calorias = calorias; } public String getProteinas() { return proteinas; } public void setProteinas(String proteinas) { this.proteinas = proteinas; } } Controldieta.java /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates

  • Mster Internacional en Software Libre - Bases de Datos

    13

    * and open the template in the editor. */ package utilidades; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.bean.ViewScoped; /** * * @author programador */ @ManagedBean @SessionScoped public class ControlDieta { /** * Creates a new instance of ControlDieta */ private String regimiento,regimiento2; private String batallon,batallon2; private String fecha; private String tpComida,tipComida2; private String momentoComida,momentoComida2; private String numSoldado,alimento; private int proteinas,calorias,idAlimento,cantidad,conceMenu; private float caloriaXsoldado,proteinasXsoldado,sumCalorias,sumProteinas; private List lcm = new ArrayList(); public ControlDieta() { calorias=0;proteinas=0; } public List getLcm() { return lcm; } public void setLcm(List lcm) { this.lcm = lcm; } public float getCaloriaXsoldado() { return caloriaXsoldado; } public void setCaloriaXsoldado(float caloriaXsoldado) { this.caloriaXsoldado = caloriaXsoldado; } public float getProteinasXsoldado() { return proteinasXsoldado; } public void setProteinasXsoldado(float proteinasXsoldado) { this.proteinasXsoldado = proteinasXsoldado; }

  • Mster Internacional en Software Libre - Bases de Datos

    14

    public float getSumCalorias() { return sumCalorias; } public void setSumCalorias(float sumCalorias) { this.sumCalorias = sumCalorias; } public float getSumProteinas() { return sumProteinas; } public void setSumProteinas(float sumProteinas) { this.sumProteinas = sumProteinas; } public String getAlimento() { return alimento; } public void setAlimento(String alimento) { this.alimento = alimento; } public int getCantidad() { return cantidad; } public void setCantidad(int cantidad) { this.cantidad = cantidad; } public int getProteinas() { return proteinas; } public void setProteinas(int proteinas) { this.proteinas = proteinas; } public int getCalorias() { return calorias; } public void setCalorias(int calorias) { this.calorias = calorias; } public int getIdAlimento() { return idAlimento; } public void setIdAlimento(int idAlimento) { this.idAlimento = idAlimento; } public String getMomentoComida2() { return momentoComida2; }

  • Mster Internacional en Software Libre - Bases de Datos

    15

    public void setMomentoComida2(String momentoComida2) { this.momentoComida2 = momentoComida2; } public String getTipComida2() { return tipComida2; } public void setTipComida2(String tipComida2) { this.tipComida2 = tipComida2; } public String getBatallon2() { return batallon2; } public void setBatallon2(String batallon2) { this.batallon2 = batallon2; } public String getRegimiento2() { return regimiento2; } public void setRegimiento2(String regimiento2) { this.regimiento2 = regimiento2; } public String getRegimiento() { return regimiento; } public void setRegimiento(String regimiento) { this.regimiento = regimiento; } public String getBatallon() { return batallon; } public void setBatallon(String batallon) { this.batallon = batallon; } public String getFecha() { return fecha; } public void setFecha(String fecha) { this.fecha = fecha; } public String getTpComida() { return tpComida; } public void setTpComida(String tpComida) { this.tpComida = tpComida; }

  • Mster Internacional en Software Libre - Bases de Datos

    16

    public String getMomentoComida() { return momentoComida; } public void setMomentoComida(String momentoComida) { this.momentoComida = momentoComida; } public String getNumSoldado() { return numSoldado; } public void setNumSoldado(String numSoldado) { this.numSoldado = numSoldado; } public String comprobarDieta() throws SQLException{ regimiento2="";batallon2="";tipComida2="";momentoComida2=""; int rs1=0,concecutivo=0; Connection c; String StrQuery; c = ConexionDB.GetConnection(); java.sql.Statement stmt = null; java.sql.ResultSet rs = null; if (c != null) { try { StrQuery = " select * from regimiento where id='" + regimiento.trim() + "'"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(StrQuery); if (rs.next()) { regimiento2=rs.getString(2); //c.close(); } } catch (SQLException ex) { Logger.getLogger(ControlDieta.class.getName()).log(Level.SEVERE, null, ex); } try { StrQuery = "SELECT * FROM batallon where id_b='" + batallon.trim() + "'"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(StrQuery); if (rs.next()) { batallon2=rs.getString(4); //c.close(); } } catch (SQLException ex) { Logger.getLogger(ControlDieta.class.getName()).log(Level.SEVERE, null, ex); } try { StrQuery = "select * from alimento where id_a='" + tpComida.trim() + "'"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(StrQuery); if (rs.next()) { tipComida2=rs.getString(5); //c.close(); } } catch (SQLException ex) { Logger.getLogger(ControlDieta.class.getName()).log(Level.SEVERE, null, ex); }

  • Mster Internacional en Software Libre - Bases de Datos

    17

    try { StrQuery = "select * from comida where idcomida='" + momentoComida.trim() + "'"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(StrQuery); if (rs.next()) { momentoComida2=rs.getString(3); //c.close(); } } catch (SQLException ex) { Logger.getLogger(ControlDieta.class.getName()).log(Level.SEVERE, null, ex); } c.close();rs.close();stmt.close(); } if(regimiento2.isEmpty() || batallon2.isEmpty() || tipComida2.isEmpty() || momentoComida2.isEmpty()){ if(regimiento2.isEmpty()){ regimiento2="No se Encontro Regimiento"; } if(batallon2.isEmpty()){ batallon2="No se Encontro Batallon"; } if(tipComida2.isEmpty()){ tipComida2="No se Encontro Tipo Comida"; } if(momentoComida2.isEmpty()){ momentoComida2="No se Encontro Momento de la Comida"; } return "buscarDatos_1.xhtml"; }else{ c = ConexionDB.GetConnection();int conce=1; if (c != null) { StrQuery = "select max(idmenu) FROM menu"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(StrQuery); if(rs.next()){ concecutivo=Integer.parseInt(rs.getString(1)); conce=concecutivo+1; conceMenu=conce; } StrQuery = "insert into menu(idMenu,idTipoComida,idMomentoComida,fecha) values('"+conce+"','"+tpComida+"','"+momentoComida+"','"+fecha+"')"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs1 = stmt.executeUpdate(StrQuery); if(rs1>0){ System.out.println("inserto"); c.close();stmt.close(); }else{ System.out.println("no inserto"); } } return "buscarDatos.xhtml"; } } public String buscaPagcomponente(){

  • Mster Internacional en Software Libre - Bases de Datos

    18

    return "componente.xhtml"; } public String sumarAlimentos(){ int conce = 0,concecutivo; Connection c; String StrQuery; c = ConexionDB.GetConnection(); java.sql.Statement stmt = null; java.sql.ResultSet rs = null; if (c != null) { try { StrQuery = "SELECT alimento,calorias, proteinas FROM alimento where id_a='" + idAlimento + "'"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(StrQuery); if (rs.next()) { alimento=rs.getString(1); calorias=Integer.parseInt(rs.getString(2)); proteinas=Integer.parseInt(rs.getString(3)); if(idAlimento!=0){ //aqui s insertan los componentes del menu StrQuery = "select max(idcommenu) FROM componenteMenu"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(StrQuery); if(rs.next()){ if(rs.getString(1)!=null){ concecutivo=Integer.parseInt(rs.getString(1)); conce=concecutivo+1; }else{ conce=1; } } StrQuery = "insert into componenteMenu(idcommenu,idmenu,idalimento) values('"+conce+"','"+conceMenu+"','"+idAlimento+"')"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); int rs5=stmt.executeUpdate(StrQuery); if(rs5>0){ System.out.println("inserto????? componenteMenu"); }else{ System.out.println("No *****inserto componenteMenu"); } sumCalorias=sumCalorias+calorias*cantidad; sumProteinas=sumProteinas+proteinas*cantidad; } //c.close(); } c.close();stmt.close();rs.close(); } catch (SQLException ex) { Logger.getLogger(ControlDieta.class.getName()).log(Level.SEVERE, null, ex); } } if(idAlimento==0){ caloriaXsoldado=sumCalorias/Integer.parseInt(numSoldado); proteinasXsoldado=sumProteinas/Integer.parseInt(numSoldado); return "total.xhtml"; }else{ return "introducirMasComponente.xhtml"; } }

  • Mster Internacional en Software Libre - Bases de Datos

    19

    public String compMenu(){ int rs1,conce=1,idMenu = 0;List lis = new ArrayList(); Connection c; String StrQuery; c = ConexionDB.GetConnection(); java.sql.Statement stmt = null; java.sql.ResultSet rs = null; if (c != null) { try { //aqui se debe insertar en el menu StrQuery = "SELECT idmenu\n" + " FROM menu as m order by idmenu asc"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(StrQuery); System.out.println("tamao"); while(rs.next()){ idMenu=Integer.parseInt(rs.getString(1)); System.out.println("dele--"+rs.getString(1)); } System.out.println("!!!!!!!"+idMenu); StrQuery = "select distinct idAlimento from componenteMenu where idmenu="+idMenu+""; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(StrQuery); while(rs.next()){ System.out.println("mico"); // lis.add(rs.getString(1)); StrQuery = "SELECT alimento,calorias, proteinas, grasas FROM alimento where id_a='" + rs.getString(1) + "'"; stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(StrQuery); if(rs.next()){ ComponenteMenu d = new ComponenteMenu(); d.setAlimento(rs.getString(1)); d.setCalorias(rs.getString(2)); d.setProteinas(rs.getString(3)); d.setGrasa(rs.getString(4)); lcm.add(d); } } // for(String x:lis){ //// ComponenteMenu d = new ComponenteMenu(); //// d.set // System.out.println("xxxxxx---"+x); // StrQuery = "SELECT alimento,calorias, proteinas, grasas FROM alimento where id_a='" + x + "'"; // stmt = c.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); // rs = stmt.executeQuery(StrQuery); // if(rs.next()){ // ComponenteMenu d = new ComponenteMenu(); // d.setAlimento(rs.getString(1)); // d.setCalorias(rs.getString(2)); // d.setProteinas(rs.getString(3)); // d.setGrasa(rs.getString(4)); // lcm.add(d); // } // // } c.close();rs.close();stmt.close();

  • Mster Internacional en Software Libre - Bases de Datos

    20

    } catch (SQLException ex) { Logger.getLogger(ControlDieta.class.getName()).log(Level.SEVERE, null, ex); } } return "reporte.xhtml"; } public String borrar(){ lcm.clear(); return "index.xhtml"; } }

  • Mster Internacional en Software Libre - Bases de Datos

    21

    Formato de entrega

    Se debern entregar tres ficheros:

    Documento ODT, DOC, RTF o SXW del enunciado con las respuestas de los ejercicios y el cdigo sql/java/php insertado en el mismo.

    El fichero PDF resultante de convertir el fichero anterior (ODT, DOC, ...) a dicho formato (servir para evitar posibles problemas con la insercin de imgenes y similares).

    Fichero ZIP o RAR con los programa PHP y java. Los nombres de los ficheros debern seguir el siguiente formato: BD_PR_Apellido1_Nombre.extensin Asegurad de incluir vuestro nombre en el lugar previsto de la primera pgina de la PR. Los ficheros de entregarn directamente al correo del consultor: [email protected]

    La fecha de entrega mxima son las 23h 59 minutos del 25/06/2015


Recommended