rörigt....

ASP

12 svar · 269 visningar · startad av crisse6

Medlem sedan dec. 20002 526 inlägg
Trådstart#1

jag håller på att bygga om min sida lite... använde en funktion från gamla sidan som raderar de mess man markerat... plötsligt funkar det inte :( jag får inga fel mess, så jag tror det ligger på html sidan innan..?? här är hela den koden (förlåt, jag är slarvig :r)

Du raderar meddelandena genom att bocka för i kryssrutorna.
<hr size="1" color="black">
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Set rsMess = Server.CreateObject("ADODB.Recordset")
MdbFilePath = Server.MapPath("mess.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"

SQL = "SELECT * From meddelande WHERE mapp_ID = 1 AND till ='" & Session("username") & "' ORDER BY datum DESC"
rsMess.Open SQL, Databas
If rsMess.EOF then
Response.Write "<b><font face=Verdana size=1>" & "Det finns inga meddelanden i din inkorg." & "</b></font>"
else

Response.Write "<table width=""600"" border=""0"" valign=""top"" cellpadding=""2"">" & VbCrLf

Response.Write "<tr>" & VbCrLf

Response.Write "<td bgcolor=""#FFFFFF""><font face=""Verdana"" size=""1"" color=""black""><b>Från:</b>"
Response.Write "<td bgcolor=""#FFFFFF""><font face=""Verdana"" size=""1"" color=""black""><b>Rubrik:</b></a>"
Response.Write "<td bgcolor=""#FFFFFF""><font face=""Verdana"" size=""1"" color=""black""><b>Skickat datum:</b>"
Response.Write "<td bgcolor=""#FFFFFF""><font face=""Verdana"" size=""1"" color=""black""><b>Status:</b>"
Response.Write "<td bgcolor=""#FFFFFF""><font face=""Verdana"" size=""1"" color=""black""><b>Svara:</b>"
Response.Write "<td bgcolor=""#FFFFFF""><font face=""Verdana"" size=""1"" color=""black""><b>Radera:</b>"

Response.Write "</tr>" & VbCrLf

Do while NOT rsMess.EOF

counter = counter + 1
If counter Mod 2 = 0 then
color = "ffffff"
Else
color = "cccccc"
End If

Response.Write "<tr>" & VbCrLf

Response.Write "<td bgcolor=""#" & Color & """><font face=""Verdana"" size=""1"" color=""black"">" & rsMess("fran") & "</b>"
Response.Write "<td bgcolor=""#" & Color & """><font face=""Verdana"" size=""1"" color=""black""><a href=""lasmess.asp?id=" & rsMess("id") & """><span style=""text-decoration:none;"">"& rsMess("rubrik") &"</b></a>"
Response.Write "<td bgcolor=""#" & Color & """><font face=""Verdana"" size=""1"" color=""black"">" & rsMess("datum") & "</b>"
Response.Write "<td bgcolor=""#" & Color & """><font face=""Verdana"" size=""1"" color=""black"">" & rsMess("status") & "</b>"
Response.Write "<td bgcolor=""#" & Color & """><font face=""Verdana"" size=""1"" color=""black""><a href=""nyttmess.asp?till="& rsMess("fran") &"&meddelande="& rsMess("meddelande") &"&rubrik="& "SV:" & rsMess("rubrik") &""">Svara</b>"
Response.Write "<td bgcolor=""#" & Color & """><font face=""Verdana"" size=""1"" color=""black""><form name=""id"" method=""post"" action=""raderamess3.asp""><input type=""checkbox"" name=""id"" value="""& rsMess("id") &""">"

Response.Write "</tr>" & VbCrLf
rsMess.MoveNext
Loop

Response.Write "</table>"
End If
%>
<hr size="1" color="black">
<font face="Verdana" size="2"><br><br>
<input type="submit" name="knapp" value="Radera markerade mejl" style="font-family:Verdana; font-size:10;"></font><p><font face="Verdana" size="2"><font face="Verdana" size="1"><br>
<select name="mapp" size="1" style="font-family:Verdana; font-size:10;">
    <option selected value="1">V&auml;lj mapp...</option>
    <option value="2">K&auml;rleks mess</option>
    <option value="3">Kompisar</option>
    <option value="4">Viktiga mess</option>
    <option value="5">&Ouml;vrigt</option>	
    </select>
<input type="submit" name="knapp" value="Flytta mail" style="font-family:Verdana; font-size:10;">
</font></font>
<%
Response.Write "</form>"
%>
Medlem sedan dec. 20002 526 inlägg
#2

här är sidan som man kommer till efter formuläret:
raderamess3.asp:

<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("mess.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"

If Request.Form("knapp")="Radera markerade mejl" Then
strDelete = Request.Form("id")
SQL = "DELETE * FROM meddelande WHERE id IN (" & strDelete & ")"
response.write sql
End If

If Request.Form("knapp")="Flytta mail" Then
flytta=Request.Form("id")

SQL = "UPDATE [meddelande] SET [mapp_id]=" & Request.Form("mapp") & " WHERE [id] =" & Request.Form("id") & ""
response.write sql
Databas.Execute SQL
End If
%>
Medlem sedan dec. 200012 464 inlägg
#3

När du skall ta bort mail så gör du aldrig någon execute på den sql-satsen, det ligger bara en response.write där.

If Request.Form("knapp")="Radera markerade mejl" Then
strDelete = Request.Form("id")
SQL = "DELETE * FROM meddelande WHERE id IN (" & strDelete & ")"
response.write sql
[b]databas.execute sql[/b]
End If
Medlem sedan dec. 20002 526 inlägg
#4

tackar larsG!!!! dåligt av mig...

Medlem sedan dec. 20002 526 inlägg
#5

hmm.... jag förstår inte detta... har ju som jag nog sagt en sida, raderamess3.asp med if-satser som kollar vilken knapp man tryckte på föregående sida. Att radera funkar utmärkt, men att flytta meddelanden funkar plötsligt inte alls?! jag får detta felmess när jag försöker flytta:

Flytta mail2, 1UPDATE [meddelande] SET [mapp_id]=2, 1 WHERE [id] =86 
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i UPDATE-uttryck. 

/grodan3/raderamess3.asp, line 19

texten: Flytta mail2, 1 är för att jag skrev ut med response.write värdet för knappen... ni ser nog i koden nedan, jag ger hela koden för raderamess3.asp för att ni kanske förstår lättare!

<%
Response.Write request.form("knapp")
Response.Write request.form("mapp")
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("mess.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"

If Request.Form("knapp")="Radera markerade mejl" Then
strDelete = Request.Form("id")
SQL = "DELETE * FROM meddelande WHERE id IN (" & strDelete & ")"
response.write sql
Databas.Execute SQL
End If
If Request.Form("knapp")="Flytta mail" Then
flytta=Request.Form("id")

[b]SQL = "UPDATE [meddelande] SET [mapp_id]=" & Trim(Request.Form("mapp")) & " WHERE [id] =" & Trim(Request.Form("id"))
[/b]response.write sql
Databas.Execute SQL
End If
Response.Write strDelete 
%>

update raden markerad med fet stil...

:e

Medlem sedan juni 200032 967 inlägg
#6

och utskriven ser sql-satsen ut hur?

får man gissa på att det är något av värdena mapp eller id som är tomt, som du inte får med dig från formuläret?

Medlem sedan dec. 200012 464 inlägg
#7
  set mapp_id = 1,2

Request.form("mapp") innehåller alltså flera värden. Är det någon multiple choice grunka?

Medlem sedan juni 200032 967 inlägg
#8

ah, såg inte utskriften av sql-satsen...

vill man använda flera värden på det sättet kan man använda operatorn IN.

mvh,

Medlem sedan dec. 200012 464 inlägg
#9

Nej @anders,

det var

update t set kolumn = 1,2

så in är inte applicerbart.

Medlem sedan juni 200032 967 inlägg
#10

geez, sorry.

jag vet, det var inte meningen.
*skäms och inser att man inte ska försöka göra fler än fyra saker samtidigt*

Medlem sedan juli 20003 825 inlägg
#11

Är mapp_ID av typen tal i Access då? Dum fråga kanske... men ibland är problemet enklast tänkbara så man av ren rutin utesluter det i felsökningen...

Medlem sedan dec. 20002 526 inlägg
#12

hmmm.... jag förstår inte LarsG...? Hmmm.. varför blir det te x 2, 1 när man vill flytta ett meddelande? jag måste ha hjälp!

Medlem sedan dec. 200012 464 inlägg
#13

Mapp är alltså din meny. Din finns inget annat som heter mapp i ditt formulär? Hur är det med menyer, kan man markera flera saker eller måste man sätta dit multiple i så fall?

276 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)