Tja! skumt, jag vet inte vad du lyckats göra. Koden för att uppdatera databasen ser ut såhär: Återigen: Är koden för att uppdatera högst upp på sidan? SQL-koden för att uppdatera databasen ligger efter lankar.asp vilket också är problemet. Ja, jah förstår att prolemet ligger där, men jag får ett större problem när jag lägger uppdaterakoden före lankar.asp. Då får jag felmeddelandet: Syntaxfel (operator saknas) i frågeuttrycket 'LankID ='. Det var förresten jag min idiot som inte hade flyttad med LankID = Request.QueryString("LankID") när jag flyttade upp uppdaterakoden.Refresh efter uppdatering av databas
Jag håller på med en sajt, där administratören ska logga in till en sorts kontrollpanel. Därifrån skall han tex kunna lägga till och ta bort huvudlänkar som finns lagrade i en databas. Jag får allt att fungera jättefint förutom att man måste F5:a för att SE ändringen bland länkarna.
Koden för länkadministrationen ser ut såhär:
<%
If Request.QueryString("admUppd") = "UppdateraLank" Then
Dim uppdLankarKoppling, uppdLankarRS, uppdLankarSQL
Set uppdLankarKoppling = Server.CreateObject("ADODB.Connection")
Set uppdLankarRS = Server.CreateObject("ADODB.RecordSet")
uppdLankarKoppling.Open "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("data/innehall.mdb")
uppdLankarSQL = "UPDATE tblLankar SET LankVisa = '" & LankVisa & "' WHERE LankID = " & LankID & ""
uppdLankarRS.Open uppdLankarSQL, uppdLankarKoppling, 1, 3
'uppdLankarRS.Close
uppdLankarKoppling.Close
End If
Set admLankarKoppling = Server.CreateObject("ADODB.Connection")
Set admLankarRS = Server.CreateObject("ADODB.RecordSet")
admLankarKoppling.Open "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("data/innehall.mdb")
admLankarSQL = "SELECT * FROM tblLankar"
admLankarRS.Open admLankarSQL, admLankarKoppling, 1, 3
Do Until admLankarRS.EOF
%>
<tr>
<td width="140" height="22">
<% =admLankarRS("LankSkriv") %></td>
<td width="8" height="22">
<% If admLankarRS("LankVisa") = "Ja" Then %>
">
<% ElseIf admLankarRS("LankVisa") = "Nej" Then %>
">
<% End If %>
</td>
</tr>
<%
admLankarRS.MoveNext
Loop
admLankarRS.Close
admLankarKoppling.Close
%>
Och naturligtvis ser ett tränat öga att jag fortfarande är i inlärningsstadiet när det gäller asp.
Jag vore jätteglad om någon kunde hjälpa mig med min fråga.
Och jag blir också glad för ytterligare förslag, kritik, lösningar, påpekanden om säkerhetsrisker osv, osv...
Tack alla hjälpsamma!
Sv: Refresh efter uppdatering av databas
Är uppdateringskoden högst upp på sidan?
Kan du någonstans visa koden för hela sidan?Sv:Refresh efter uppdatering av databas
If Request.QueryString("admUppd") = "UppdateraLank" Then
Dim uppdLankarKoppling, uppdLankarRS, uppdLankarSQL
Set uppdLankarKoppling = Server.CreateObject("ADODB.Connection")
Set uppdLankarRS = Server.CreateObject("ADODB.RecordSet")
uppdLankarKoppling.Open "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("data/innehall.mdb")
uppdLankarSQL = "UPDATE tblLankar SET LankVisa = '" & LankVisa & "' WHERE LankID = " & LankID & ""
uppdLankarRS.Open uppdLankarSQL, uppdLankarKoppling, 1, 3
'uppdLankarRS.Close
uppdLankarKoppling.Close
End If
Koden för att "refresha" sidan EFTER att databasen blivit uppdaterad finns ingen, för det är det jag inte vet hur jag ska göra... ;-/
Bör kanske nämna en sak som jag inte nämnde igår. Länksamlingen som jag vill ska uppdateras automatiskt efter kodsnutten ovan är inkluderad med
<!-- #Include Virtual="incfiles/lankar.asp" -->
Kan det vara orsaken? Har även testat med
Server.Execute("/incfiles/lankar.asp")
Inte heller det fungerar.
Sv: Refresh efter uppdatering av databas
Dvs före eller efter du inkluderar lankar.asp ?
Du skall inte behöva öppna databasen två gånger om du inte har länk-listningen så du använder server.execute
med include file använder den befintliga databasöppningar och variablar.Sv:Refresh efter uppdatering av databas
Sv: Refresh efter uppdatering av databas
flytta till ovan lankar.aspSv:Refresh efter uppdatering av databas
Jag ger här först uppdaterakoden (inklusive anropet på lankar.asp:
<%
If Request.QueryString("admUppd") = "UppdateraLank" Then
Dim uppdLankarKoppling, uppdLankarRS, uppdLankarSQL
Set uppdLankarKoppling = Server.CreateObject("ADODB.Connection")
Set uppdLankarRS = Server.CreateObject("ADODB.RecordSet")
uppdLankarKoppling.Open "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("/data/innehall.mdb")
uppdLankarSQL = "UPDATE tblLankar SET LankVisa = '" & LankVisa & "' WHERE LankID = " & LankID & ""
uppdLankarRS.Open uppdLankarSQL, uppdLankarKoppling, 1, 3
'uppdLankarRS.Close
uppdLankarKoppling.Close
End If
If Request.QueryString("LankAdminVarde") = "LankAdd" Then
<!-- #Include Virtual="/incfiles/lankar.asp" -->
Else
%>
Koden i lankar.asp ser ut såhär:
<table width="148" cellpadding="0" cellspacing="0">
<%
Set Koppling2 = Server.CreateObject("ADODB.Connection")
Set RS2 = Server.CreateObject("ADODB.RecordSet")
Koppling2.Open "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("/data/innehall.mdb")
sql = "SELECT * FROM tblLankar WHERE LankVisa = 'Ja'"
RS2.Open sql, Koppling2, 1, 3
Do Until RS2.EOF
%>
<tr>
<td width="148">
<table width="148" cellpadding="0" cellspacing="0">
<tr>
<td width="140">&LankSkriv=<% Response.Write(RS2("LankSkriv")) %>"><% =RS2("LankSkriv") %></td>
<td width="8">
</td>
</tr>
</table>
</td>
</tr>
<tr><td height="2"></td></tr>
<%
RS2.MoveNext
Loop
RS2.Close
Koppling2.Close
%>
</table>
Som sagt... jag är av yttersta nybörjarklass, så.. ha lite tålamod med mig. Polett efter polett trillar ner... ;-) Jag tar tacksamt emot förslag på hur jag kan göra istället för min bökiga kod. Och som sagt... Jag ÄR stolt nybörjare (No need to point that out!) =)
Sv: Refresh efter uppdatering av databas