Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Discussion fermée
Bonjour,
j'ai besoin d'aide pour placer 2 parenthésés : ouvrir '(' et fermer ')'.
Bref en apparence rien de bien compliquer.
La requête en SQL :
SELECT * FROM vw_my_asn_header WHERE username = 'toto' AND (shipment_number LIKE '20151106052811' OR shipment_number LIKE '20151110053250' OR shipment_number LIKE '20151116054359') ORDER BY message_id ASC
En Zend :
public function searchSitesDeliveries($username, Search $search) { $select = $this->tableGateway->getSql()->select(); array(new Predicate\Expression('username = ?', $username)),Predicate\PredicateSet::COMBINED_BY_AND); if (!empty($search->get_shipment_number())) { $valeur = $search->get_shipment_number(); if(is_array($valeur)) { $valeur = array_unique($valeur); foreach ($valeur as $key => $value) { $predicate_set->orPredicate(new Predicate\Like('shipment_number', '%'.$value.'%')); } } else { $predicate_set->andPredicate(new Predicate\Like('shipment_number', '%'.$valeur.'%')); } } $select->where($predicate_set); $resultSet = $this->tableGateway->selectWith($select); return $resultSet; }
Le résultat du code zend :
["queryString"] => string(181) " SELECT vw_my_asn_header FROM vw_my_asn_header WHERE (username = :where1 AND shipment_number LIKE :where2 OR shipment_number LIKE :where3 OR shipment_number LIKE :where4)"
Mon problème vient que "AND" doit être suivi de "(" et finir derrière le "where4" par '))'.
Bref si quelqu'un si connait dans les Predicate de Zend, un coup de main n'est pas de refus pour ce #@!.
Merci
Dernière modification par epcgroupe (29-01-2016 11:29:43)
Hors ligne
Sujet dupliqué et fermé. Continuer la discussion sur http://www.z-f.fr/forum/viewtopic.php?id=9500
Hors ligne
Discussion fermée
Pages: 1