Randomsökning med CDML (Webcompanion)

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1

Jag har ett jobbigt problem.

Jag ska göra en sida som slumpar fram en post från en databas. Men den får inte slumpa fram vilken som helst. Det får bara vara en av de poster som jag har kryssat i att de skall vara de som är giltiga alternativ.

I Filemaker kan jag åstadkomma samma sak med en dubbelsökning, men det verkar inte finnas någon vettig lösning för CDML. -Findany ger mig en sökning på ALLA poster i databasen, inte bara de som jag vill skall vara giltiga.

För visst kan man inte nästla InlineActions för att efterlikna en dubbelsökning?

Några idéer?

  • Oregistrerad
  • 2002-02-15 18:01

Med Lasso hade jag först sökt fram de poster som ska slumpas för att få reda på antalet poster och sedan skapat ett heltal mellan 1 och CurrentFoundCount (mha random-funktionen) som parameter till SkipRecords-taggen i kombination med MaxRecords=1 i en ny sökning.

Tror jag fick med allt i en mening:-)

Använder man CDML behöver man nog ta hjälp av JavaScript för att klara av de matematiska beräkningarna. Ett alternativ kan vara att fuska och göra beräkningarna redan i FileMaker. Med en självrelation vet man antalet slumpposter och kan beräkna ett sluptal i intervallet som sedan kan läsas av från webben.

Eller det kanske räcker med att slumpposterna har ett ickelagrat slumptal som man kan sortera på från webben och där bara visa 1:a posten men det riskerar att bli långsamt om man har många slumpposter i databasen.

Det var ett tag sedan jag stötte på problemet, men jag tror att jag hade ett beräkningsfät i FM. Beräkningen bestod i att returnera ett slumptal och den sparades inte. Sedan så bad jag om _en_ post från den funna uppsättningen med sortering på det fältet. I och med att man sorterar på det fältet så uppdateras värdet i fältet och man får då en ny uppsättning slumptal och de hamnar i en annan ordning än tidigare. Du bör alltså kunna göra både och.

Om du använder Lasso så finns det även en annan teknik som beskrivs här:
http://support.blueworld.com/article.lasso?id=3302000420

Lycka till!

/Ola

Tack för tipsen

Tyvärr så använder vi inte Lasso, men jag ska försöka använde de idéer som ni har.

1
Bevaka tråden