Avatar billede public2 Nybegynder
15. december 2006 - 23:47 Der er 2 kommentarer og
1 løsning

Problemer med SQL udtræk fra database

Godaften allesammen.

Jeg er i gang med at lave en lille hjemmeside, og synes at være løbet panden mod en mur, trods for at det er gået så ganske fremragende op til nu.

Jeg skal prøve at gøre det så præcis og kort som muligst:

Sagen er, at jeg har en side med en række funktioner, og en af funktionerne er, at en bruger kan lave en ønskeliste. Når brugeren opretter sådan en ønskeliste bliver den smidt den i en tabel i min database der hedder "oenskeliste", der bliver lagt alle de ting brugeren har skrevet og så bliver brugerens brugernavn (oenskeuser) lagt ned, så brugeren selv kan gå ind og se på sin ønskeliste.

Nu er jeg så kommet til det sted, hvor det skal være muligt for en anden bruger, at se første brugers ønskeliste. Jeg kan sådan nogen lunde forstå, at jeg skal lave lidt krydsreference, for på bruger_2s side skal der stå: "Se bruger_1s ønskeliste".

Nu skal linket jo altså ikke referere til bruger_2, men til bruger_1, og det er her jeg får nogle problemer.

I min tabel "users" som er der hvor mine brugere og deres data er gemt, har hver bruger selvfølgelig et id (userid) og de har et navn (username). Mit spørgsmål til jer er således:

Jeg skal på en eller anden måde, når bruger_2 skal se bruger_1s ønskeliste, have lavet en overgang, så den ved hvad den skal pege på, altså noget i stil med:
SELECT * FROM oenskeliste,users WHERE userid = users.username & oenskeliste.oenskeuser
Ved godt det ikke skal se helt sådan ud, men håber I forstår hvad jeg mener.

Det er et spørgsmål både til hvordan jeg laver min SQL sætning OG sætter mit link op... Siden er lavet i mode, så det bliver noget med:
<a href="minportal.asp?mode=oenskeliste&id=<% "userid" %>=<% "oenskeuser %>

I må endelig sige til hvis jeg forklare mig for uklart, så vil jeg prøve at gøre det mere enkelt.

På forhånd mange tak for jeres hjælp

Mvh Public2
Avatar billede tjaz Nybegynder
16. december 2006 - 14:02 #1
Du har næsten svaret selv ...

Hvis du laver linket som du har skrevet er det bare at benytte sig af request.querystring("id") i din sq for at hente ønsker som er relateret til den bruger som har det nummer:

SELECT * FROM oenskeliste WHERE oenskeuser = "& Request.Querystring("id") &"
Avatar billede public2 Nybegynder
16. december 2006 - 15:08 #2
Hej Tjaz.

Tak for dit svar, jeg kan egentlig godt se logikken i det du skriver, og tror egentlig også bare, at det er min måde som jeg har bygget databasen op på, der gør at der opstår problemer.

Jeg har prøvet at sætte det ind som du har skrevet, og får følgende fejl:
"Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression."

Jeg tror måske at fejlen ligger i, at oenskeuser er et navn, altså selve navnet på brugeren og ikke ID'et og Request.Querystring("id") giver mig det ID på brugeren, som jeg ønsker at se.

Problemet vil nok løse sig, hvis jeg gjorde det sådan, at når en bruger opretter en ønskeliste, så gemmer den brugerens ID i oenskeliste tabellen, som så er i overensstemmelse med brugerens brugerID.
Altså, at brugeren med ID 44 også har oenskeuser ID 44.

Det har jeg imidlertidigt ikke gjort, og det er nok mest fordi jeg ikke rigtig ved hvordan :-) Når en bruger opretter et ønske lægger jeg brugerens navn ned i oenskeliste tabellen ved brug af:
rs("bruger") = session("brugernavn") - hvordan jeg lige får den vendt om, at det ikke er brugernavnet men brugerID'et ved jeg ikke helt hvordan, for jeg laver jo sådan set ikke en querystring med brugerens id.

Og på den anden side, så kan jeg måde også klare frisag ved at have brugerens navn i både bruger-tabellen og oenskeliste tabellen, da de to vil være ens, og så skal jeg så sætte dem lig hinanden på et tidspunkt, vel?
Avatar billede madeindk Nybegynder
16. december 2006 - 20:39 #3
Så er det vel bare at gøre sådan her :-)

SQL = "SELECT * FROM oenskeliste WHERE bruger='" & Request.QueryString("username") & "'"
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