Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut à tous! j'ai une requete qui est censée me rendre des éléments de mes deux tables. Le problème c'est que j'introduis une clause de tri de données "where" qui n'est pas prise en compte. quelqu'un a t-il une idée?
$select = $table->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
$select->setIntegrityCheck(false)
->from($table,array('id','name'))
->where('t_clients_cstm.pmvendeur_c = ?', 'vendeur')
->join('t_clients_cstm', 't_clients_cstm.id_c = t_clients.id');
$row = $table->fetchAll($select);
return $row;
en fait il me sort tous mes éléments sans tenir compte du "where". l'ai-je mal placé?qu'ai-je mal fais?
à tous merci d'avance...
Hors ligne
normalement on écrirait
$select = $table->select(Zend_Db_Table::SELECT_WITH_FROM_PART); $select->setIntegrityCheck(false) ->from($table,array('id','name')) ->join('t_clients_cstm', 't_clients_cstm.id_c = t_clients.id') ->where('t_clients_cstm.pmvendeur_c = ?', 'vendeur'); $row = $table->fetchAll($select); return $row;
car le where ne peut s'appliquer à la requête
$select = $table->select(Zend_Db_Table::SELECT_WITH_FROM_PART); $select->setIntegrityCheck(false) ->from($table,array('id','name')) ->where('t_clients_cstm.pmvendeur_c = ?', 'vendeur');
ça n'a pas de sens
mais je ne sais pas si ça a une influence sur ZF
A+JYT
Hors ligne
salut et merci en fait je ne saisi pas ta solution si tu demande de placer le "where" après le "join" je l'ai fais mais rien...tu peux être plus clair stp?
Hors ligne
non je te dis que je ne pense pas que ce soit ça le problème car ZF est sioux et il corrige nos petites erreurs
mais ce que tu faisais c'est le where sur un champs qui n'est pas dans la requête au moment ou tu le fait puis tu ajoute le join qui mets le champs
je disais donc que pour être propre et logique mieux vaut ajouter la table jointe avant de faire un where dessus
pour t'en sortir tu fais
echo $select->toString();
tu exécute
ça va t'afficher ta requête
tu la copie et la colle dans ton outil SQL
tu vas sûrement trouver ce qui ne vas pas dedans
il te restera à corriger ta requête Zend
A+JYT
Hors ligne
SELECT id,name from t_clients as A,t_clients_cstm as B where A.id = B.id_c and B.pmvendeur='vendeur';
voilà ce que je veux faire et voilà ce que moi je fais
$select = $table->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
$select->setIntegrityCheck(false)
->from($table,array('id','name'))
->join('t_clients_cstm', 't_clients.id = t_clients_cstm.id_c','pmvendeur')
->where('t_clients_cstm.pmvendeur = ?','vendeur' );
$row = $table->fetchAll($select);
return $row;
et pour
echo -> $select->toString
voici l'erreur
Unrecognized method 'toString()'
Hors ligne
et juste un echo $select tu donnes quoi ?
Hors ligne
en fait echo $select ne me retourne rien...
Hors ligne
sevy a écrit:
...
Code:
echo -> $select->toStringvoici l'erreur
Unrecognized method 'toString()'
c'est .
echo $select->__toString
et non .
echo -> $select->toString
http://framework.zend.com/apidoc/1.10/Z … __toString
A+JYT
Dernière modification par sekaijin (06-10-2010 15:20:35)
Hors ligne