Avatar billede jmc Nybegynder
30. maj 2003 - 08:50 Der er 15 kommentarer og
1 løsning

Update af flere records i Dreamweaver MX

Jeg skal update flere records og arbejder med en kode i dreamweaver MX.
Hvordan løber jeg hele tabellen igennem og opdatere ALLE 'hovedmenu' der hvor:
forening_id = session("forening_id") AND hoved_menu = request("hm")?

Her er mit script:

<%
' *** Update Record: set variables

If (CStr(Request("MM_update")) = "form1" And CStr(Request("MM_recordId")) <> "") Then

  MM_editConnection = MM_abc_STRING
  MM_editTable = "sider"
  MM_editColumn = "side_id"
  MM_recordId = "" + Request.Form("MM_recordId") + ""
  MM_editRedirectUrl = "dropmenu_list.asp"
  MM_fieldsStr  = "side_menu|value|side_menu_sort|value|forenings_id|value"
  MM_columnsStr = "side_menu|',none,''|side_menu_sort|none,none,NULL|forenings_id|none,none,NULL"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>
<%
' *** Update Record: construct a sql update statement and execute it

If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then

  ' create the sql update statement
  MM_editQuery = "update " & MM_editTable & " set "
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_editQuery = MM_editQuery & ","
    End If
    MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_formVal
  Next
  MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId

  If (Not MM_abortEdit) Then
    ' execute the update
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
Avatar billede medions Nybegynder
30. maj 2003 - 08:52 #1
Din SQL sætning skal se således ud:

strSQL = "UPDATE tabelnavn SET kolonne1 = værdi, kolonne2 = værdi, kolonne3 = værdi WHERE id = 1"

//>Rune
Avatar billede eagleeye Praktikant
30. maj 2003 - 08:59 #2
opdatere ALLE  'hovedmenu' der hvor:
forening_id = session("forening_id") AND hoved_menu = request("hm")?


Du kan lave en SQL som gør det.

Hvad skal de opdateres med ???

eks

SQL = "UPDATE tabel SET kolonne=kolonne+1 WHERE forening_id = " & session("forening_id") & " AND hoved_menu = '" & request("hm") & "'"
Avatar billede eagleeye Praktikant
30. maj 2003 - 09:01 #3
Er det det samme alle recordset skal opdateres med?
For så der inden grund til at loope gennem det, så kan du lave en SQL som vist som opdater alle records hvor forening_id = session("forening_id") AND hoved_menu = request("hm")
Avatar billede jmc Nybegynder
30. maj 2003 - 10:08 #4
eagleeye: du har ret, det er det samme som alle skal kolonner i tabellen skal opdateres med. Men det er kun kolonne i recordsættet som skal ændres til det samme hele vejen igennem. Der står f.eks yadayada alle steder og det skal ændre til yady. Comprendo?
Avatar billede eagleeye Praktikant
30. maj 2003 - 10:12 #5
Ja det tror jeg hvis det eksvis er  hoved_menu =yadayada og skal laves om til yady :


SQL = "UPDATE tabel SET hoved_menu = '" & Request("ny_teskt") & "' WHERE forening_id = " & session("forening_id") & " AND hoved_menu = '" & request("hm") & "'"


Man retter du i de kolonner man skriver efter SET
Avatar billede eagleeye Praktikant
30. maj 2003 - 10:12 #6
Man retter kun i de kolonner man skriver efter SET
Avatar billede jmc Nybegynder
30. maj 2003 - 14:41 #7
eagleeye
De skal alle opdateres med det som er i den som jeg mener hedder MM_formVal ?
Men det er: (formfeltet ved navn hoved_menu)
Avatar billede jmc Nybegynder
30. maj 2003 - 15:49 #8
I min kode skriver den:
  MM_editQuery = "update " & MM_editTable & " set "
Skal jeg ændre dette?

Skal jeg afsætte nogle flere Points? Jeg gør det gerne...
Avatar billede jmc Nybegynder
30. maj 2003 - 21:46 #9
Jeg giver op...
Avatar billede eagleeye Praktikant
31. maj 2003 - 01:21 #10
Du skal ikke give op ;)

Der er en masse kode som bygger din SQL. Men jeg kender faktisk ikke dreamweaver og hvordan man skriver det i den. Men det skal blive til en SQL som den viste.

Hvad retter du i formen?  det kan måske hjælpe os til at komme vidre.
Avatar billede jmc Nybegynder
02. juni 2003 - 01:22 #11
en nat mere og stadigt intet held... Det er ikke det nemmeste at rette i Dreamweavers kode... Jeg skal nok skrive det manuelt fra bunden af...
Avatar billede jmc Nybegynder
16. juni 2003 - 01:30 #12
Jeg smider hele mit asp dokument her igen. Jeg kan simpelthen ikke få det ti lat virke i Dreamweaver MX.

<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Update Record: set variables

If (CStr(Request("MM_update")) = "form1" And CStr(Request("MM_recordId")) <> "") Then

  MM_editConnection = MM_a_STRING
  MM_editTable = "sider"
  MM_editColumn = "side_id"
  MM_recordId = "" + Request.Form("MM_recordId") + ""
  MM_editRedirectUrl = "dropmenu_list.asp"
  MM_fieldsStr  = "side_menu|value|side_menu_sort|value|forenings_id|value"
  MM_columnsStr = "side_menu|',none,''|side_menu_sort|none,none,NULL|forenings_id|none,none,NULL"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>
<%
' *** Update Record: construct a sql update statement and execute it

If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then

  ' create the sql update statement
  MM_editQuery = "update " & MM_editTable & " set "
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_editQuery = MM_editQuery & ","
    End If
    MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_formVal
  Next
  MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId

  If (Not MM_abortEdit) Then
    ' execute the update
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
<%
Dim rs_dropmenu__MMColParam
rs_dropmenu__MMColParam = "1"
If (Request.QueryString("sid") <> "") Then
  rs_dropmenu__MMColParam = Request.QueryString("sid")
End If
%>
<%
Dim rs_dropmenu
Dim rs_dropmenu_numRows

Set rs_dropmenu = Server.CreateObject("ADODB.Recordset")
rs_dropmenu.ActiveConnection = MM_aarhusejendoms_STRING
rs_dropmenu.Source = "SELECT * FROM sider WHERE side_id = " + Replace(rs_dropmenu__MMColParam, "'", "''") + ""
rs_dropmenu.CursorType = 0
rs_dropmenu.CursorLocation = 2
rs_dropmenu.LockType = 1
rs_dropmenu.Open()

rs_dropmenu_numRows = 0
%>

<%
Dim rs_foreningen__MMColParam
rs_foreningen__MMColParam = "NULL"
If (Session("forenings_id")  <> "") Then
  rs_foreningen__MMColParam = Session("forenings_id")
End If
%>
<%
Dim rs_foreningen
Dim rs_foreningen_numRows

Set rs_foreningen = Server.CreateObject("ADODB.Recordset")
rs_foreningen.ActiveConnection = MM_aarhusejendoms_STRING
rs_foreningen.Source = "SELECT *  FROM foreninger  WHERE forenings_id = " + Replace(rs_foreningen__MMColParam, "'", "''") + ""
rs_foreningen.CursorType = 0
rs_foreningen.CursorLocation = 2
rs_foreningen.LockType = 1
rs_foreningen.Open()

rs_foreningen_numRows = 0
%>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="POST" action="<%=MM_editAction%>" name="form1">
  <table align="left">
    <tr valign="baseline">
      <td colspan="2" align="right" nowrap>Dropdown menuer for: <%=(rs_foreningen.Fields.Item("forening_navn").Value)%></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Drop menu:</td>
      <td> <input name="side_menu" type="text" id="side_menu" value="<%=(rs_dropmenu.Fields.Item("side_menu").Value)%>" size="32">
      </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Sortering:</td>
      <td> <input name="side_menu_sort" type="text" id="side_menu_sort" value="<%=(rs_dropmenu.Fields.Item("side_menu_sort").Value)%>" size="32">
      </td>
    </tr>
    <tr valign="baseline">
      <td height="26" align="right" nowrap>&nbsp;</td>
      <td> <div align="right">
          <input type="submit" value="OPDATER">
        </div></td>
    </tr>
  </table>
  <input type="hidden" name="MM_update" value="form1">
  <input type="hidden" name="MM_recordId" value="<%= rs_dropmenu.Fields.Item("side_id").Value %>">
  <input name="forenings_id" type="hidden" id="forenings_id" value="<%=(rs_dropmenu.Fields.Item("forenings_id").Value)%>">
</form>
<p>&nbsp;</p>
</body>
</html>
<%
rs_dropmenu.Close()
Set rs_dropmenu = Nothing
%>
<%
rs_foreningen.Close()
Set rs_foreningen = Nothing
%>
Avatar billede jmc Nybegynder
03. oktober 2003 - 09:36 #13
jeg fik en anden til at lave det
Avatar billede jmc Nybegynder
12. december 2003 - 22:27 #14
hvem skal have points?
Avatar billede eagleeye Praktikant
20. december 2003 - 13:18 #15
så bare tag dem selv.
Avatar billede jmc Nybegynder
20. december 2003 - 14:57 #16
en lille julegave, takker eagleeye
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