If what you are looking for is a list of the events that the client
attended, you can do this in 1 query:
<cfquery name="getClients" datasource="myDSN">
        SELECT event.*
        FROM events, eventAttendance, client
        where client.clientID = <cfqueryparam value="#cookie.userid#"
cfsqltype="cf_sql_integer">
        and client.clientID = eventAttendance.clientID
        and eventAttendance.eventID = events.ID
</cfquery>

If 

-----Original Message-----
From: Adam Parker [mailto:[email protected]] 
Sent: Wednesday, February 25, 2009 7:18 AM
To: cf-newbie
Subject: Re: Translate from Classic ASP to CF


So now, maybe I have confused myself with this situation.  I tried using the
same flow control as the previous developer, but I don't think it works very
well.  In the big picture of things, I am associating clients with the
events they have attended.  There are three MS Access tables involved with
the data:

EventAttendance
-clientID
-eventID

Client
-clientID
-firstname
-lastname

Events
-id

Events relates to EventAttendance through events.id=eventAttendace.eventID
Client relates to EventAttendance through
client.clientID=eventAttendance.clientID

The user logs in and his userid is captured and set with a cookie.  Next, I
use a query to find all events that this user has attended:

<cfset cookie.userid="8443">

<cfquery name="getClients" datasource="myDSN">
        SELECT eventAttendance.*, client.*
        FROM eventAttendance INNER JOIN client ON eventAttendance.clientID =
client.clientID
        where client.clientID=#cookie.userid#
</cfquery>

As suggested, I have used an array to collect and make a list of all the
events attended associated with the userid:

<cfif getClients.recordCount>
        <cfset clientPreReg = valueList(getClients.eventID)>
        <cfset clientPreRegArray = listToArray(clientPreReg)>
<cfelse>
        <cfset clientPreReg = ",">
</cfif> 

Now, I scratch my head on creating a query that gets the events based on the
event id.  I have tried:

<cfloop index="i" array="clientPreReg">
        <cfoutput>#i#<br /></cfoutput>
</cfloop>

<cfquery name="getEvents" datasource="myDSN">
        SELECT * from events
        where id= #i#
</cfquery>

ClientPreReg is collecting the eventID in a list, now I need to use the
individual elements in the list to compare its value to events.id

I thought looping through the array and getting each element was the way.  I
feel like I'm on the right track, but, obviously, doing something wrong.

I also thought querying all the data in a massive query would solve the
problem too, but I need to tackle this one step at a time.

Thanks, again, for your wisdom.  (As a sidenote, I am querying all records
and omitting cfqueryparam at this time just for testing.)





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f

Archive: 
http://www.houseoffusion.com/groups/cf-newbie/message.cfm/messageid:4402
Subscription: http://www.houseoffusion.com/groups/cf-newbie/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.15

Reply via email to