2012-03-25 5 views
2

Wie kann ich eine Abfrage auf bestimmte Spalten bei der Verwendung von Zend_Db_Table_Abstract begrenzen?Begrenzen Sie eine Abfrage Rückgabe Spalten mit Zend_Db_Table_Abstract

(getDbTable() unten gibt ein Zend_Db_Table_Abstract Objekt)

$resultSet = $this->getDbTable()->fetchAll(
     $this->getDbTable()->select() 
     ->where('forgienKey = \'' . $forgienKey . '\'') 
     ->order("'id' ASC") 
    ); 

Ich brauche nur die ID-Spalte zurückgegeben, aber die gesamte Zeile zurückgeführt wird. Danke für jede Hilfe!

Antwort

3

Wie in the docs erklärte:

$select = $table->select(); 
$select->from($table, array('bug_id', 'bug_description')) 
     ->where('bug_status = ?', 'NEW'); 

$rows = $table->fetchAll($select); 
So

, für Sie:

$resultSet = $this->getDbTable()->fetchAll(
     $this->getDbTable()->select() 
     ->from($this->getDbTable(), array('id')) 
     ->where('forgienKey = \'' . $forgienKey . '\'') 
     ->order("'id' ASC") 
); 
+0

Das hat funktioniert, danke! – ktamlyn

1

Bitte versuchen Sie dieses

$resultSet = $this->getDbTable()->fetchAll(
     $this->getDbTable()->select() 
     ->columns('id') 
     ->where('forgienKey = \'' . $forgienKey . '\'') 
     ->order("'id' ASC") 
); 

EDIT

Überprüfen Sie den Link

http://framework.zend.com/manual/en/zend.db.select.html

+0

No go. Deshalb habe ich die Frage gepostet, weil das nicht funktioniert. Das Zend-Handbuch besagt, dass Sie Spalten angeben können, aber nicht wie. – ktamlyn

+1

gibt es ein ';' in Zeile 3, wo es nicht sollte – Shikiryu

+0

Das Semikolon ist nicht das Problem. Ihre Antwort sieht so aus, als ob sie funktionieren sollte, aber die generierte Abfrage verursacht einen Fehler für mich, wo die Antwort, die verwendet -> von nicht. Ich glaube, dass es der Kontext von Zend_Db_Table_Abstract ist, der das Problem verursacht. – ktamlyn

Verwandte Themen