Avatar billede monic Nybegynder
29. marts 2001 - 19:24 Der er 13 kommentarer og
1 løsning

Ændre brugeroplysninger

Jeg har forsøgt mig på en brugerside i jsp, hvor brugeren skal have mulighed for at rette i sine personlige oplysninger. Hvordan opnår jeg at oplysningerne bliver gemt i samme kolonne i tabellen, dvs. overskriver oplysningerne, fremfor at gemme oplysningerne som ny instans?
Jeg har en ide om at det er fordi at jeg skal have primærnøglen med, men er det nok?

Sådan ser min side ud:
<HTML>

<HEAD>
<TITLE>Ændre brugerdata</TITLE>

</HEAD>
<BODY>

<%@ page language=\"java\" import=\"java.sql.* \" %>
<%@ page import=\"java.util.*\" %>

<%
    String DSNname = \"projektdatabase\";
    String username = \"\";
    String password = \"\";
    Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
        java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password);
        java.sql.Statement statement = connection.createStatement();
       
       
%>



<%
String sql = \"Select * from Kunder where medlemsid = \'\" + request.getParameter(\"usernameField\") + \"\' and password = \'\" + request.getParameter(\"passwordField\") + \"\'\";
%>
<%
java.sql.ResultSet columns = statement.executeQuery(sql);
  while(columns.next()) {
  String firmanavn = columns.getString(\"firmanavn\");
  String kontaktperson = columns.getString(\"kontaktperson\");
  String kontaktpersonefternavn = columns.getString(\"kontaktpersonefternavn\");
  String adresse1 = columns.getString(\"adresse1\");
  String adresse2 = columns.getString(\"adresse2\");
  String by = columns.getString(\"by\");
  String postnummer = columns.getString(\"postnummer\");
  String telefondagtimer = columns.getString(\"telefondagtimer\");
  String mobiltelefon = columns.getString(\"mobiltelefon\");
  String email = columns.getString(\"email\");
  String medlemsid = columns.getString(\"medlemsid\");
  String passwordet = columns.getString(\"password\");
%>

<CENTER>
<FORM ACTION=\"Aendrebrugeroplysninger.jsp\" METHOD=POST>
<TABLE BORDER=0>


    <TR>
      <TD valign=\"top\">Firmanavn:</TD>
      <TD valign=\"top\">
            <INPUT TYPE=\"text\" NAME=\"firmanavn\" value=\"<%= firmanavn %>\" SIZE=43 MAXLENGTH=43>
        </TD>
    </TR>
   
    <TR> <TD>
    <BR><BR><B>Kontaktperson:</B> </TD>
    </TR>
   
    <TR>
      <TD valign=\"top\">Fornavn:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"kontaktpersons fornavn\" SIZE=43 MAXLENGTH=43 value=\"<%= kontaktperson %>\">
    </TD>   
    </TR>
   
    <TR>
      <TD valign=\"top\">Efternavn:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"kontaktpersons efternavn\" SIZE=43 MAXLENGTH=43 value=\"<%= kontaktpersonefternavn %>\">
    </TD>   
    </TR>
    <TR> <TD>
    <BR><BR><B>Faktura-adresse:</B> </TD>
    </TR>
    <TR>
      <TD valign=\"top\">Adresse 1:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"adresse1\" SIZE=43 MAXLENGTH=43 value=\"<%= adresse1 %>\">
    </TD>   
    </TR>
   
    <TR>
      <TD valign=\"top\">Adresse 2:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"adresse2\" SIZE=43 MAXLENGTH=43 value=\"<%= adresse2 %>\">
    </TD>   
    </TR>
   
    <TR>
      <TD valign=\"top\">By:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"by\" SIZE=43 MAXLENGTH=43 value=\"<%= by %>\">
    </TD>   
    </TR>
   
    <TR>
      <TD valign=\"top\">Postnummer:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"postnummer\" SIZE=43 MAXLENGTH=43 value=\"<%= postnummer %>\">
    </TD>   
    </TR>
   
    <TR> <TD>
    <BR><BR><B>Telefon:</B> </TD>
    </TR>
   
    <TR>
      <TD valign=\"top\">Telefon dagtimer:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"telefon\" SIZE=43 MAXLENGTH=43 value=\"<%= telefondagtimer %>\">
    </TD>   
    </TR>
   
    <TR>
      <TD valign=\"top\">Mobiltelefon:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"mobiltelefon\" SIZE=43 MAXLENGTH=43 value=\"<%= mobiltelefon %>\">
    </TD>   
    </TR>
   
    <TR> <TD>
    <BR><BR><B>Sideinfo:</B> </TD>
    </TR>
   
    <TR>
      <TD valign=\"top\">Email:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"email\" SIZE=43 MAXLENGTH=43 value=\"<%= email %>\">
    </TD>   
    </TR>
   
    <TR>
      <TD valign=\"top\">Medlems-ID:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"medlemsid\" SIZE=43 MAXLENGTH=43 value=\"<%= medlemsid %>\">
    </TD>   
    </TR>
   
    <TR>
      <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Password:</TD>
      <TD valign=\"top\">
          <INPUT TYPE=\"text\" NAME=\"password\" SIZE=43 MAXLENGTH=43 value=\"<%= passwordet %>\">
    </TD>   
    </TR>
</TABLE>
<BR><BR>
<INPUT TYPE=\"submit\" VALUE=\"Gem\"> 
</FORM>

<% } %>

<%
Enumeration parameters = request.getParameterNames();
       
        if (parameters.hasMoreElements()) {
         
          String firmanavnValue = request.getParameter(\"firmanavn\");
          String kontaktpersonsfornavnValue = request.getParameter(\"kontaktpersons fornavn\");
          String kontaktpersonsefternavnValue = request.getParameter(\"kontaktpersons efternavn\");
          String adresse1Value = request.getParameter(\"adresse1\");
          String adresse2Value = request.getParameter(\"adresse2\");
          String byValue = request.getParameter(\"by\");
          String postnummerValue = request.getParameter(\"postnummer\");
          String telefondagtimerValue = request.getParameter(\"telefon\");
          String mobiltelefonValue = request.getParameter(\"mobiltelefon\");
          String emailValue = request.getParameter(\"email\");
          String medlemsidValue = request.getParameter(\"medlemsid\");
          String passwordValue = request.getParameter(\"password\");
         
          statement.executeUpdate(
            \"INSERT INTO kunder (\\\"FIRMANAVN\\\", \\\"KONTAKTPERSON\\\", \\\"KONTAKTPERSONEFTERNAVN\\\", \\\"ADRESSE1\\\", \\\"ADRESSE2\\\", \\\"BY\\\", \\\"POSTNUMMER\\\", \\\"TELEFONDAGTIMER\\\", \\\"MOBILTELEFON\\\", \\\"EMAIL\\\", \\\"MEDLEMSID\\\", \\\"PASSWORD\\\") VALUES (\'\"+firmanavnValue+\"\',\'\"+kontaktpersonsfornavnValue+\"\', \'\"+kontaktpersonsefternavnValue+\"\', \'\"+adresse1Value+\"\', \'\"+adresse2Value+\"\', \'\"+byValue+\"\', \'\"+postnummerValue+\"\', \'\"+telefondagtimerValue+\"\', \'\"+mobiltelefonValue+\"\', \'\"+emailValue+\"\', \'\"+medlemsidValue+\"\', \'\"+passwordValue+\"\')\");
        }
             
       
       


%>           

</BODY>
</HTML>
Avatar billede nute Nybegynder
29. marts 2001 - 19:44 #1
UHA.....du bør benytte JSP sine muligheter mye bedre...hvorfor legger du ikke din logikk ned i en bean ?!
Avatar billede nute Nybegynder
29. marts 2001 - 19:52 #2
hvis du skal overskrive allerede eksisterende opplysninger i databasen, skal du benytte SQL kommandoen:

UPDATE [tabel] SET [kolonne] = [verdi], [kolonne] = [verdi] WHERE [condition]

/nute
Avatar billede monic Nybegynder
29. marts 2001 - 19:52 #3
Fordi jeg er en begynder indenfor JSP og arbejder ud fra en bog jeg har lånt.

Kan du hjælpe mig med at løse mit problem?
Avatar billede monic Nybegynder
29. marts 2001 - 19:56 #4
Nute:

Okay, hvad skal der ind i [kolonne] - er det primærnøglen?
Avatar billede nute Nybegynder
29. marts 2001 - 19:57 #5
det du bør gjøre er å legge en eller annen form for id i en hidden field. deretter kan du spørre om denne verdien er større enn fx 1, og hvis den er det, så skal du oppdatere istedenfor å legge til ny oppføring i din database... u c my point ?

/nute
Avatar billede nute Nybegynder
29. marts 2001 - 19:58 #6
hvis du bruker ID (nummer med automatisk teller), så trenger du ikke angi dette....

/nute
Avatar billede monic Nybegynder
29. marts 2001 - 20:00 #7
Nute: ja lidt- men kan du ikke komme med lidt konkret kode?
Avatar billede monic Nybegynder
29. marts 2001 - 20:02 #8
Nute: Din sidste kommentar forstod jeg slet ikke
Avatar billede nute Nybegynder
29. marts 2001 - 20:13 #9
uha.....for 30 points...krever nok litt mer ;)

*prøver*

<HEAD>
<TITLE>Ændre brugerdata</TITLE>

</HEAD>
<BODY>

<%@ page language=\"java\" import=\"java.sql.* \" %>
<%@ page import=\"java.util.*\" %>

<%
String DSNname = \"projektdatabase\";
String username = \"\";
String password = \"\";
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");

Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password);
Statement statement = connection.createStatement();
ResultSet columns  = null;
String sql = null;
String firmanavnValue = request.getParameter(\"firmanavn\");
String kontaktpersonsfornavnValue = request.getParameter(\"kontaktpersonsfornavn\");
String kontaktpersonsefternavnValue = request.getParameter(\"kontaktpersonsefternavn\");
String adresse1Value = request.getParameter(\"adresse1\");
String adresse2Value = request.getParameter(\"adresse2\");
String byValue = request.getParameter(\"by\");
String postnummerValue = request.getParameter(\"postnummer\");
String telefondagtimerValue = request.getParameter(\"telefon\");
String mobiltelefonValue = request.getParameter(\"mobiltelefon\");
String emailValue = request.getParameter(\"email\");
String medlemsidValue = request.getParameter(\"medlemsid\");
String passwordValue = request.getParameter(\"password\");
         
         

if( medlemsid != null && medlemsid != \"-1\" ){
    sql = \"Select * from Kunder where medlemsid = \'\" + request.getParameter(\"usernameField\") + \"\' and password = \'\" + request.getParameter(\"passwordField\") + \"\'\";
   
    columns = statement.executeQuery(sql);
    if(columns.next()) {
      firmanavn = columns.getString(\"firmanavn\");
      kontaktperson = columns.getString(\"kontaktperson\");
      kontaktpersonefternavn = columns.getString(\"kontaktpersonefternavn\");
      adresse1 = columns.getString(\"adresse1\");
      adresse2 = columns.getString(\"adresse2\");
      by = columns.getString(\"by\");
      postnummer = columns.getString(\"postnummer\");
      telefondagtimer = columns.getString(\"telefondagtimer\");
      mobiltelefon = columns.getString(\"mobiltelefon\");
      email = columns.getString(\"email\");
      medlemsid = columns.getString(\"medlemsid\");
      passwordet = columns.getString(\"password\");
    }
} else {
    if( medlemsid.equals(\"-1\") ){
      sql = \"INSERT INTO kunder (FIRMANAVN, KONTAKTPERSON, KONTAKTPERSONEFTERNAVN, ADRESSE1, ...) VALUES (\'\"+firmanavnValue+\"\',\'\"+kontaktpersonsfornavnValue+\"\', \'\"+kontaktpersonsefternavnValue+\"\', \'\"+adresse1Value+\"\', \'\"+adresse2Value+\"\', \'\"+byValue+\"\', \'\"+postnummerValue+\"\', \'\"+telefondagtimerValue+\"\', \'\"+mobiltelefonValue+\"\', \'\"+emailValue+\"\', \'\"+medlemsidValue+\"\', \'\"+passwordValue+\"\')\";
    } else {
      sql = \"UPDATE kunder SET FIRMANAVN = \'\" + firmanavn + \"\', KONTAKTPERSON = \'\" + kontaktpersonsfornavnValue + \"\' WHERE medlemsid = \" + medlemsid );
    }
    // Execute din SQL...
}
%>
<!--
Skriv ut ditt Formular her
-->
<input type=\"hidden\" name=\"medlemsid\" value=\"<%= ( medlemsid == null ? \"-1\" : medlemsid ) %>\">
 

/nute

Avatar billede monic Nybegynder
29. marts 2001 - 20:17 #10
Du skal gerne få nogle flere point, hvis det virker. Jeg prøver det lige.
Avatar billede nute Nybegynder
29. marts 2001 - 20:17 #11
jeg skal hjem....men du må gjerne fortsette....(dette krever derimot litt mer points enn det du har utlovet....)

/nute
Avatar billede nute Nybegynder
30. marts 2001 - 11:14 #12
får du det til å virke ?
Avatar billede monic Nybegynder
30. marts 2001 - 11:18 #13
Ja, tak for hjælpen!
Avatar billede nute Nybegynder
30. marts 2001 - 15:25 #14
anytime
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