Håller på att ansluta en webbshop till Samport och har kört fast på ett ställe där jag skall skapa en sträng med alla produkter som skall skickas. Ser inte korrekt ut. Du borde skicka med både id och pris i den strängen. Läs igen och se om det inte står något i stil med. Strängen som jag skrev är helt korrekt, skriver jag in den manuellt så fungerar kopplingen till Samport. Vill du få bort kommatecknet på slutet kan du använda: Jag har provat med den koden, problemet är att den tar bort alla kommatecken. Om det nu är flera poster med samma order_id så blir det: Tack nu fungerar det klockrent. Då är jag med, kollade egentligen inte så noga vad du höll på med :)Skapa en sträng från en databas
Strängen skall se ut så här:
Date = PRODUKTNUMMER:NAMN:ANTAL:PRIS,PRODUKTNUMMER:NAMN:ANTAL:PRIS OSV..
Nu till mitt problem
När jag hämtar artiklarna som är beställda från databasen så får jag ovanstående sträng fast med ett kommateckan på slutet. Den får enbart förekomma för att separera produkterna.
Så här ser min kod ut:
sql = "SELECT * FROM bestallningar WHERE Order_id = '"&order_id&"'"
rs.Open sql, conn, 1, 3
Do until rs.EOF
pris = rs("Pris")*100
a_str = rs("Art_nr")&":"
b_str = rs("Produkt")&":"
c_str = rs("Antal")&":"
d_str = pris
str_kaka = a_str&b_str&c_str&d_str
Response.Write str_kaka
rs.MoveNext
Loop
rs.CLOSE
conn.CLOSE
Set rs = nothing
Set conn = nothing
Hur går jag tillväga för att få ett kommatecken efter varje produkt som har en efter sig?
Jag har provat lite med detta men får det inte att fungera:
langd = LEN(str_kaka)
antal = langd-1
ny_str = Left(str_kaka, antal)
Data = ny_strSv: Skapa en sträng från en databas
?producid=xxx&name=olle&price=128 osv osv ..
Sedan på deras adminsida finns exempel i både asp, php, .net och liknande för att köra mot deras betaltjänst. Ladda hem dom och kolla så ser du rätt fort vad som gäller...Sv:Skapa en sträng från en databas
Problemet är bara att jag inte får till den strängen.
Strängen skall se ut så här:
ARTIKELNUMMER:ARTIKELNAMN:ANTAL:PRIS,ARTIKELNUMMER:ARTIKELNAMN:ANTAL:PRIS
När jag skapa strängen så blir den så här:
ARTIKELNUMMER:ARTIKELNAMN:ANTAL:PRIS,ARTIKELNUMMER:ARTIKELNAMN:ANTAL:PRIS,
Det är kommatecknet på slutet som ställer till det.
//ChristofferSv: Skapa en sträng från en databas
str="ARTIKELNUMMER:ARTIKELNAMN:ANTAL:PRIS,ARTIKELNUMMER:ARTIKELNAMN:ANTAL:PRIS,"
str=Left(str,Len(str)-1)
Nu innehåller str hela strängen utom det sista kommatecknet.Sv:Skapa en sträng från en databas
sql = "SELECT * FROM bestallningar WHERE Order_id = '"&order_id&"'"
rs.Open sql, conn, 1, 3
Do until rs.EOF
Data = rs("Art_nr")&":"&rs("Produkt")&":"&rs("Antal")&":"&rs("Pris")*100&","
Data = Left(Data,Len(Data)-1)
rs.MoveNext
Loop
rs.CLOSE
conn.CLOSE
Set rs = nothing
Set conn = nothing
När jag sedan skriver
Response.Write Data
så är alla kommatecken borta.
Vad gör jag för fel?Sv: Skapa en sträng från en databas
Dim Data: Data=""
Do until rs.EOF
Data = Data&rs("Art_nr")&":"&rs("Produkt")&":"&rs("Antal")&":"&rs("Pris")*100&","
rs.MoveNext
Loop
Data = Left(Data,Len(Data)-1)
Du ska alltså första bygga upp Hela strängen och Sen ta bort sista kommatecknet.
Det du har gjort är att ta bort det varje gång det läggs in i loopen.
Har du flera poster med samma order_id? Känns som om dem ska vara unika, var för sig.
Sv:Skapa en sträng från en databas
Order_id är unikt för själva ordern, i den finns att antal artiklar som har unika ID:n.
Tack än en gång
//ChristofferSv: Skapa en sträng från en databas
Om du nu hämtar ut dem fyra fälten är det bättre att visa det i SELECT-frågan och skippa *.sql = "SELECT Art_Nr, Produkt, Antal, Pris FROM bestallningar WHERE Order_id = '"&order_id&"'"
Kan det finnas mer än siffror i order_id?
T ex: 12345AS