---
title: "Förbättra kompis listan."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/89739-förbättra-kompis-listan/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Bosse168"
published: "2003-11-05T21:42:59.000Z"
updated: "2003-11-17T17:58:09.000Z"
replies: 39
views: 752
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/89739-förbättra-kompis-listan"
---

# Förbättra kompis listan.

_Sida 2 av 2._

## #21 — Engine^, 2003-11-13T08:12Z

Jo, men det fungerar nog inte om det är Access... :l Jag har för mig att Access inte fixar join med flera villkor.

Permalänk: https://www.webforum.nu/p/1204788

## #22 — @nders, 2003-11-13T08:13Z

Kanske inte. Men man kan ju alltid roa sig med att prova. :)

red: men förresten, var det inte MySQL det gällde?

mvh

Permalänk: https://www.webforum.nu/p/1204789

## #23 — Engine^, 2003-11-13T08:16Z

Ah, jo det var det ju :) Men det löser ju tyvärr inte problemet.

Permalänk: https://www.webforum.nu/p/1204791

## #24 — Bosse168, 2003-11-13T15:41Z

Nope den loopar fortfarande ut alla som att dom vore online.

Koden för loopen:

```
If RecSet.EOF Then
  Response.Write("<br>Din kompislista är tom!<br><br>")
Else
  Do until RecSet.EOF
  
If RecSet("namn")<>username Then
    Response.Write RecSet("status") &" - <a href=""../plejs.asp?se="& RecSet("namn") &""">"& RecSet("namn") &"</a><br>"
Else
	Response.Write RecSet("status") &" - <a href=""../plejs.asp?se="& RecSet("namn2") &""">"& RecSet("namn2") &"</a><br>"
    
End If

	RecSet.MoveNext
	Loop
  
End If

RecSet.Close : Set RecSet = nothing
Connect.Close : Set Connect = nothing
```

Permalänk: https://www.webforum.nu/p/1205008

## #25 — Engine^, 2003-11-14T08:13Z

Det är inte loopen det är fel på utan värdet på *members.status*, som inte blir tilldelat rätt. Frågan väljer ut alla kompisar, som dels har status *godkand = 'Ja'* och dels *status = 'online'*. Så om status är något annat än online, så kommer medlemmen inte med i resultatet. Eftersom du hävdar att den även verkar visa dom som inte är online, så bör det handla om ett fel i datat.

När tilldelar du en medlem *status = 'online'* och när tilldelar du en medlem *status = 'offline'*?

Permalänk: https://www.webforum.nu/p/1205204

## #26 — Bosse168, 2003-11-14T17:35Z

kolumnen status får värdet online när man loggar in och värdet offline när man loggar ut. 
Säker på att den SQL satsen kollar upp rätt medlems status (online/offline)?

Permalänk: https://www.webforum.nu/p/1205494

## #27 — Bosse168, 2003-11-16T03:25Z

Inte någom mer som vet vad som kan vara fel?
Fick reda på ett annat forum att members.status = 'online' ska flyttas inom WHERE...

```
strSQL = "SELECT kompis.namn2,members.namn,members.status " & _
  "FROM kompis " & _
  "INNER JOIN members " & _
  " ON members.namn = kompis.namn2 " & _
  "WHERE (kompis.namn='" & username & "' " & _
  " OR namn2='" & username & "') " & _
  " AND godkand='Ja' " & _
  " AND members.status = 'online' " & _
  "ORDER BY members.namn"
```

Men det är fortfarande samma problem och kan det inte vara så att den hämtar min online status istället för polarens?

Permalänk: https://www.webforum.nu/p/1206045

## #28 — Engine^, 2003-11-16T11:31Z

Testa lite grand för att se vad som är fel, t.ex. hämta ut dom som är online i members.

```
SELECT namn FROM members WHERE status = 'online'
```

Det verkar ju onekligen vara den delen som inte fungerar.

Permalänk: https://www.webforum.nu/p/1206155

## #29 — Bosse168, 2003-11-16T18:29Z

jo det funkar men jag vet bara hur man gör med inner join i SQL satser

Permalänk: https://www.webforum.nu/p/1206388

## #30 — Bosse168, 2003-11-17T14:44Z

Ingen som kan hjälpa mig? :(

Permalänk: https://www.webforum.nu/p/1206861

## #31 — Engine^, 2003-11-17T14:47Z

Det kan nog gå bra att hjälpa lite mer, men jag tror att jag ivarjefall skulle vilja se hur databasen är uppbyggd. Det känns ju som att det är något som inte stämmer, när frågan visar dom som är offline trots att den tydligen endast ska välja ut dom namn från tabellen members vars status är online.
Som frågan ser ut, så ska det problemet inte finnas. Är det någon annan som kan se något fel?

Permalänk: https://www.webforum.nu/p/1206864

## #32 — Bosse168, 2003-11-17T14:55Z

Ok databasen är uppbyggd så här:

**Databasen members:**
namn = användarnamnet
status = offline eller online

**databasen kompis:**
namn = användarnamnet på den som startade relationen.
namn2 = användarnamnet på den som har godkänt relationen.

Permalänk: https://www.webforum.nu/p/1206872

## #33 — Engine^, 2003-11-17T15:03Z

Ok. Dags att tolka din struktur då...

```
SELECT namn2
FROM kompis k
INNER JOIN members m
  ON m.namn = k.namn
WHERE m.namn = [i]username[/i]
  AND status = 'online'
```

Jag har medvetet skippat lite saker här, men jag tänkte att om inte den frågan returnerar det du vill, så blir jag än mer förbryllad.

Permalänk: https://www.webforum.nu/p/1206883

## #34 — Bosse168, 2003-11-17T16:14Z

nej den loopar fortfarande ut alla fast dom inte är online

Permalänk: https://www.webforum.nu/p/1206939

## #35 — Bosse168, 2003-11-17T16:20Z

tog o skrev ut bara strSQL:

SELECT namn2 FROM kompis k INNER JOIN members m ON m.namn = k.namn WHERE m.namn = 'bosse' AND status = 'online'

fick dock ändra username till '"& username &"'

Permalänk: https://www.webforum.nu/p/1206940

## #36 — Engine^, 2003-11-17T16:57Z

Va? Ja, frågan är det inte fel på, men din datastruktur verkar vara knasig.

```
SELECT namn2 FROM members WHERE namn = 'bosse' AND status = 'online'
```

Nu har jag inga fler förslag på samma sak. :l

Permalänk: https://www.webforum.nu/p/1206964

## #37 — Bosse168, 2003-11-17T16:59Z

kan det inte vara så på något sätt att SQL satsen kollar upp min online status så det är därför den tror att personen är online?

Permalänk: https://www.webforum.nu/p/1206968

## #38 — Bosse168, 2003-11-17T17:09Z

alltså jag vill kolla igenom databasen **kompis** där namnet namn eller namn2 stämmer överens med variablen *username*, och sedan kolla upp i databasen **members** statusen på användaren som inte stämmer överens med variablen *username*.

Permalänk: https://www.webforum.nu/p/1206971

## #39 — Engine^, 2003-11-17T17:46Z

Ja, men vilken relation har dom två tabellerna? Den verkar inte vara helt rätt...

För att visa hur jag skulle lägga upp det

**tblMembers**
\-lngUserID    Long (PK) --unikt användarid
\-strUsername    Text (30) --användarens namn
\-blnStatus    Boolean (Yes/No) --True = online, False = offline

**tblFriends**
\-lngMemberID    Long --Relationen till medlemmen
\-lngFriendID    Long --Medlemmens kompis idnummer

För att välja ut en medlems vänner ur den strukturen

```
SELECT strUsername
FROM tblMembers tblM
INNER JOIN tblFriends tblF
  ON tblF.lngMemberID = tblM.lngUserID
WHERE blnStatus
  AND lngUserID = [i]användarid[/i]
```

Jag förstår faktiskt inte hur din data är lagrad, så jag har lite svårt för att hjälpa dig ytterligare. Tyvärr.

Permalänk: https://www.webforum.nu/p/1206990

## #40 — Bosse168, 2003-11-17T17:58Z

**members**
\-username --unikt användarid & användarens namn
\-status --varchar(7) antingen offline eller online står det där.

**kompis**
namn --varchar - namnet (username)på den som startade relationen.
namn2 --varchar - namnet (username) på den som har godkänt den.

Permalänk: https://www.webforum.nu/p/1207002

---

Tråden på webben: https://www.webforum.nu/amne/asp/89739-förbättra-kompis-listan/page2  
Föregående sida: https://www.webforum.nu/amne/asp/89739-förbättra-kompis-listan.md
