Thanks in advance for any help provided. Apologies for no code blocks.

I want to write my find such that it can construct a query like:

SELECT `ReviewerActivityStatus`.`id`,
`ReviewerActivityStatus`.`reviewer_id`,
`ReviewerActivityStatus`.`date`, `ReviewerActivityStatus`.`status`,
`ReviewerActivityStatus`.`comment`, `Reviewer`.`id`,
`Reviewer`.`briefing_id` FROM `reviewer_activity_statuses` AS
`ReviewerActivityStatus` LEFT JOIN `reviewers` AS `Reviewer` ON
(`ReviewerActivityStatus`.`reviewer_id` = `Reviewer`.`id`) WHERE
`reviewer_id` in (6,8) AND `status` = 1


Notice no single quotes in the parenthesis of the in clause...

But when I do:

$result = $this->ReviewerActivityStatus->find('all',array
('conditions'=>array('reviewer_id IN (?)'=>$keys,'status'=>'1')));

it constructs the following:

SELECT `ReviewerActivityStatus`.`id`,
`ReviewerActivityStatus`.`reviewer_id`,
`ReviewerActivityStatus`.`date`, `ReviewerActivityStatus`.`status`,
`ReviewerActivityStatus`.`comment`, `Reviewer`.`id`,
`Reviewer`.`briefing_id` FROM `reviewer_activity_statuses` AS
`ReviewerActivityStatus` LEFT JOIN `reviewers` AS `Reviewer` ON
(`ReviewerActivityStatus`.`reviewer_id` = `Reviewer`.`id`) WHERE
`reviewer_id` in ('6,8') AND `status` = 1

Notice the single quotes in the parenthesis of the in clause around
the value for $key which is just a string.

My whole code looks like:

        function checkApprovalStatus($reviewerid = null) {
                echo("<!--");
                //we can find out the briefing ID from the reviewer table, 
check it
first
                $result = $this->Reviewers->find('all',array('conditions'=>array
('id'=>$reviewerid)));
                //find the other reviewers with the same briefing id
                $briefing_id = $result[0]['Reviewers']['briefing_id'];
                $result = $this->Reviewers->find('all',array('conditions'=>array
('briefing_id'=>$briefing_id),'order'=>'id ASC'));
                $reviwercount = count($result);
                $keys = "";
                foreach($result as $reviewers)
                {
                        $keys .= $reviewers['Reviewers']['id'].", ";
                }
                $keys = substr_replace($keys,"",-2);
                //now let's find these reviewers and if they have a
record with a status value of 1
                $result = $this->ReviewerActivityStatus->find('all',array
('conditions'=>array('reviewer_id IN (?)'=>$keys,'status'=>'1')));

                $approvalcount = count($result);
                //if there were as many approvals as reviewers, update the 
briefing
status field
                echo("reviwer and approval counts: $reviwercount == 
$approvalcount\r
\n");
                if($reviwercount == $approvalcount)
                {
                        echo('updating the briefing');
                        //find the briefing record
                        $data = 
$this->Briefing->find('all',array('conditions'=>array('id'=>
$briefing_id)));
                        var_dump($data);
                       //TODO: modify the resulting array and save it.
                }
                echo("-->");
        }

Again thanks for any replies!

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to