[PHP / SQL]Random select meerdere pagina's

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op een website wil ik een overzicht plaatsen van alle items in een tabel in een random volgorde. Dit is geen probleem met:
PHP:
1
SELECT * FROM tabel ORDER BY rand()


Alleen nu worden er ruim 100 items getoond op de pagina. Dus wil ik graag de items verdelen over meerdere pagina's dmv paginering. Het probleem is nu echter dat bij elke aanroep van de pagina de Query opnieuw wordt aangeroepen waardoor het mogelijk is dat op verschillende pagina's dezelfde items worden getoond. Wie weet hier een oplossing voor?

Kort gezegd, items random organiseren op vervolg pagina's mogen geen items voorkomen die reeds naar voren zijn gekomen op een andere pagina.

Acties:
  • 0 Henk 'm!

  • TRON
  • Registratie: September 2001
  • Laatst online: 09:03
Wat je zou kunnen doen, is de volgorde van de resultaten van de eerste randomize opslaan in een array en deze vervolgens in een session of database planten, zodat je vanaf daar kan verder werken.

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


Acties:
  • 0 Henk 'm!

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 11-02 12:38
Moet het bij elke bezoeker anders zijn? anders kan je een veld aanmaken en dan:

update table set 'randnr' = rand();

doen en dan sorteren op randnr :)

Acties:
  • 0 Henk 'm!

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 07:57
Plaats je resultaten in een session... en als er nog niets in je session zit voer je die query dus uit.

Acties:
  • 0 Henk 'm!

Verwijderd

Martink schreef op vrijdag 20 mei 2005 @ 09:12:
Moet het bij elke bezoeker anders zijn? anders kan je een veld aanmaken en dan:

update table set 'randnr' = rand();

doen en dan sorteren op randnr :)
Of je geeft elke gebruiker een eigen seed, welke je meegeeft als variabele in een session of via GET parameters oid. De seed die een gebruiker krijgt neem je dan wel willekeurig.

laat maar, dat zou je een hele trage query opleveren

[ Voor 9% gewijzigd door Verwijderd op 20-05-2005 09:26 ]