Toon posts:

Random script zonder herhaling..

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe doe ik dit...
Ik wil graag een script dat random een aantal foto`s achter elkaar laat zien maar nooit eentje die geweest is zonder dat de laatste is geweest..

oftewel een script maakt een lijstje met een random volgorde die gaat hij één voor één af tot het laatste plaatje... dus heeft hij nooit (in deze sessie) 2X achterelkaar het zelfde plaatje... dit lijstje moet ook bewaard blijven zodat het bij een formsubmit gebruikt kan worden.

Ik wil het script gebruiken in een hot_or_not situatie ik heb alleen nog niet zo veel foto`s dus dan zou je elke keer dezelfde foto`s krijgen terwijl je dit met mijn bovenstaande uitleg uitstelt! (hij laat pas weer de zelfde foto zien als het lijstje is afgewerkt)

Dit alles maken we in asp javascript, heeft iemand tips of een vorbeeld hoe dit gerealiseerd kan worden?

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

welke ervaring heb je met de verschillende talen?

Verwijderd

Topicstarter
Nou.. we schrijven dus de asp in javascript en niet in VB dus uitgaande van javascript

Verwijderd

Het kan wel, maar wordt wel redelijk server belastend. Je zou het op een volgende manier kunnen oplossen.

Stop een string met alle ID's van al getoonde foto's, gescheiden door komma's, in een sessie variabele. Voor iedere pagina voer je een query uit waarin je random een record uit de database haalt, maar met in de where conditie het volgende:
code:
1
strSQL = strSQL + "WHERE PhotoID NOT IN [" & Session("strSeenPhotoIDs") & "]"

Hoe je een random record kun kiezen is te lezen in het volgende artikel:
http://www.4guysfromrolla.com/webtech/072799-1.shtml

Enjoy :)

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

wat ik heb gedaan voor een advertentiesysteem:
Ik heb een tabel adviews. Daaraan voeg ik toe welke advertenties de gebruiker recent heeft gezien.
Vervolgens is mijn query:
(even snel uit mijn hoofd, ik heb het origineel hier niet bij de hand)

SELECT * FROM advertenties
FROM advertentie RIGHT JOIN adviews
ON advertentie.Id = addviews.AdId
WHERE AdId.UserId = $user
ORDER BY addviews.datumtijd ASC

Op Vervolgens kies ik willekeurig uit de bovenste tien.

In een latere versie had ik het nog anders aangepakt:
Een adverteerder kon een voorkeur kopen (standaard is 100, 200 is 10voudige prijs).
Per ad hou ik bij hoevaak 'ie is gezien. Bij het selecteren deel ik de viewcount door de voorkeur. Dat getal vermenigvuldig ik met een willekeurig getal. Daar sorteer ik op.
Op die manier zijn de advertenties willekeurig, en toch komen advertenties van goedbetalende adverteerders vaker naar voren.
Maar dat is waarschijnlijk niet interresant voor jou... (8>

edit:

wat jij natuurlijk kan doen, is het id van het laatst getoonde plaatje in een koekie of een sessie stoppen, en vervolgens met de volgende query loslaten:

SELECT * FROM fotootjes WHERE id != $laatsteFoto

Localhost, sweet localhost


Verwijderd

Topicstarter
Dat onderste kan alleen als je dus altijd dezelfde volgorde aanhoud en dat betekend dat als je weer op de site gaat kijken dat je eerst weer door alle plaatjes heen moet die je de vorige keer al hebt gezien, dat is bij mijn idee ook wel zo maar dan komen ze weer in een andere volgorde en heb je een grotere kans dat alle plaatjes een keer aan je neus voorbij gaan...
Pagina: 1