Je rencontre un problème lorsque je construis une requête ORM basée sur plusieurs conditions à partir d'un $ _POST. La requête finale semble très bien et renvoie les enregistrements dans une requête SQL directe (phpmyadmin) mais dans mon application ne renvoie aucun enregistrement. voici le code ...Kohana ORM count_all() fonctionnant mais find_all() n'est pas
$records = ORM::factory('record')->where(array('date >='=>$_POST['fromdate'],'date <='=>$_POST['todate']));
if ($_POST['agent'] != '0') $records->where(array('ccp_id'=>$_POST['agent']));
if ($_POST['supervisor'] != '0') {
$ccps = ORM::factory('employee')->where(array('supervisor_id'=>$_POST['supervisor'],'active'=>'1'))->find_all();
foreach ($ccps as $ccp) {
$agents[] = $ccp->id;
}
// echo kohana::debug($agents);
$records->in('ccp_id',$agents);
}
if ($_POST['lead'] != '0') $records->where(array('lead_id'=>$_POST['lead']));
if ($_POST['reasons'] != '[]') {
$reasons = explode(',',str_replace(array('[',']','"'),'',$_POST['reasons']));
$records->in('reason_id',$reasons);
}
$records->find_all();
$ records-> loaded est faux. Si je change le find_all() avec count_all() j'obtiens un compte précis.
des échantillons de données dans le $ _POST Je cette requête dans $ Records-> last_query()
SELECT `records`.*
FROM (`records`)
WHERE `date` >= '2010-10-10'
AND `date` <= '2010-11-09'
AND `ccp_id` IN ('E128092','E128093','E124874','E124414','E129056','E137678','E078952','E112701','E084457','E098047','E099221','E001131','E120892')
AND `lead_id` = 'E110873'
AND `reason_id` IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
ORDER BY `records`.`id` ASC
cela renvoie 4 enregistrements dans phpmyadmin et (4) pour count_all(). Je ne comprends pas pourquoi cela se passe. Toute idée serait utile. Je vous remercie.
cela a fonctionné parfaitement. Je vous remercie. Je tirais mes cheveux par-dessus. – DewBoy3d