webForumDet fria alternativet

Hämta bara online kompisar?

ASP

22 svar · 470 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Frågan#1

Hej

Har en tabell i en db som heter members och har ett fält som heter online och kan ha värdena Ja eller Nej.
Jag har även en tabell som heter kompisar. Där finns id1 och id2. I id 1 ligger en användare och i id2 en kompis till den användaren.

För att hämta en användares kompisar använder jag

[red]
SQL = "Select * From kompisar Where ID1 = "&Session("id")

RecSet.Open SQL, Connect, 3,3

If RecSet.Eof Then
%>Inga kompisar =(<%Else%>

<%Do Until RecSet.EOF

SQL2 = "Select * From anvandare Where id = "&RecSet("ID2")
		RecSet2.Open SQL2, Connect, 3,3%>
[/red]

Men nu hämtar den den användarens alla kompisar. Hur gör jag för att hämta endast dem som är online?

Hoppas det räcker med den kodsnutten, behöver ni se mer så säg till :)

Medlem sedan juni 200032 967 inlägg
#2

Hur vet du om man är online?

Medlem sedan juni 20015 009 inlägg
#3

I tabellen med alla användare har jag ett fält so uppdateras när man loggar in och ut med alternativen ja och nej, ja om man är inloggad och nej tvärtom.

Medlem sedan aug. 20012 349 inlägg
#4

Du kan ju hämta alla på en gång...

sql = "select * from anvandare a, kompisar k where online = 'ja' and k.id1 =" & Session("id")" & and k.id2 = a.id"

detta borde ge dig alla kompisar som är online för en användare med session("id"). om jag inte tänkt fel så här på morgon kvisten.

Medlem sedan aug. 20003 575 inlägg
#5

Men, vad händer om de skippar att klicka på logga ut då är de alltid online ?

Medlem sedan dec. 20003 887 inlägg
#6

Red.: Dumheter från min sida...

Medlem sedan juni 20015 009 inlägg
#7

Om någon skippar att logga ut så ändras deras status till offline efter 10 minuters inaktivitet

Medlem sedan juni 20015 009 inlägg
#8

Humm får bara fel om jag använder

sql = "select * from anvandare a, kompisar k where online = 'ja' and k.id1 =" & Session("id")" & and k.id2 = a.id"

Felet jag får är

Kompileringsfel i Microsoft VBScript (0x800A0401)
Slut på programsats förväntas.
/qserver/main_.asp, line 137, column 93
SQL = "select * from anvandare a, kompisar k where online = 'ja' and k.id1 =" & Session("id")" & and k.id2 = a.id"

Den klagar på den fetmarkerade
:q

Medlem sedan mars 20021 889 inlägg
#9

"& Session("id") &"

:)

Medlem sedan juni 20015 009 inlägg
#10

Hum jag har nog fått lite problem :/

Set RecSet2 = Server.CreateObject("ADODB.Recordset")

SQL = "select * from anvandare a, kompis k where online = 'ja' and k.id1 ="& Session("id") &" and k.id2 = a.id"

RecSet.Open SQL, Connect, 3,3

If RecSet.Eof Then
%>Inga kompisar =(<%Else%>

<%Do Until RecSet.EOF

SQL2 = "Select * From anvandare Where id = "&RecSet("ID2")
		RecSet2.Open SQL2, Connect, 3,3%>

<a href='mejl_answer.asp?medlem=<%=RecSet("Namn")%>' title="Skicka mejl till <%=RecSet("namn")%>" onmouseover="window.status='Skicka mejl till <%=RecSet("namn")%>'; changeImages('<%=RecSet("namn")%>', 'images/Mess-over.gif'); return true;" onmouseout="window.status=''; changeImages('<%=RecSet("namn")%>', 'images/mess.gif'); return true;" onFocus="this.blur()"><img src="start/images/mess.gif" align="absmiddle" name="<%=RecSet("namn")%>" alt="mejl" border="0" width="10" height="10"></a> <a href='user.asp?medlem=<%=RecSet("namn")%>'><%=RecSet("namn")%></a>

<% If RecSet2("online") = "Ja" Then %>
<b><font color="#ffc44d">&laquo;</font></b>
<%End If%>
<br>
<%
RecSet2.Close

RecSet.MoveNext
Loop
End If
Set RecSet2 = nothing
RecSet.Close%>

Den första sql delen verkar funka men sen kommer det en rad till som jag inte vet vad jag ska göra med :q

Medlem sedan mars 20023 561 inlägg
#11

Om jag har fattat det hela rätt så hämtar den nya SQL-satsen alla kompisar som är online, eller?

Set RecSet = Server.CreateObject("adodb.RecordSet")
SQL = "select * from anvandare a, kompis k where online = 'ja' and k.id1 ="& Session("id") &" and k.id2 = a.id"

RecSet.Open SQL, Connect, 3,3

If RecSet.Eof Then
Response.Write("Inga kompisar =(")
Else

Do Until RecSet.EOF

%>

<a href='mejl_answer.asp?medlem=<%=RecSet("Namn")%>' title="Skicka mejl till <%=RecSet("namn")%>" onmouseover="window.status='Skicka mejl till <%=RecSet("namn")%>'; changeImages('<%=RecSet("namn")%>', 'images/Mess-over.gif'); return true;" onmouseout="window.status=''; changeImages('<%=RecSet("namn")%>', 'images/mess.gif'); return true;" onFocus="this.blur()"><img src="start/images/mess.gif" align="absmiddle" name="<%=RecSet("namn")%>" alt="mejl" border="0" width="10" height="10"></a> <a href='user.asp?medlem=<%=RecSet("namn")%>'><%=RecSet("namn")%></a>

<b><font color="#ffc44d">«</font></b>
<br><%
Loop
End If
Set RecSet = nothing
RecSet.Close
%>

Men som sagt jag vet inte riktigt hur det är tänkt. ;)

Medlem sedan juni 20015 009 inlägg
#12

Mjo, den första hämtar väl vilka som är kompisar och den andra vilka som är online och visar det. Men använder jag den koden ovan så får jag "Objekt krävs.: 'RecSet'
/qserver/main_.asp, line 153"

vilket är rad: RecSet.Close

Medlem sedan mars 20021 889 inlägg
#13

Prova att byta plats på Set RecSet = nothing & RecSet.Close.

:)

Medlem sedan juni 20015 009 inlägg
#14

nepp gör ingen skillnad

Nu blev dock felmeddelandet:

Körningsfel i Microsoft VBScript (0x800A01A8)
Objekt krävs.
/qserver/main_.asp, line 160

Medlem sedan mars 20021 889 inlägg
#15

Du borde ha ett RecSet.mOveNext före Loop.

:)

Medlem sedan juni 20015 009 inlägg
#16

Hum jag tror jag måste ha Recset2 på allt för annars verkar det krocka med de andra scripten på sidan. Men vilka är det jag ska ändra?

Medlem sedan juni 20015 009 inlägg
#17

Jag har lyckats med att få koden funka nu, såvidare ingen är inloggad förutom jag. Då kommer det upp att man inte har några kompisar. Men loggar en av mina kompisar in så får jag bara felmeddelandet:

Objektet kunde inte hittas i mängden med det begärda namnet eller numret.
/qserver/main_.asp, line 146

och rad 146 är:

<a href='mejl_answer.asp?medlem=<%=RecSet2("Namn")%>' title="Skicka mejl till <%=RecSet2("namn")%>" onmouseover="window.status='Skicka mejl till <%=RecSet2("namn")%>'; changeImages('<%=RecSet2("namn")%>', 'images/Mess-over.gif'); return true;" onmouseout="window.status=''; changeImages('<%=RecSet2("namn")%>', 'images/mess.gif'); return true;" onFocus="this.blur()"><img src="start/images/mess.gif" align="absmiddle" name="<%=RecSet2("namn")%>" alt="mejl" border="0" width="10" height="10"></a> <a href='user.asp?medlem=<%=RecSet2("namn")%>'><%=RecSet2("namn")%></a>

Det jag gjort då är:

Set RecSet2 = Server.CreateObject("adodb.RecordSet")
SQL = "select * from anvandare a, kompis k where online = 'ja' and k.id1 ="& Session("id") &" and k.id2 = a.id"

RecSet2.Open SQL, Connect, 3,3

If RecSet2.Eof Then
Response.Write("Inga kompisar =(")
Else

Do Until RecSet2.EOF

Jag tror felet beror på ngt att jag har recset 2 och att när den försöker hämta info ifrån databasen så kommer den inte åt, ja något sådant iaf :)

Någon som vet hur jag kan lösa det?

Medlem sedan jan. 20032 285 inlägg
#18

Finns kolumnen "namn" i databasen? Om den finns; du har skrivit det med stor bokstav första gången, men det kanske inte spelar någon roll.

Medlem sedan juni 20015 009 inlägg
#19

Nepp det gjorde ingen skillnad.

Medlem sedan jan. 20032 285 inlägg
#20
SQL = "select * from anvandare a, kompis k where a.online = 'ja' and k.id1 ="& Session("id") &" and k.id2 = a.id"
-------------------------------------------------
<a href='mejl_answer.asp?medlem=<%=RecSet2("a.namn")%>' title="Skicka mejl till <%=RecSet2("a.namn")%>" onmouseover="window.status='Skicka mejl till <%=RecSet2("a.namn")%>'; changeImages('<%=RecSet2("a.namn")%>', 'images/Mess-over.gif'); return true;" onmouseout="window.status=''; changeImages('<%=RecSet2("a.namn")%>', 'images/mess.gif'); return true;" onFocus="this.blur()"><img src="start/images/mess.gif" align="absmiddle" name="<%=RecSet2("a.namn")%>" alt="mejl" border="0" width="10" height="10"></a> <a href='user.asp?medlem=<%=RecSet2("a.namn")%>'><%=RecSet2("a.namn")%></a>

Borde det inte vara något sådant??

289 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
156 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)