Avatar billede Slettet bruger
28. august 2011 - 23:46 Der er 3 kommentarer og
1 løsning

Cookies: Søg og ændre i tilføjne linier

Hej eksperter.

Jeg kender til det mest basale i cookies, men vil gerne benytte dem mere og mere som lokale infolagring på brugerens computer.

Jeg har en database hvorfra jeg trækker 2 ting fra hver udtrukne række; et id, en tekst og et tal.

Jeg vil derfor gerne oprette en cookie hvor der for hver række i databaseudtrækket bliver tilføjet en linie i cookien med id, tekst og tallet.
DOG med dét kriterie, at id'et og teksten ikke allerede findes i cookien. I dét tilfælde, skal den plusse det nuværende tal med det nye.

Umiddelbart tænker jeg, at cookien ser således ud:

[Tekst]
[Tal]

Altså:
Hej
63

Lille lotte
19

Højhuset på kajen
18763


Dér har den tilføjet de 3 første rækker i databaseudtrækket, og næste ting er så, at række 4 kommer med følgende info:
tekst: "Lille lotte", tal: 58

Da teksten "Lille lotte" allerede findes på en linie i cookien, skal den altså ændre på den nuværende linie, istedet for, at tilføje en ny.

Så nu skal cookien se således ud:

Hej
63

Lille lotte
77

Højhuset på kajen
18763


Jeg kan ikke lige andre måder at gøre det på end med cookies, så derfor er det denne fremgangsmåde jeg tænker er bedst :)

Hvordan gør jeg?:)
(Håber, at det er bare nogenlunde forståeligt)
Avatar billede Slettet bruger
31. august 2011 - 14:10 #1
Slet ingen ? :/
Avatar billede keenkbh Nybegynder
01. september 2011 - 08:59 #2
Ville det ikke være en idé at ligge værdierne i et dictionary eller lignende i stedet, mens du henter rækker fra db?

På den måde kan du få plusset tallene, og så ligge data i cookie efter database gennemløb.

F.eks.:

Dim _dictionary : Set _dictionary = Server.CreateObject("Scripting.Dictionary")

'... start read af databaserækker...

If _dictionary.Exists( [rækkens tekstfelt : f.eks. "Lille Lotte"] ) Then
  _dictionary.Item( [rækkens tekstfelt : f.eks. "Lille Lotte"] ) = _dictionary.Item( [rækkens tekstfelt : f.eks. "Lille Lotte"] ) + [rækkens talværdi : f.eks. 18]
Else
  _dictionary.Add [rækkens tekstfelt : f.eks. "Lille Lotte"], [rækkens talværdi : f.eks. 18]
End If

'... slut read af databaserækker...

'... iterer over rækker i dictionary og skriv til cookie...
Dim _keys : _keys = _dictionary.Keys
For i = 0 To _dictionary.Count - 1
  '...Skriv værdier til cookie...
  _dictionary.Item(_keys(i)) 'Tal værdien
  _keys(i) 'Teksten
Next

Nu er det godt nok et stykke tid siden jeg har siddet med ASP, så jeg kan ikke garantere for, at alt er 100% korrekt, men det er da et forslag til en løsning... :)
Avatar billede Slettet bruger
01. september 2011 - 10:48 #3
Jeg anede slet ikke mulighederne for et dictionary! :)
Det kan klart bruges, både til denne funktion, men også til en anden funktion som jeg har gået og syslet med! :)

Jeg siger mange tak for hjælpen, smid gerne et svar :)
Avatar billede keenkbh Nybegynder
01. september 2011 - 15:38 #4
Det var godt at høre... :)

Hermed et svar, og fortsat god fornøjelse med udviklingen... :)
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