Avatar billede snowflake7 Nybegynder
08. august 2005 - 16:57 Der er 32 kommentarer og
1 løsning

Gennemsnit af point

Jeg er i gang med at lave et program til at registrere point for en skytteforening.
Nu er det jeg gerne lave et stykke kode til at vise et gennemsnit af pointene.

<%@ page contentType="text/html; charset=windows-1251" %>
<%@ include file="resultat.jsp" %>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da">
  <head>
    <title>sqlSelect</title>
  </head>
  <body>
    <%
   
      Statement stat = myConn.createStatement();
      ResultSet r = stat.executeQuery( "SELECT * FROM resultat" );

      out.println("<table border=\"1\" spaceing=\"1\">");
      out.println("<th>Navn</th><th>Klasse</th><th>Point</th>");
     
      while(r.next())
      {
        out.println("<tr>"                          +
                      "<td>" + r.getString("name")  + "</td>" +
                      "<td>" + r.getString("class") + "</td>" +
                      "<td>" + r.getInt("point")    + "</td>" +
                    "</tr>");
      }
      out.println("</table>");

    %>
  </body>
</html>


Jeg har foreløbig lavet ovenstående.

Jeg vil også gerne have input og output på samme side, så man kan se resultatet med det samme??
Avatar billede arne_v Ekspert
08. august 2005 - 17:06 #1
Hvis du har en side som:
  - har både show table og add record form
  - ad record form submitter til siden selv
så er det nok det bedste du kan opnå
Avatar billede snowflake7 Nybegynder
08. august 2005 - 19:11 #2
okay men hvad med gennemsnit-problemet?
Avatar billede snowflake7 Nybegynder
08. august 2005 - 19:19 #3
øhm jeg tror jeg dropper det med at input og output på samme side.
Avatar billede arne_v Ekspert
08. august 2005 - 19:20 #4
enten tæller du op i din løkke

eller så laver du en seperat query med AVG funktionen
Avatar billede arne_v Ekspert
08. august 2005 - 19:22 #5
int n = 0;
int sum = 0;
while(r.next())
      {
        n++;
        sum += r.getInt("point");
        out.println("<tr>"                          +
                      "<td>" + r.getString("name")  + "</td>" +
                      "<td>" + r.getString("class") + "</td>" +
                      "<td>" + r.getInt("point")    + "</td>" +
                    "</tr>");
      }
      out.println("</table>");
      out.println("gennemsnit " + sum/n);
Avatar billede snowflake7 Nybegynder
08. august 2005 - 19:42 #6
<%@ page contentType="text/html; charset=windows-1251" %>
<%@ include file="resultat.jsp" %>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da">
  <head>
    <title>sqlSelect</title>
  </head>
  <body>
    <%
   
      Statement stat = myConn.createStatement();
      ResultSet r = stat.executeQuery( "SELECT * FROM resultat" );

      out.println("<table border=\"1\" spaceing=\"1\">");
      out.println("<th>Navn</th><th>Klasse</th><th>Point</th>");
     
    int n = 0;
    int sum = 0;
    while(r.next())
      {
        n++;
        sum += r.getInt("point");
        out.println("<tr>"                          +
                      "<td>" + r.getString("name")  + "</td>" +
                      "<td>" + r.getString("class") + "</td>" +
                      "<td>" + r.getInt("point")    + "</td>" +
                    "</tr>");
      }
      out.println("</table>");
      out.println("gennemsnit " + sum/n);

    %>
  </body>
</html>


java.lang.NullPointerException    at _displayresults_2e_jsp._jspService(displayresults.jsp:11)    [/displayresults.jsp]    at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3].http.OrionHttpJspPage.service(OrionHttpJspPage.java:60)    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:343)    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:543)    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:441)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:61)    at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:672)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:378)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:869)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3].server.http.HttpRequestHandler.run(HttpRequestHandler.java:288)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3].server.http.HttpRequestHandler.run(HttpRequestHandler.java:120)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:294)    at java.lang.Thread.run(Thread.java:534)
Avatar billede snowflake7 Nybegynder
08. august 2005 - 19:43 #7
<%@ page language="java" import="java.sql.*"%>
 
<%!
  // Declaration of variables and configuration of database connection
  final String dbDriver  = "com.mysql.jdbc.Driver";
  final String dbUser    = "";
  final String dbPassword = "";
  final String dbUrl      = "jdbc:mysql://localhost/hsf";
  Connection myConn = null;
   
   

   
    public void jspInit()
        {
          try
            { // Get driver for the database
              Class.forName( dbDriver ).newInstance();
            // Open connection to the database
              myConn = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
            } // Catch sentences print out information about the error that has occured
          catch (ClassNotFoundException e)
          {
            System.err.println("Class not found: " + e);
          }
          catch (InstantiationException e)
            {
              System.err.println("InstantiationException: " + e);
            }
          catch (IllegalAccessException e)
            {
              System.err.println("IllegalAccessException: " + e);
            }
              catch (SQLException E)
              {
                System.err.println("SQLException: " + E.getMessage());
                System.err.println("SQLState:    " + E.getSQLState());
                System.err.println("VendorError:  " + E.getErrorCode());
              }
   
}             
   
       
       
       
     

       
         
   
             
   
   
   
   
   

 
 
%>


Hvad hvis jeg gerne vil gemme det gennemsnit i en db?
Avatar billede arne_v Ekspert
08. august 2005 - 19:53 #8
lyder meget som om du ikke lavet connection så myConn er null
Avatar billede arne_v Ekspert
08. august 2005 - 19:54 #9
[når vi engang har fået det til at virke, så har jeg iøvrt en del forslag til bedre
struktuering af koden]
Avatar billede snowflake7 Nybegynder
08. august 2005 - 20:12 #10
05/08/08 20:11:20 SQLException: Access denied for user 'hsf'@'localhost' (using password: YES)

05/08/08 20:11:20 SQLState:    28000

05/08/08 20:11:20 VendorError:  1045


siger dette dig noget?
Avatar billede arne_v Ekspert
08. august 2005 - 20:14 #11
ja

brugernavn hsf har ikke adgang med det angive password (fra localhost)
Avatar billede snowflake7 Nybegynder
08. august 2005 - 20:17 #12
jeg kan godt indsætte i db men ikke selecte?
Avatar billede snowflake7 Nybegynder
08. august 2005 - 20:19 #13
hvordan retter jeg det, så jeg får adgang?
Avatar billede arne_v Ekspert
08. august 2005 - 20:19 #14
men vel ikke med helt samme kode !?
Avatar billede arne_v Ekspert
08. august 2005 - 20:20 #15
du granter den fornødne adgang

er det din egen MySQL server eller et web hotel ?
Avatar billede snowflake7 Nybegynder
08. august 2005 - 20:20 #16
øh nej..?
Avatar billede arne_v Ekspert
08. august 2005 - 20:21 #17
må keg se din INSERT kode ?
Avatar billede snowflake7 Nybegynder
08. august 2005 - 20:25 #18
Statement stat = myConn.createStatement();
            // Boolean values are true and false
   
       
              int sucessfulUpdate = stat.executeUpdate("INSERT INTO resultat (name, class, point) "  +
                        "VALUES (" + "\'" + name + "\'," +
                                    "\'" + klasse + "\',"
                                    + "\'" + point  + "\')" );
Avatar billede arne_v Ekspert
08. august 2005 - 20:27 #19
og hvordan får den lavet myConn ?
Avatar billede snowflake7 Nybegynder
08. august 2005 - 20:35 #20
min egen MySQL server indtil videre.
Avatar billede snowflake7 Nybegynder
08. august 2005 - 20:37 #21
myConn = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
Avatar billede snowflake7 Nybegynder
08. august 2005 - 20:40 #22
final String dbDriver  = "com.mysql.jdbc.Driver";
  final String dbUser    = "";
  final String dbPassword = "";
  final String dbUrl      = "jdbc:mysql://localhost/hsf";
  Connection myConn = null;
Avatar billede snowflake7 Nybegynder
08. august 2005 - 20:41 #23
vender tilbage senere.
ser lige en film i tv;-)
Avatar billede arne_v Ekspert
08. august 2005 - 21:22 #24
den ligner godt nok den anden meget

og jeg kan slet ikke forstå at du connecter med brugernavn "" mens
fejlen teksten siger brugernavn "hsf"
Avatar billede snowflake7 Nybegynder
08. august 2005 - 22:22 #25
%@ page language="java" import="java.sql.*"%>
 
<%!
  // Declaration of variables and configuration of database connection
  final String dbDriver  = "com.mysql.jdbc.Driver";
  final String dbUser    = "hsf";
  final String dbPassword = "";
  final String dbUrl      = "jdbc:mysql://localhost/hsf";
  Connection myConn = null;
   
   
    public void jspInit()
        {
          try
            { // Get driver for the database
              Class.forName( dbDriver ).newInstance();
            // Open connection to the database
              myConn = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
            } // Catch sentences print out information about the error that has occured
          catch (ClassNotFoundException e)
          {
            System.err.println("Class not found: " + e);
          }
          catch (InstantiationException e)
            {
              System.err.println("InstantiationException: " + e);
            }
          catch (IllegalAccessException e)
            {
              System.err.println("IllegalAccessException: " + e);
            }
              catch (SQLException E)
              {
                System.err.println("SQLException: " + E.getMessage());
                System.err.println("SQLState:    " + E.getSQLState());
                System.err.println("VendorError:  " + E.getErrorCode());
              }
   
}             


men samme fejlbesked.
Avatar billede snowflake7 Nybegynder
08. august 2005 - 22:25 #26
Hvis man ændre User og Password her i resultat.jsp gælder det så fremover?
altså hvis den i stedet for:
  final String dbDriver  = "com.mysql.jdbc.Driver";
  final String dbUser    = "";
  final String dbPassword = "";
  final String dbUrl      = "jdbc:mysql://localhost/hsf";


Blev ændret til
final String dbDriver  = "com.mysql.jdbc.Driver";
  final String dbUser    = "hsf";
  final String dbPassword = "skytte";
  final String dbUrl      = "jdbc:mysql://localhost/hsf";
Avatar billede arne_v Ekspert
08. august 2005 - 22:43 #27
nej

det er kun for den fil de er i
Avatar billede arne_v Ekspert
08. august 2005 - 22:45 #28
kan du logge ind i databasen som bruger hsf ?

eller logger du ind som root ?

eller noget tredie ?
Avatar billede snowflake7 Nybegynder
09. august 2005 - 10:16 #29
Nej, det kan jeg ikke.
Jeg har ikke sat noget password på databasen.
hvis jeg bruger Mysql's dos prompt så kan jeg fint tilgå db??
Avatar billede snowflake7 Nybegynder
09. august 2005 - 10:41 #30
hvis jeg udkommaterer det stykke kode, med gennemsnit, som du lavede så virker den fint.
Kan der være en anden måde at udregne et gennemsnit på?

Kan man ikke udregne et gennemsnit for hvert medlem, putte det i db og hente det ud igen og vise det i en kolonne i samme tabel som det andet?
Avatar billede arne_v Ekspert
09. august 2005 - 19:27 #31
nu er jeg meget forvirret

siger du at connection virker uden optælling af sum og n, men fejler med dem ?
Avatar billede snowflake7 Nybegynder
10. august 2005 - 15:34 #32
ja, det gør den.
Avatar billede snowflake7 Nybegynder
22. september 2005 - 12:39 #33
lukker og slukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester