I am not sure.. why you are creating a NEW query...
This below.. should work..except..randRange(1,20).. can
have duplicates..a list value check in the loop should do it.
<cfscript>
aIdx=arrayNew(1);
for(i=1;i lte queryName.recordCount; i=i+1){
aIdx[i]=randRange(1,queryName.recordCount);
}
</cfscript>
<cfoutput>
<cfloop index="k" from="1" to="#arrayLen(aIdx)#">
#aIdx[k]# . #queryName.ColumnName[aIdx[k]]#<br>
</cfloop>
</cfoutput
Joe
> -----Original Message-----
> From: Christian Cantrell [mailto:[EMAIL PROTECTED]]
> Sent: Saturday, December 21, 2002 9:39 PM
> To: CF-Talk
> Subject: Re: Randomization of a cfquery
>
>
> It's not as easy as it seems. Here's a function that I believe will do
> the trick. I wrote it pretty quickly, so if you are going to use it,
> test it thoroughly. Just pass in a query object and it will return a
> new query object with the rows randomized. You can wrap it in a custom
> tag if you like, but it makes a good function in my opinion.
>
> <cfscript>
> function queryRandomize(toRandomize)
> {
> var size = toRandomize.recordcount;
> var cols = toRandomize.columnList;
> var colArray = listToArray(cols);
> var newQuery = queryNew(cols);
> var i = 0;
> var j = 0;
> var randomRow = 0;
>
> //
> // Create an array of integers that is the size of the record set.
> // We will draw on this array randomly and resize it dynamically.
> //
> var numberBank = arrayNew(1);
> for (i = 1; i neq size + 1; i = i + 1)
> {
> numberBank[i] = i;
> }
>
> queryAddRow(newQuery, size);
> for (i = 1; i neq (size + 1); i = i + 1)
> {
> randomRow = randRange(1, arrayLen(numberBank));
> for (j = 1; j neq (arrayLen(colArray) + 1); j = j + 1)
> {
> querySetCell(newQuery, colArray[j],
> toRandomize[colArray[j]][i], numberBank[randomRow]);
> }
> arrayDeleteAt(numberBank, randomRow);
> }
> return newQuery;
> }
> </cfscript>
>
> On Saturday, December 21, 2002, at 04:25 PM, David Jones wrote:
>
> > Does anyone have a custom tag that will take a regular query and
> > randomize
> > the results? I don't have to have a custom tag a database solution
> > would do
> > as well. Anything would help at this point. This seems like a simply
> > thing
> > to do. I am using Oracle for my backend so if anyone knows of a way
> > to do
> > it there that would be great too.
> >
> > Thanks in advance,
> >
> > Dave
> >
> >
> >
> >
> >
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription:
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
This list and all House of Fusion resources hosted by CFHosting.com. The place for
dependable ColdFusion Hosting.