2010-04-28 5 views
1

Je cherche à exécuter cette instruction via Zend Framework. Si je comprends bien, je peux utiliser Zend_Db_Select. Est-il possible d'utiliser Zend_Db_Table?Zend Framework Multiple Table Query

Trois tables: les classes, les étudiants et class_students

select classes.name, students.student_id, students.fname, students.lname des étudiants, des classes, class_students où class_students.student_id = students.student_id ET class_students. class_id = classes.class_id;

Répondre

2

oui, c'est possible - Zend_Db_Table vous fournit une interface pour exécuter une variété d'opérations sur une table. Par exemple, compte tenu de la sélection multiple de table que vous souhaitez effectuer, et en supposant que vous avez votre adaptateur db correctement configuré, on peut se retrouver avec quelque chose comme ce qui suit:

$table = new Model_DbTable_Classes(); // which extends Zend_Db_Table_Abstract 
$select = $table->select()->setIntegrityCheck(false); 
$select->join('class_students', 'class_students.class_id = classes.class_id') 
     ->join('students', 'student.student_id = class_students.student_id') 
     ->where('classes.class_id = ?', 1) 
     ->where('student.student_id = ?', 10); 

$result = $table->fetchAll($select); 

print_r($result->toArray()); 

Pour ce cas particulier, je ne voudrais pas utiliser le Zend_Db_Table cependant, j'ai tendance à utiliser Zend_Db_Table quand j'ai juste besoin d'agir sur une seule table. En ce qui concerne les sélections de tables multiples, je préfère aller avec db select, ou structurer ma requête old-school-fashioned (chaîne SQL), et la récupérer en utilisant mon objet db.

Hope it helps :)

M.