Avatar billede lasserasch Juniormester
12. august 2005 - 20:49 Der er 1 kommentar og
1 løsning

Opdatere en SQL database med mange data i formen.

Jeg har brug for hjælp.


Jeg forsøger at lave et administrationsmodul til en online vagtplan.

Jeg kan sagtens hente data ud fra min MS SQL database, men jeg ved ikke hvordan jeg kan opdatere alle data igen på en gang.

Jeg ønsker at man kan redigere i de data man har lyst til, og så trykker på en submitknap for at gemme hele molevitten på en gang.

Men hvordan pokker gør man det?

Jeg henter data ud fra min database ved brug af en løkke. Jeg spørger altså efter alle data som er registreret omkring uge 40 og udskriver dem til forskellige kolloner i en tabel.

Men hvordan får man alle data fra alle kollonerne opdateret i databasen på en gang?


Håber en kan hjælpe !

Resultatet af min kode kan ses her :
Se http://bowlnfun.flexynet.dk/admin/vagtplan/rediger-test.asp


--------------------
<!--#include file = "includes/sql_connect.asp" -->






  <% Set rs = Server.CreateObject("ADODB.Recordset")
  uge = "40"
  rs.Open "SELECT * FROM bafkvagtplan WHERE week = '"&uge&"' ",strsqlconnect

   



        if rs.eof then %>
    <table width="80%" height="100%" border="1" class="XPBlueText">
    <tr><td>

    <% response.write "Ingen data fundet" %>
        </td></tr></table>
        <% rs.close
          response.end %>
     
       


        <% else %>

    <form action="savevagtplan.asp" method="POST" name="SAVE">
    <input type="hidden" name="week" value="<%=uge%>" >
    <center><input type="submit" name="gem" value="OPDATER VAGTPLANEN"></center>
    <br>
       
        <table width="80%" height="100%" border="1" class="XPBlueText">
        <tr><td>Medarbejdernavn</td><td>Mandag</td><td>Tirsdag</td></tr>
   
    <% do %>
    <% idnumber = rs("id") %>
    <% navn    = rs("name") %>
    <% fra    = rs("starttime") %>
    <% til    = rs("endtime") %>
    <% tupe    = rs("type") %>

    <tr>
   
        <td valign="top" width="10%"><%=navn%> <br>
                                      Fra Kl.<br>
                                      Til Kl.<br>
                                      Type 
        </td>

    <td valign="top" width="10%">

        <% if rs("weekday") <> "Mandag" then %>
        <input type="text" name="fra" value="">
        <input type="text" name="til" value="">
        <input type="hidden" name="navn" value="&nbsp;" >


        <select name="type" class="XPBlueTextblack">
        <option selected></option>
        <option>Service</option>
        <option>Ansvarlig</option>
        </select>
       
        <% else %>

        <input type="hidden" name="<%=idnumber%>" value="<%=idnumber%>">
        <input type="text" name="fra" value="<%=fra%>">
        <input type="text" name="til" value="<%=til%>">
        <input type="hidden" name="navn" value="<%=navn%>" >

       
            <% if rs("type") = "Lukkeansvarlig" then %>

            <select name="type" class="XPBlueTextblack">
            <option selected></option>
            <option>Service</option>
            <option selected>Ansvarlig</option>
            </select>

            <% else %>
       
            <select name="type" class="XPBlueTextblack">
            <option selected></option>
            <option selected>Service</option>
            <option>Ansvarlig</option>
            </select>

            <% end if %>



        <% end if %>

    </td>



      <td valign="top" width="10%">

        <% if rs("weekday") <> "Tirsdag" then %>
        <input type="text" name="fra" value="">
        <input type="text" name="til" value="">
        <input type="hidden" name="navn" value="&nbsp;" >


        <select name="type" class="XPBlueTextblack">
        <option selected></option>
        <option>Service</option>
        <option>Ansvarlig</option>
        </select>
       
        <% else %>

        <input type="hidden" name="<%=idnumber%>" value="<%=idnumber%>">
        <input type="text" name="fra" value="<%=fra%>">
        <input type="text" name="til" value="<%=til%>">
        <input type="hidden" name="navn" value="<%=navn%>" >

       
            <% if rs("type") = "Lukkeansvarlig" then %>

            <select name="type" class="XPBlueTextblack">
            <option selected></option>
            <option>Service</option>
            <option selected>Ansvarlig</option>
            </select>

            <% else %>
       
            <select name="type" class="XPBlueTextblack">
            <option selected></option>
            <option selected>Service</option>
            <option>Ansvarlig</option>
            </select>

            <% end if %>


        <% end if %>
       

    </td>
        </tr>








<%  rs.MoveNext
    loop While Not rs.EOF %>
<%  rs.close %>
<% end if %>


</table>
</form>


-------------------------
Avatar billede ldanielsen Nybegynder
16. august 2005 - 13:17 #1
Ok, det lader ikke til at der er andre der har mod på det så ...

Du har altså flere rækker der skal opdateres. Derfor skal du altså vide hvilken række et felt hører til, og der skal du gøre udfra primær nøglen, som jeg går udfra er idnumber. Jeg plejer at gøre det ved at navngive feltrne med et postfix der fortæller hvilken række det er.

Et simpelt eksempel:

<form method="post" action="gemmefil.asp">
<%
rs.Open "SELECT idnumber, name FROM bafkvagtplan"

do
  Response.Write("<input name=""name_" & rs("idnumber") & """ value=""" & rs("name") & """><br>")
  Response.Write("<input name=""idnumber"" value=""" & rs("idnumber") & """>")
  rs.MoveNext
loop While Not rs.EOF
%>
<input type="submit">
</form>

nu hedder felterne altså fx. "name_17", "name_52", "name_356" osv. Desuden er der et antal felter der hedder "idnumber"


Når du gemmer gør du det sådan:

'lav array over brugte idnumber. de kommer ud kommasepareret, da felterne har samme name:

dim arrIdnumbers
arrIdnumbers = Split(Request.Form("idnumber"))

'loop arrayet igennem og gem felterne:
dim i
for i = 0 to Ubound(arrIdnumbers)
  con.execute("UPDATE bafkvagtplan SET name = '" & Request.Form("name_" & arrIdnumbers(i)) & "' WHERE idnumber = " & arrIdnumbers(i))
next

'Resultatet vil være fx.: UPDATE bafkvagtplan SET name = 'dette er skrevet' WHERE idnumber = 17,
'fordi Request.Form("name_" & arrIdnumbers(i)) vil være Request.Form("name_17")
Avatar billede lasserasch Juniormester
21. november 2005 - 02:36 #2
svar
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
Computerworld tilbyder specialiserede kurser i database-management

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