Avatar billede bigo Nybegynder
27. december 2000 - 23:14 Der er 14 kommentarer og
1 løsning

Fejl i løkke eller data der sendes..

Hej igen igen.. ;-)

Kode:

    sql = \"SELECT * FROM \" & tbl & \" Where (ID = \" & Request.QueryString(\"save\") &\")\"
    rs.Open sql,,3,3
    Number = Request.QueryString(\"save\")
    If Len(Number) > 0 Then Number = CInt(Number) Else Number = 0
    x=0
    For each head in rs.fields
        If x=Number then
            RS(head.name) = Request.Form (head.name)
        end if
        x=x+1
    next
    rs.update
    RS.Close

giver ved følgende data:

Knud Eriksen i den ene input box og
Jørgen Nerlø i den anden input box

resultatet:

Knud Eriksen, Jørgen Nerlø

Øv..
Avatar billede lp Nybegynder
27. december 2000 - 23:20 #1
og......?
Avatar billede bigo Nybegynder
27. december 2000 - 23:31 #2
Tja, det har du egentlig ret i...

Det jeg prøver er følgende kode:

    \'--------------- Save
    response.write \"<form method=\"\"Post\"\" action=\"\"hentogskrivvariabler.asp?tabell=\" & tabel & \"&save=\" & RS(\"ID\") & \"\"\">\"
    response.write \"<table border=\'0\' width=\'100%\' cellspacing=\'0\' cellpadding=\'0\'><tr>\"
      For each head IN rs.Fields
        response.write \"<td><b>\" & head.name & \"</b></td>\"
      next
    response.write\"</tr><tr>\"
    For i = 1 To rs.recordcount
        For each head IN rs.Fields
          response.write \"<td><input type=\"\"\"\" value=\"\"\" & RS(head.name) & \"\"\" name=\" & head.name &\"></td>\"
        next
        response.write \"<td><input type=\'submit\' value=\'GEM ÆNDRINGER\' onclick=\'document.location.href=\'hentogskrivvariabler.asp?tabell=\" & tabel & \"&save=\" & RS(\"ID\") & \"\'></td></tr>\"
      rs.MoveNext
    next
 

Dvs.. jeg henter data frem og viser dem. Så kan man f.eks. ændre efternavnet til Jensen fra Eriksen.

Den retter efternavnet - men - er der flere records sætter den de navne ind som er i samme felt. dvs. i stedet for  - i dette tilfælde - Knud Eriksen til Knud Jensen, så bliver det :

Knud Jensen, Jørgen Nerlø.

hvor det kun skulle være Knud Jensen
Avatar billede bigo Nybegynder
27. december 2000 - 23:33 #3
Avatar billede lp Nybegynder
27. december 2000 - 23:33 #4
aha, så er det fordi de har flere felter som hedder det samme, de bliver ikke split\'et før du opdaterer.....lad mig lige kigge lidt på det og vende tilbage, men er det ikke rigtigt det jeg sider?
Avatar billede lp Nybegynder
27. december 2000 - 23:35 #5
nahh, efter at have kigget på dit link kan jeg se at det ikke er tilfældet - jeg kigger på dit script og vender tilbage!
Avatar billede bigo Nybegynder
27. december 2000 - 23:41 #6
K.. Du kan få hele koden hvis du vil..
Avatar billede lp Nybegynder
28. december 2000 - 00:13 #7
hmmmmm, jeg synes de kode bærer præg af at du gør det hele lidt meget mere besværligt for dig selv, end egentlig nødvendigt.....hvorfor alt det JavaScript?
Avatar billede bigo Nybegynder
28. december 2000 - 00:17 #8
det skulle gerne være asp ;-)
Avatar billede lp Nybegynder
28. december 2000 - 00:19 #9
<input type=\'submit\' value=\'GEM ÆNDRINGER\' onclick=\'document.location.href=\'hentogskrivvariabler.asp?tabell=\" & tabel & \"&save=\" & RS(\"ID\") & \"\'> er en kombination af javascript og html som skal aktive noget asp....jeg forstår bare ikke hvorfor.......desuden kan jeg ikke se hvorfor du kører for løkker fremfor bare at opdatere alle felterne i basen....du opdaterer vil kun 1 post ad gangen og ikke flere..
Avatar billede bigo Nybegynder
28. december 2000 - 00:24 #10
Det er korrekt.. Jeg vil lave en \"universel\" side som kan hente data uanset hvormange felter der er i databasen og rette i dem også. Derfor bruger jeg for-løkker så jeg kan nå de forskellige felter. Ellers må jeg i selve koden jo være specifik på navnet på feltet som jeg jo ikke har.
Avatar billede lp Nybegynder
28. december 2000 - 00:26 #11
ok, prøv at poste hele koden.....og forklar lige én gang til hvad der går galt..
Avatar billede bigo Nybegynder
28. december 2000 - 00:32 #12
<html>
<body>
<%
    tabel=request (\"tabell\")
    Set conn = Server.CreateObject(\"ADODB.Connection\")
    Set RS = Server.CreateObject(\"ADODB.recordset\")
    Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"waitlist.mdb\")
%>
<h1><b>
<%
response.write (session(\"tabelnavn\"))
%>
</b></h1><br>
<%
If Request.QueryString(\"new\") <> \"\" Then
    strSQL=\"select * from \" & tabel & \" Where (ID like %\" & R_Count & \"%)\"
    RS.Open strSQL,conn,1,3
    RS.Addnew
    For each head IN rs.Fields
        RS(head.name) = Request.Form(head.name)
    next
    RS.Update
    RS.Close
else If Request.QueryString(\"del\") <> \"\" Then
    strSQL=\"select * from \" & tabel & \" Where (ID = \" & Request.QueryString(\"del\") &\")\"
    RS.Open strSQL,conn,1,3
  If RS.eof or RS.bof then
    Response.Write \"Not in database.\"
  Else
    RS.Delete
    RS.Update
    RS.Close
  end if

else if Request.QueryString(\"save\") <> \"\" Then
    tbl=request.querystring(\"tabell\")
    rec=Server.HTMLEncode(Request.Form(\"save\"))
    \'get first field name
    sql = \"SELECT * FROM \" & tbl
    rs.Open sql, conn
          fld=rs.fields(1).name
    rs.Close

    sql = \"SELECT * FROM \" & tbl & \" Where (ID = \" & Request.QueryString(\"save\") &\")\"
    rs.Open sql,,3,3
    Number = Request.QueryString(\"save\")
    If Len(Number) > 0 Then Number = CInt(Number) Else Number = 0
    x=0
    For each head in rs.fields
        If x=Number then
            RS(head.name) = Request.Form (head.name)
        end if
        x=x+1
    next
    rs.update
    RS.Close
end if
end if
end if

sql=\"select * from \" & tabel
RS.Open sql, conn, 3, 3
If request.form(\"search\") <> \"\" then
    search = request.form(\"search\")
    x=0
    For each head in rs.fields
        if InStr(RS(head.name), search) then
              sql = sql & \" WHERE ((head.name like %\" & search & \"%))\"
        else
            x=x+1
        end if
    next
end if
%>
<br>
<form method=post action=hentogskrivvariabler.asp?tabell=\"<%=tabel%>\" name=searchform>
Søg: <input type=text name=search><br>
<input type=submit name=submit value=\"Søg\">
</form>
<br>
<%
    \'--------------- Save
    response.write \"<form method=\"\"Post\"\" action=\"\"hentogskrivvariabler.asp?tabell=\" & tabel & \"&save=\" & RS(\"ID\") & \"\"\">\"
    response.write \"<table border=\'0\' width=\'100%\' cellspacing=\'0\' cellpadding=\'0\'><tr>\"
      For each head IN rs.Fields
        response.write \"<td><b>\" & head.name & \"</b></td>\"
      next
    response.write\"</tr><tr>\"
    For i = 1 To rs.recordcount
        For each head IN rs.Fields
          response.write \"<td><input type=\"\"\"\" value=\"\"\" & RS(head.name) & \"\"\" name=\" & head.name &\"></td>\"
        next
        response.write \"<td><input type=\'submit\' value=\'GEM ÆNDRINGER\' onclick=\'document.location.href=\'hentogskrivvariabler.asp?tabell=\" & tabel & \"&save=\" & RS(\"ID\") & \"\'></td></tr>\"
      rs.MoveNext
    next
   
    \'-------------- New
    response.write\"</table></form>\"
    response.write \"<form method=\"\"Post\"\" action=\"\"hentogskrivvariabler.asp?tabell=\" & tabel & \"&new\"\">\"
    response.write \"<td><input type=\'submit\' value=\'Ny\' onclick=\'document.location.href=\'hentogskrivvariabler.asp?tabell=\" & tabel & \"&new\"\'></td></tr>\"
    tabeldesign = tmp
    conn.Close
    Set conn = nothing
%>
</body>
Avatar billede bigo Nybegynder
28. december 2000 - 00:37 #13
Jeg har oprettet to records i min database.

de ser ud som følger:

id v_navn      r_navn      dato
1 Knud Eriksen Troels Ejnar 31-10-22
2 Jørgen Nerlø Dirk Svend  04-11-12


når jeg f.eks. vil rette knud eriksen til knud jensen retter den det. Men jeg får også Jørgen Nerlø med i købet. Dvs. den sætter begge v_navné ind i det felt som egentlig skulle rettes.
Avatar billede bigo Nybegynder
02. januar 2001 - 12:47 #14
hmm.. når jeg kigger efter så sendes ID 1 med uanset hvilken record jeg retter..
Avatar billede bigo Nybegynder
10. april 2001 - 09:30 #15
Jeg har givet op.. Har snakket med en masse mennesker (læs:nørder - heriblandt dem på experten ;_) ) og de siger at det ikke kan lade sig gøre at lave en side som er fuldt dynamisk ved databasen.. Så det var det... Øv..
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