2009-12-04 5 views
6

Je me demandais juste ce que la syntaxe est de faire une sélection db dans Zend Framework où deux valeurs sont vraies. Exemple: Je veux trouver si un utilisateur est déjà membre d'un groupe:Zend Framework: Comment faire une sélection DB avec plusieurs paramètres?

$userId = 1; 
$groupId = 2; 
$db = Zend_Db_Table::getDefaultAdapter(); 
$select = new Zend_Db_Select($db); 
$select->from('group_members') 
    ->where('user_id = ?', $userId); //Right here. What do I do about group_id? 
$result = $select->query(); 
$resultSet = $result->fetchAll(); 

Répondre

15

Vous pouvez utiliser plusieurs clauses where qui seront ANDED ensemble par défaut:

$select->from('group_members') 
    ->where('user_id = ?', $userId) 
    ->where('group_id = ?', $groupId); 
+0

Je reçois une exception en essayant de faire le premier exemple: SQLSTATE [21000]: Violation de la cardinalité: 1241 Opérande devrait contenir 1 colonne (s) – Andrew

+0

Etrange, j'ai utilisé les deux techniques dans le passé contre MySQL en utilisant l'adaptateur PDO . Je suppose que je vais devoir mettre en place une table pour tester. Il se peut que votre type de base de données ou votre adaptateur ne prennent pas en charge la syntaxe que j'ai suggérée. –

+0

Quelle combinaison de base de données/adaptateur utilisez-vous? –

4

Juste au cas où quelqu'un veut d'ajouter une condition OU à une sélection avec plusieurs params

$select = $db->select() 
     ->from('products', 
       array('product_id', 'product_name', 'price')) 
     ->where('price < ?', $minimumPrice) 
     ->orWhere('price > ?', $maximumPrice); 

pour plus de vue le manuel Sélectionnez Zend Docs: zend.db.select

Questions connexes