2011-09-22 2 views
1

Je développe une application web en utilisant zend framework dans lequel je veux permettre à mes utilisateurs de rechercher d'autres utilisateurs en utilisant la fonction zend fetchAll. Mais son retour colonne complète et je ne veux que plusieurs valeurs. Voici mon exemple de code:fetchAll déclaration pour retourner seulement quelques colonnes

$query=$table->select('id')->where("name LIKE ?",'%'.$str.'%')->limit(10); 
$model=new Application_Model_Users(); 
$rowset=$model->getDbTable()->fetchAll($query)->toArray(); 

Je souhaite obtenir uniquement le nom et d'autres colonnes. Son retour toutes les colonnes dont le mot de passe too.:p

Répondre

7
$select = $db->select(); 

$select->from('some_tbl', array('username' => 'name')); // SELECT name AS username FROM some_tbl 
$select->from('some_tbl', 'name');      // SELECT name FROM some_tbl 
$select->from('some_tbl', array('name'));    // SELECT name FROM some_tbl 

$select->from('some_tbl', '*'); // SELECT * FROM some_tbl 
$select->from('some_tbl');  // SELECT * FROM some_tbl 

// in case of joins, to disable column selection for a table 
$select->from('some_tbl', array()); 
+0

La syntaxe des colonnes que j'ai posté est plus facile et plus claire lorsque vous travaillez Zend_Db_Table –

1
// Create the Zend_Db_Select object 
$select = $db->select(); 

// Add a FROM clause 
$select->from(...specify table and columns...) 

// Add a WHERE clause 
$select->where(...specify search criteria...) 

// Add an ORDER BY clause 
$select->order(...specify sorting criteria...); 

Building Select queries - Zend Framework programming documentation

4

Vous pouvez ajouter un columns appel chercher uniquement des colonnes spécifiques. Dans ce cas, nous demandons les colonnes id et nom:

$columns = array('id', 'name'); 
$query = $table->select()->columns($columns)->where("name LIKE ?",'%'.$str.'%')->limit(10); 
+0

Je pense, cela est la bonne solution. –

Questions connexes