Avatar billede m_x Nybegynder
15. maj 2004 - 15:44 Der er 7 kommentarer og
1 løsning

Indkøbskurv - Array, og udtræk fra DB

Jeg er ved at lave en indkøbskurv, hvor jeg gemmer valgte produkter i en session.
Hver produkt har et ID, så når et produkt vælges tilføjes det bare til sessionen sammen med et komma (fx "3,").
Det vil sige at sessionen kunne komme til at se sådan ud: "3,5,8,6,4,"

Min tanke var at smide smide det i et array, så jeg kan trække information ud fra databasen (produktnavn, pris osv.) efter produktid'et.

Men jeg har ikk beskæftet mig med arrays, så jeg ved ikke hvordan jeg skal gribe det an...
Jeg kunne godt bruge lidt hjælp til arrayet, og til at bruge arrayet til at få den ønskede information ud fra databasen...

Hvis det er en lam løsning, hører jeg gerne hvordan jeg ellers skal bære mig ad :)
Avatar billede jytte Nybegynder
15. maj 2004 - 19:01 #1
dim mitarray,i
mitarray = split(session("indkoebskurv"),",")

for i=lbound(mitarray) to ubound(mitarray)
    'her skal du bruge mitarray(i) til at hente ud fra databasen
next

Jeg ville vælge at sessionen f.eks indeholdt "3,5,8,6,4" altså uden det sidste komma for så kommer der kun tal ind i arrayet
Avatar billede m_x Nybegynder
15. maj 2004 - 21:29 #2
Undskyld... jeg glemte at fortælle jeg koder i VB.NET...

Jeg kan ikke helt stikke noget der virker sammen ud fra den kode der...
Avatar billede erikjacobsen Ekspert
16. maj 2004 - 08:15 #3
Det kan gøre på ca denne måde:

dim tekst as string
dim a as string()
dim i as integer

tekst="2,5,6"
a = tekst.Split(",")

for i=0 to ubound(a)
  response.write("Nr " & i & " er " & a(i) & "<br>")
next

response.write(tekst)
Avatar billede m_x Nybegynder
16. maj 2004 - 14:36 #4
erikjacobsen: Yes, sådan :)

Nu skal det bare spille med databasen... Men hvordan?

Hent konkret er hvert tal arrayet spytter ud et produkt id, som jeg så vil vælge et record ud fra...
Avatar billede m_x Nybegynder
16. maj 2004 - 18:34 #5
Nu har jeg selv rodet lidt med det, og jeg tror jeg er ved at være der...

Dim tekst As String
Dim a As String()
Dim i As Integer
Dim strSQLstatement As String

tekst= Session("BasketProducts")
a = tekst.Split(",")

For i = 0 To Ubound(a)
    If i = Ubound(a) Then
        strSQLstatement += "ProductID=" & a(i)
    Else
        strSQLstatement += "ProductID=" & a(i) & " AND "
    End If
Next
           
'Connect to DB
Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;"
                strConnection += "Data source =" & Server.MapPath("/Roc-A-Feller/db/Database.mdb") & ";"
Dim strSQL As String = "SELECT * FROM Products WHERE " & strSQLstatement & ";"
           
Dim objConnection As New OLEDBConnection(strConnection)
Dim objCommand As New OLEDBCommand(strSQL,objConnection)
           
objConnection.Open()
dgEmps.DataSource = objCommand.ExecuteReader(CommandBehavior.CloseConnection)
dgEmps.DataBind()

___________________________________

Problemet er bare at det kun virker når der er et produktID... Lige så snart jeg tilføjer et nyt id, så gider den slet ikke hente noget ud fra databasen. Jeg får ikke engang en fejl...
Avatar billede m_x Nybegynder
16. maj 2004 - 19:17 #6
Godmorgen... Der skal selvfølgelig stå OR og ikke AND i SQL sætningen... ;)

Men hvordan ordner vi nu det med point? I har sådan set begge givet mig svar på halvdelen af mit spørgsmål...
Avatar billede jytte Nybegynder
16. maj 2004 - 19:30 #7
Nu forholder det sig sådan at min husbond faktisk hedder Erik Jacobsen (alias erikjacobsen) så hvis du giver mig pointene bliver det i familien (iøvrigt har han sagt at jeg gerne må få dem).
Avatar billede m_x Nybegynder
16. maj 2004 - 19:45 #8
Det er fint med mig...
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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