Avatar billede Slettet bruger
06. januar 2011 - 11:57 Der er 20 kommentarer og
1 løsning

Vennelist asp?

Hej eksperter.
Jeg har gennempløjet eksperten for at finde information til at lave en venneliste, eller favoritliste, men er faktisk overhovedet ikke blevet klogere, bortset fra, at der skal bruges noget arrays. Diverse artikler er læst, og jeg forstår godt idéen men hvordan jeg kommer videre, aner jeg ikke.

Brugere skal via deres brugerID lægger venners (ID) i en tabel (venner)  i kolonnen (venneliste). Herefter skal det så være muligt at se vennelisten, tilføje venner og slette venner.

Er der nogen som har et lille script/kode så jeg bedre kan gennemskue brugen af arrays?

Mvh. rwj
Avatar billede The Real Yoda Juniormester
06. januar 2011 - 12:08 #1
Hvis det er noget der skal gemmes, er det nok smartere at gøre det i databasen ..

og der skal du blot lave en tabel med to felter..

ven1 og ven2

og de skal begge indeholde id på dine brugere/personer

så smider du bare i databasen blot de 2 personer som er venner, deres id, ind i ven1 og ven2 ..
Avatar billede Slettet bruger
06. januar 2011 - 12:19 #2
Ja, det skal gemmes i db, og den løsning du forslår kan vist kun bruges når man ved hvor mange venner der skal være fleter til.

Som jeg har forstået det, er en venneliste uden begræsning af antal bedst at bruge arrays til.

Men jeg tager måske fejl?

mvh rwj
Avatar billede claes57 Ekspert
06. januar 2011 - 12:35 #3
du har en tabel med brugere, bla id, navn osv
og så en tabel med venner, der er kun 3 felter (en autonummerering, en ejer, og en ven)
En 'Ejer' har så et antal poster i venne-tabellen - en for hver ven.
Du finder alle ejers venner med
select * from venner where ejer = id
og hvis du vil have navn på dem, så må du slå dem op efterfølgende (i access kan du lave en 'forespørgelse' en gang for alle, og den vil så kunne bruges som hjælpetabel, med alle venner og deres navne osv i.
Hvis du skal slette en ven, så er det
delete * from venner where ejer = id and ven = id
det fjerner den enkelte post.
Avatar billede The Real Yoda Juniormester
06. januar 2011 - 12:38 #4
Det som claes sagde :)
Avatar billede Slettet bruger
06. januar 2011 - 12:53 #5
Tak for den grundige forklaring Claes57.
Som du forklarer det var også min oprindelige idé, og det burde ikke volde problemer. Men hvad jeg ikke forstår er så, at nogle brugere måske har 10 venner andre 30, og hvordan kommer de så ned i vennetabellen? Der er jo kun plads til 1 af gangen, og ved tilføj af nye venner blive de eksisterende jo slettet.
Db er access.
mvh. rwj
Avatar billede claes57 Ekspert
06. januar 2011 - 12:59 #6
nej - der oprettes en post/record til hver ven. En 'ejer' har så fx 30 poster, og en anden bare 2...
Avatar billede Slettet bruger
06. januar 2011 - 13:21 #7
Det forstår jeg ærligt talt ikke, betyder det, at der i tabellen venneliste udover brugerID også skal være 30 kolonner med ven1, ven2 osv?

Det lyder lidt omstændeligt, har du ikke tilfældligvis noget kode-eksempel liggende jeg kan studere?
Avatar billede keysersoze Ekspert
06. januar 2011 - 13:44 #8
nej - tabellen kommer til at indeholde en række for hver ven en person har. Fx;

PERSONER (id, navn)
1 keysersoze
2 rwj
3 claes57
4 therealyoda

VENNER (personid, venid)
1 2
1 3
1 4
3 4
4 2
4 3

nu er jeg ven med 3, du har ingen venner, claes57 har 1 ven mens therealyoda har 2 venner.
Avatar billede keysersoze Ekspert
06. januar 2011 - 13:46 #9
man kan så selvfølgelig diskutere om jeg kan være ven med dig uden at du er ven med mig - som jeg har beskrevet det i nederste linje er venskaber 1-vejs i min tabel, men den kan også sagtens læses 2-vejs så du fx reelt har 2 venner og ikke 0 i mit eksempel.
Avatar billede claes57 Ekspert
06. januar 2011 - 14:05 #10
#9 - det er lidt som fx skype - men sender en anmodning om at blive ven, og vil i givet flad blive oprettet med
1 4
4 1
når det er accepteret. Det kræver så en udbygning at styre det med accept og udestående invitationer - så der er plads til en venner version 2 om et års tid.
Avatar billede Slettet bruger
06. januar 2011 - 14:28 #11
Tak til begge for svar.
Jeg er lidt med nu, og kan godt se polemikken med venneliste, hvis ikke begge er enige deri. Så vil jeg lave det om til en favoritliste, så er det ene problem da løst:-)

Det vi er nået til nu, er sådan cirka det samme som jeg har læst mig til rundt omkring, både her på eksperten.dk og andre steder.

Hvad jeg så ikke forstå, er hvordan man opretter en ven, tilføjer eller sletter, det er næppe som ved alm. update?

mvh rwj
Avatar billede claes57 Ekspert
06. januar 2011 - 14:44 #12
for at oprette en ven, så skal 'ejer' kunne søge på navn/brugernavn i hele 'bruger' tabellen (dvs alle, der ikke allerede er på favorit-listen. Klik på en skal så vise en side hvor ejer kan administrere - dvs tilføje som favorit.
tilføj som favorit vil dermed altid være en opret-post

på favoritlisten for brugeren skal bruger kunne klikke på en og der vælge at slette
Avatar billede Slettet bruger
06. januar 2011 - 15:34 #13
ja, den er jeg med på.
jeg har en liste over brugere, og her kan man klikke på specifik bruger og tilføje vedkommende til vennelisten.
det kan jeg så gøre via denne kode:

Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "select * from venner where brugerID = '" & Request("brugerID") & "'"
rs.Open strsql, conn, 1, 3

rs.update

rs("brugerID") = Request("brugerID")
rs("venneliste") = Request("ID")

rs.update

Det virker fint, men her opstår så problemet som jeg har nævnt tidligere, den nye ven overskriver jo blot den gamle?

I db tabellen venner er kolonnen venneliste's datatype tekst, hvis det har indflydelse.
Avatar billede claes57 Ekspert
06. januar 2011 - 16:04 #14
det er fordi du bruger update (opdatér)
du skal indsætte en ny ved (insert) og der er kaldet lidt anderledes.
<%
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "venner", Conn, , 3, 2

RS.AddNew
RS("brugerID") = Request("brugerID")
RS("venneliste") = Request("ID")
RS.Update

RS.Close
Set RS = Nothing
%>
Avatar billede Slettet bruger
06. januar 2011 - 16:30 #15
jeg kigger lige på det og retur igen i morgen.

ha en god aften.

rwj
Avatar billede Slettet bruger
07. januar 2011 - 06:37 #16
Jeg kan her efterfølgende se, at jeg har grebet mit problem helt forkert an, for nu virker "vennelisten" uden problemer.

Denne måde giver tilmed mulighed for at lægge et datofelt ind, så sortering kan se via der.

Super godt, mange tak for hjælpen.

Smider du et svar?

God weekend.
Mvh. rwj
Avatar billede Slettet bruger
15. maj 2011 - 07:28 #17
lukker
Avatar billede keysersoze Ekspert
15. maj 2011 - 11:55 #18
tak for hjælpen...
Avatar billede Slettet bruger
15. maj 2011 - 12:58 #19
Det er mig som takker:-) Troede ikke du ville have point, da du ikke smed et svar. Fortsat god søndag. Mvh. rwj
Avatar billede keysersoze Ekspert
15. maj 2011 - 13:22 #20
Så spørger man efter et svar fra den/de der har bidraget til løsningen.
Avatar billede Slettet bruger
15. maj 2011 - 14:08 #21
Ja, det har du ret i, jeg var ikke opmærksom på at der var flere svar på mit indlæg her efter disse mange måneder. Beklager mange gange. rwj
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester