kolla mottagare i databas

ASP

8 svar · 248 visningar · startad av laidback

Medlem sedan maj 2001797 inlägg
Trådstart#1

ponera att man kan skicka meddelanden till andra medlemmar, genom att skriva in användarnamnet på personen osv i ett form.
jag funderar dock på nån slags ifsats som kollar om användarnamnet finns i databasen och annars returnerar ett felmeddelande typ "kolla stavningen" eller liknande.

nån guru som har lust att hjälpa mig? (no need to say att if-satser inte är min starka sida?..)

(tabellen med medlemmarna heter k_members och användarnamnsfältet heter name)

Medlem sedan dec. 200012 464 inlägg
#2
set connect = server.createobject("adodb.connection")
connect.open "dsn"
sql = "select 1 from k_members where name = '" & replace(request.form("name"),"'","''") & "'"
set rs = connect.execute(sql)
if rs.eof then
   response.write "Det finns ingen medlem med det namnet"
else
 'skicka meddelandet
end if
rs.close
connect.close
Medlem sedan maj 2001797 inlägg
#3

hmm.. nu har jag testat och testat.. och det går inte så bra..

koden (som för övrigt kommer ur scriptarkivet i form av chrisse6's meddelandetjänst) skickar meddelandet och skriver sedan ut "meddelandet har skickats"

jag vill ju nu att den ska antingen skriva att namnet inte hittades eller att meddelandet skickats. just nu skriver den ut båda två... inte så bra.
vad göra?

Medlem sedan juni 200032 967 inlägg
#4

Hur ser den koden ut?

Medlem sedan maj 2001797 inlägg
#5

<% if request.form("till")<>"" and request.form("meddelande")<>"" then

Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("base.asp")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.Mappath("/") & "\base.asp"

SQL = "INSERT INTO k_mess ([fran], [datum], [meddelande], [rubrik], [till], [status]) VALUES('" & Session("login") & "','" & Request.Form("datum") & "','" & Request.Form("meddelande") & "','" & Request.Form("rubrik") & "','" & Request.Form("till") & "','Oläst')"
Databas.Execute(SQL)

%>

Meddelandet är skickat!
<% else %>

räcker detta?

Medlem sedan dec. 200012 464 inlägg
#6

[KOD]
<% if request.form("till")<>"" and request.form("meddelande")<>"" then

Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("base.asp")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.Mappath("/") & "\base.asp"

sql = "select 1 from k_members where name = '" & replace(request.form("name"),"'","''") & "'"
set rs = databas.execute(sql)
if rs.eof then
response.write "Det finns ingen medlem med det namnet <br>"
else

SQL = "INSERT INTO k_mess ([fran], [datum], [meddelande], [rubrik], [till], [status]) VALUES('" & Session("login") & "','" & Request.Form("datum") & "','" & Request.Form("meddelande") & "','" & Request.Form("rubrik") & "','" & Request.Form("till") & "','Oläst')"
Databas.Execute(SQL)

%>

Meddelandet är skickat!
<%
end if
rs.close
set rs = nothing
databas.close
set databas = nothing
<% else %>

Medlem sedan maj 2001797 inlägg
#7

hmm.. nu säger den hela tiden att "användarnamnet finns inte" och skickar inte meddelandet?

Medlem sedan dec. 200012 464 inlägg
#8
sql = "select 1 from k_members where name = '" & replace(request.form("[b]till[/b]"),"'","''") & "'"

så borde det stämma bättre med dina fältnamn.

Medlem sedan maj 2001797 inlägg
#9

se där... *Belåten*
nu, vid en snabbkoll, verkar det fungera utmärkt!
tackar!

256 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)