Frågor om kompisfunktion

ASP

7 svar · 214 visningar · startad av Hazze

Medlem sedan jan. 20002 453 inlägg
Trådstart#1

Jag har en funktion som gör att medlemmarna på sajten kan skapa "kompisrelationer" med varandra. Problemet är att man skapa en relation med sig själv. Dessutom kan man skapa flera kompisrelationer med samma medlem. Undrar hur jag ska göra för att hindra medlemmarna ha skapa relationen med sig själv samt ha flera relationer med samma medlem.

Koden ser ut såhär:

<% 
Set Databas = Server.CreateObject("ADODB.Connection")
Set Databas2 = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("medlemmar.mdb")
MdbFilePath2 = Server.MapPath("mess.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Databas2.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath2 & ";" 
SQL = "INSERT INTO kompisar "
SQL = SQL & "(username, kompis) "
SQL = SQL & "VALUES('" & Session ("namn") & "', '" & Request.QueryString("login") & "')" 
SQL2 = "INSERT INTO meddelande ([fran], [datum], [meddelande], [rubrik], [till], [status]) VALUES('" & Session("namn") & "',#" & now & "#,'Medlemmen " & Session("namn") & " har kompis med dig. ','Kompis!','" & Request.QueryString("login") & "','Oläst')" 
set rsKompis=Databas.execute(SQL)
set rsMess=Databas2.execute(SQL2) 
%>

Någon som har en idé? :)

Medlem sedan maj 20011 312 inlägg
#2

Du får öppna databasen och hämta den gamla adresslistans ID till att börja med. Sen gör du en if-sats helt enkelt av det.

IF NOT session("Sin egenID eller hur du har det sparat") OR kompis("ID") THEN
Uppdatera kompislista

Medlem sedan maj 20011 312 inlägg
#3

Ett råd är dock att spara Kompis-id:na i en array som du loppar ut. KÄnner att jag inte var så tydlig...hinner inte svara mer men testa lite, lyckas du inte så fråga igen...:)

Medlem sedan jan. 20002 453 inlägg
#4

Tack för svaret. Har försökt trixa lite med en liknande if-sats som du gav mig. Får dock inget resultat.

Någon som har någon kod att dela med sig? :)

Medlem sedan jan. 2000640 inlägg
#5

err, är det inte bara att kolla om en likadan post skapats, typ försöka öppna databasen med relationerna, och sen.

If RecSet.Eof then skapaennyrelation

eller?

Medlem sedan dec. 20003 563 inlägg
#6

Då testar vi såhär. Självklart otestat. ;)

<% 
Set Databas = Server.CreateObject("ADODB.Connection")
Set Databas2 = Server.CreateObject("ADODB.Connection")

MdbFilePath = Server.MapPath("medlemmar.mdb")
MdbFilePath2 = Server.MapPath("mess.mdb")

Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Databas2.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath2 & ";" 

Set check = Databas.execute("SELECT * FROM kompisar WHERE username = '"&session("namn")&"' AND kompis = '"&request.querystring("login")&"'  ")

if check.eof AND session("namn") <> request.querystring("login") then

SQL = "INSERT INTO kompisar "
SQL = SQL & "(username, kompis) "
SQL = SQL & "VALUES('" & Session ("namn") & "', '" & Request.QueryString("login") & "')" 

SQL2 = "INSERT INTO meddelande ([fran], [datum], [meddelande], [rubrik], [till], [status]) VALUES('" & Session("namn") & "',#" & now & "#,'Medlemmen " & Session("namn") & " har kompis med dig. ','Kompis!','" & Request.QueryString("login") & "','Oläst')" 

set rsKompis=Databas.execute(SQL)
set rsMess=Databas2.execute(SQL2) 

else
	' Det här funkade inte
end if
%>
Medlem sedan jan. 20002 453 inlägg
#7

Cyprys, det fungerar utmärkt. Tackar!

Medlem sedan dec. 20003 563 inlägg
#8

så lite så.. ;)

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