Bonjour à tous,
J'utilise depuis peu le framework Zend, et j'ai une erreur que j'arrive absolument pas à résoudre. J'ai un accès à une base de donnée (qui marche) mais j'ai un problème de syntaxe dans ma clause WHERE apparement.
Je dispose de trois tables : formation, formateur et competence_formateur et je veux récupérer toutes les formations (suivant un paramètre de type rowformation (héritant de Zend_Db_Table_Row_Abstract)) et pour chaque formation je veux les infos des formateurs qui disposent des compétences.
J'ai effectuée la requête suivante:
rowformation est donnée par l'utilisateur dans sa recherche, et il se peut que certains paramètres n'existent pas, par exemple le code de la formation. La recherche peut se faire selon les critères code, sujet et categorie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 $select = $this->select()->setIntegrityCheck(false) ->from(array('F' => 'formation','id_formation', 'code', 'sujet', 'categorie', 'duree')) ->join(array('cf' => 'competence_formateur', 'F.id_formation = cf.fk.formation','fk_formation')) ->join(array('f' => 'formateur', 'f.id_formateur = cf.fk_formateur', 'id_formateur','nom','prenom', 'fonction', 'externe')) ->where('f.externe = false'); if(isset($rowformation->categorie)) { $select->where('F.categorie LIKE %?%', $rowformation->categorie); } if(isset($rowformation->code)) { $select->where('F.code = ?', $rowformation->code); } if(isset($rowformation->sujet)) { $select->where('F.sujet = ?', $rowformation->sujet); } $select-> order('F.categorie'); return $this->fetchAll($select)->toArray();
Le but donc de mes isSet et de vérifier si l'objet existe et si il existe alors j'ajoute la clause WHERE correspondante. Mais je reçois l'erreur suivante:
Message: SQLSTATE[42601]: Syntax error: 7 ERREUR: erreur de syntaxe sur ou près de « WHERE » at character 127
Qu'est ce qui ne va pas dans mon WHERE ?
Merci par avance pour votre réponse,
Lamary
Partager