【发布时间】:2010-11-13 20:56:53
【问题描述】:
(解决了!谢谢大家的建议=)
$contact = $db->select('*')
->from(array('c' => 'contact'), array('name', 'id'))
->join(array('d' => 'detail'), 'c.id = d.contact_id', array('d.type'))
->where('c.company_id = ?', $defaultNamespace->userdata['company_id'])
->where('c.effective
->where('c.expire > ?', date("Y-m-d H:i:s"))
->order('c.effective DESC');
$stmt = $db->query($contact);
$contact = $stmt->fetchAll();
foreach($contact as &$point){
print_r($point);
}
输出:
Array ([name] => John Doe [id] => 1 [type] => Skype) Array ([name] => John Doe [id] => 1 [type] => MSN)
我想要:
数组 ([name] => John Doe [id] => 1 [point] => 数组(Skype, MSN))
【问题讨论】:
-
您将无法让 zend 为您生成该子数组。我猜你能做的最好的事情是:array( [name] => John Doe, [id] => 1, [point1] => Skype, [point2] => MSN, [point3] => ' ');您可以通过将详细信息表连接到联系表几次来做到这一点。或者循环遍历结果并进行子调用,但我猜你会喜欢在数据库中一次性完成。
-
你说你解决了。您应该发布解决方案并接受它作为答案。这有助于使 Stack Overflow 变得有用。
标签: php mysql zend-framework join