Avatar billede plato Juniormester
24. marts 2006 - 14:28 Der er 17 kommentarer og
1 løsning

ASP kald

Hejsa NG.

Lad os sige jeg har en tabel med f.eks:


1
3
7
1
3
1
1
6

Dem vil jeg så have frem på skærmen ved hjælp af et simpelt loop.

Men, og her kommer mit spm, kan man fortælle ASP-koden, at hvis et tal findes flere gange skal den kunne udskrive tallet én gang? (Eksempel skal "1" i ovenstående kun skrives ud én gang).
Avatar billede keysersoze Ekspert
24. marts 2006 - 14:46 #1
hvordan har du gemt din række af tal? I SQL kan du jo fx bruge distinct til kun at tage unikke værdier ud.
Avatar billede ffsoft Praktikant
24. marts 2006 - 15:20 #2
Select Distinct FeltMedTal From tblTabel

eller

Select Distinctrow FeltMedTal From tblTabel
Avatar billede plato Juniormester
24. marts 2006 - 17:47 #3
Desværre for mig gælder det skuespiller navne. Der kan godt være 10 skuespillere i én enkelt række. Så det er meget problematisk. Kan derfor heller ikke sortere dem alfabetisk. Men kunne jeg bare trække dem ud ville det være fint. (Uden navene gentog sig.)

Ved ikke om det er helt klart for jer. Men én af rækkerne i min tabel hedder skuespiller. Denne række kan så have op til flere navne i ét felt, hvor de er adskilt med <br>. Det skulle nok have været planlagt ordentlig fra starten, men dengang vidste jeg intet om det.

Eks:

            Skuespiller
ID  2      Morten Mortensen<br>Hans Hansen<br>Børge Børgesen
ID  3      Preben Prebensen<br>Hans Hansen<br>Steffen Steffensen
Avatar billede keysersoze Ekspert
24. marts 2006 - 18:19 #4
men hvis nu ID 1 hives ud flere gange - står der så ikke stadig de samme navne under "Skuespiller"?
Avatar billede plato Juniormester
24. marts 2006 - 18:23 #5
Problemet er. Hvis jeg looper alt ud vil koden returnere dette: (Lad os sige jeg kun har de to ovenstående poster i min tabel)

Morten Mortensen
Hans Hansen
Børge Børgesen
Preben Prebesen
Hans Hansen
Steffen Steffesen

Nu har jeg bare lidt over 6000, og da det handler om film, vil mange skuespiller genoptræde i listen, som f.eks Hans Hansen gør ovenfor.
Avatar billede keysersoze Ekspert
24. marts 2006 - 18:27 #6
det forstod jeg ikke meget af?

Hvis du hiver 2 felter ud, ID og SKUESPILLER, og begge felter indeholder præcis det samme så er alt du skal gøre at sætte en distinct på den SQL;

SELECT DISTINCT id, skuespiller FROM tabel...

Hvis ikke må du prøve at forklare lidt nærmere.
Avatar billede plato Juniormester
24. marts 2006 - 19:01 #7
Oki, det må være der den går galt.

Jeg vil ikke hente noget ud fra id. Jeg vil lave en liste med samtlige skuespillere i tabellen. Dvs. loop hele skidtet.

Bare en simpel:
<%
strSQL = "SELECT * FROM movies"
Set rs = objConn.Execute(strSQL)
Do While Not rs.EOF
skuespillere = rs("skuespillere")
%>

Skuespillere

<%
rs.movenext
loop
%>
Avatar billede keysersoze Ekspert
24. marts 2006 - 19:12 #8
jeg tror vi snakker forbi hinanden...

hvad er ID? id på filmen eller hvad?

Har du prøvet den sql jeg skrev?
Avatar billede plato Juniormester
24. marts 2006 - 19:24 #9
Jeg tror du skal glemme id. Jeg vil bare udskrive tabellen skuespillere i databasen. Hver felt i skuespillere indeholder flere navne adskilt med <br>. Og så vil jeg bare den kun skal skrive et navn én hvis det findes flere gange.

I tabellen hvor skuespillere findes er der mange rækker der f.eks udgør:
http://www.filmnet.dk/showmovie.asp?Id=6362
Filmen er kaldt med id. Og som du kan se skrive den skuespiller og roller som den skal. Men hvis jeg kalder en liste der udskriver alle skuespiller får jeg mange gentagelser.

Håber det hjalp lidt på forklaringen.
Avatar billede keysersoze Ekspert
24. marts 2006 - 19:33 #10
nu _tror_ jeg at jeg er med... Som jeg ser det er du ude på enten en umuligt eller i bedste fald kæmpeopgave - for hvad vil du gøre hvis der er 2 skuespillere der hedder det samme? stadig kun udskrive én af dem?
Avatar billede plato Juniormester
24. marts 2006 - 19:48 #11
Yes nemlig..! Hvis det kan lade sig gøre??

Hvis bare jeg vidste det fra starten da jeg lavede databasen og koden..
Avatar billede keysersoze Ekspert
24. marts 2006 - 20:13 #12
de to ting jeg umiddelbart kan komme i tanke om er enten at omstrukturere databasen, hvilket selvfølgelig er et kæmpe arbejde men dog langt hen ad vejen kan automatiseres, og den anden mulighed er at gemme hver eneste nye navn i et array, og for hver gang i dit loop løber du så arrayet igennem for at se om det pågældende navn findes i arrayet, gør det udskrives ingenting og ellers udskrives navnet og det lægges til dit array
Avatar billede plato Juniormester
24. marts 2006 - 21:46 #13
Nu bestemmer du selv om du gider svare på det. Men hvis du skulle intregere skuespillere til filmdetaljer hvordan ville du så gøre det?

Evt. max 10 felter til skuespillere til en film som har hver sit felt eller skuespillere i sin egen tabel som evt. bliver kaldt frem til en pågældende film (hvilket jeg ikke lige helt kan se løsningen på).

For mig er det spild af tid at sætte en masse film ind med skuespillere for derefter også at lave en tabel med skuespillere for sig, som er min nuværende måde at gøre dette på. Det skaber faktisk meget dobbelt arbejde.
Avatar billede plato Juniormester
24. marts 2006 - 21:47 #14
Du skriver forøvrigt at databasen evt skal omstruktureres som hen ad vejen kan gøres automatisk. Dette kan jeg egentlig heller ikke se en nogenlunde løsning på.
Avatar billede ffsoft Praktikant
24. marts 2006 - 21:54 #15
Når dine data ligger adskilt af et <br>, er det muligt at skrive noget
kode der gennemløber tabellen og skiller navnene ad, men der vil altid
være et stort manuelt arbejde.
Avatar billede keysersoze Ekspert
24. marts 2006 - 21:56 #16
jeg skriver ikke at det "hen ad vejen" kan gøres automatisk - men at en stor del af arbejdet kan gøres automatisk... simpelthen bare ved at vælge skuespillerne ud, splitte på <br> hvorefter du kan sætte navnene ind i en ny tabel.

hvis jeg skulle lave det rigtigt ville jeg lave én tabel til film, én tabel til skuespillere og én tabel som joine skuespillere med film.
Avatar billede plato Juniormester
24. marts 2006 - 22:08 #17
Ja, jeg må jo simpelthen bare i gang. :)

Smid lige et svar.
Avatar billede keysersoze Ekspert
25. maj 2006 - 12:57 #18
svar :)
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