需要按顺序从数据库中获取所以我可以获得密钥作为feched表的主键(或者我指出的select中的任何列)。 实施例
select id, name from account;
array(
0 => array(id => 12345, name => Some Dude),
1 => array(id => 12356, name => Other Dude)
)
我需要的是
array(
12345 => array(id => 12345, name => Some Dude),
12356 => array(id => 12356, name => Other Dude)
)
谢谢!
答案 0 :(得分:0)
这将从您的表中获取所有数据,包括ID
$dbtbl = new Application_Model_DbTable_table(); //your table name
$var = $dbtbl->fetchAll($dbtbl->select());
答案 1 :(得分:0)
假设您使用的是Zend Dbtable。您只需要从表中获取数据即可 循环通过它。
在你的控制器中。
$myTable = new new Application_Model_DbTable_Account();
$this->view->accounts = $myTable->fetchAll();
and in your html view
just display it like this.
<table>
<tr>
<th>Id Nr.</th>
<th>Name</th>
</tr>
<?php foreach($this->accounts as $acc) : ?>
<tr>
<td><?php echo $this->escape($acc->id);?></td>
<td><?php echo $this->escape($acc->name);?></td>
>/tr>
<?php endforeach; ?>
</table
答案 2 :(得分:0)
如果您没有绑定Zend_Db_Table,那么您可以使用更直接的方法并获得对查询的更多控制。
$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select()->from('users',array('id', 'login')); //SELECT id, login FROM users
$result = $db->fetchAssoc($select); //this is where magic happens
如果只能获得数组,那么可以使用此函数对其进行转换:
/**
* Transforms associative array to 'id'=>$column (or 'id'=>array(columns))
* @param array $array - associative array
* @param string|array $value - which column use as value (or array of columns)
* @param string - OPTIONAL which column use as key
* @return type array -
*/
function transformTable($array, $col, $key = 'id') {
$tmp = array();
if (is_array($col)) {
foreach ($array as $item) {
foreach ($col as $value) {
$tmp[$item[$key]][$value] = $item[$value];
}
}
} else {
foreach ($array as $item) {
$tmp[$item[$key]] = $item[$col];
}
}
return $tmp;
}