Avatar billede vvsnamnam Nybegynder
19. april 2005 - 12:50 Der er 11 kommentarer og
1 løsning

sætte tal i streng

Hej,

Jeg har en række værdier som jeg skal bruge til at trække data ud fra min db med. Det er en række id nr. som 1324, 1256, 1456 ovs. Dvs. der hvor disse id numre er i min db skal jeg trække data ud.

jeg vil gerne sætte alle disse id nr. i en streng? så jeg kun behøves at check på en værdi istedet for at skulle check på flere.

f.eks. sId = 1234, 4667, 6677 ovs.
Avatar billede moejensen Nybegynder
19. april 2005 - 12:54 #1
så skriver du WHERE sId = 1234´OR sId = 4667 OR sId = 6677  osv
Avatar billede vvsnamnam Nybegynder
19. april 2005 - 12:58 #2
Ja - den er jeg godt med på - men det er det jeg vil slippe for.
Jeg vil gerne sætte alle Id´erne = et nyt id som indholder Id-værdierne så jeg kun skal skrive WHERE  sId = nID
Avatar billede moejensen Nybegynder
19. april 2005 - 13:06 #3
så kan du vil bare loope over iderne, sådan her

do until rs.eof
  nID = nID &" ," & rs("sid")
  rs.moveNext
Loop
Avatar billede moejensen Nybegynder
19. april 2005 - 13:06 #4
det skal selvfølgelig være:

do until rs.eof
  nID = nID &" OR sId = " & rs("sid")
  rs.moveNext
Loop
Avatar billede moejensen Nybegynder
19. april 2005 - 13:07 #5
i din sql skriver du så bare:

WHERE 1 = 1 "&nID&"

1 = 1 er bare et lille hack, så du slipper for at lave en linie hvor der ikke står OR foran.
Avatar billede busschou Praktikant
19. april 2005 - 15:33 #6
hvorfor ikke benytte IN ?
http://www.w3schools.com/sql/sql_in.asp

Select * From din_tabel Where sID IN (1234,4667,6677,..osv)
Avatar billede vvsnamnam Nybegynder
20. april 2005 - 08:47 #7
Findes der ikke noget kode der kan samle flere værdier(1234,1234,5677)i et.
Således at nID=(1234,1234,5677) hvorefter man så efter følgende kan trække værdierne ud igen når man skal checke på dem.

Jeg skal f.eks. også bruge det i denne sammenhæng:
<a href="show_kat_bad.asp?id=<%= sId %>&id2=<%= sId2 %>&id3=<%= sId3 %>&id4=<%= sId4 %>
Kan man ikke samle aller id´erne i en variabel som indeholder alle id´erne?
Avatar billede busschou Praktikant
20. april 2005 - 08:51 #8
du kan samle dem een lang variabel
Men du vil jo så alligvel skulle skille den variabel ad for at få alle de id= og &id2= osv med
Avatar billede moejensen Nybegynder
20. april 2005 - 09:02 #9
det lyder lidt som om du sidder med en database der ikke er normaliseret. Hvis du evt vi lhave fist alle varer i en kategori, så i stedet for at hente alle varer ud på deres id, så laver du en tabel der samler dem under grupper. derved kan du bare hente alle ud fra en gruppe.

Det var bare et bud.
Avatar billede vvsnamnam Nybegynder
20. april 2005 - 11:57 #10
Ok

Jeg bruger følgende kode til at udtrækker product id fra min db:

SQL = "SELECT DISTINCT price, sid1, name, sortname, products.id AS id, description, picture, variant, VEJL_UDPRIS, main_variant, LEVTID, TILBUD, NYHED, main_variantid, MV, PROD_VVSNR, PROD_FABRVARENR, dessin, secondhand " & _
            " FROM slist1a RIGHT OUTER JOIN products ON slist1a.id=products.id INNER JOIN p_g ON " & _
            " products.id=p_g.id  INNER JOIN productsextra ON p_g.id=productsextra.id " & _
            " WHERE ID " & sId & "AND MV=1  " & _
            " AND active=1 ORDER BY sortname, name"

Det virker også fint ok.

I en anden tabel skal jeg så finde hvilken kategori id de forskellige produkter til hører. Det ser sådan ud: "realid" bestemmer gruppen(1,2,3 ovs.) id fra groups udtrækker produkterne. Altså

id      realid
1234      2
1235      1
1236      2
ovs.

SQLstmt = "SELECT id, name, groupID FROM groups where groupid=0 and active=1 and realid= "& realid &" order by name;"
'Response.Write SQLstmt


Set rs = mconn.Execute(SQLstmt)
 
 
  DO WHILE NOT rs.EOF
  sId = rs("id")
  rs.MoveNext
  LOOP
  RS.Close

Jeg skal nu have kædet groups.id sammen med koden der finder produkterne frem!
Avatar billede vvsnamnam Nybegynder
20. april 2005 - 12:35 #11
Nå..nu fandt jeg skú vist selv ud af det:

SQL = "SELECT *, products.id AS id, description, picture, variant, VEJL_UDPRIS, main_variant, LEVTID, TILBUD, NYHED, main_variantid, MV, PROD_VVSNR, PROD_FABRVARENR, dessin, secondhand " & _
            " FROM groups, slist1a RIGHT OUTER JOIN products ON slist1a.id=products.id INNER JOIN p_g ON " & _
            " products.id=p_g.id  INNER JOIN productsextra ON p_g.id=productsextra.id " & _
            " WHERE productsextra.billed5=groups.id and groups.groupid=0 and groups.realid= "& sId & " and groups.active=1 and products.mv=1 order by groups.name "
Avatar billede vvsnamnam Nybegynder
20. april 2005 - 13:13 #12
lukker
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