Zend_DB将结果连接到数组中?

时间:2010-11-13 20:56:53

标签: php mysql zend-framework join

(解决了!谢谢你们的建议=)

$ 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<?',date(“Y-m-d H:i:s”))
                      - > 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);

          }

输出:

数组([名称] => John Doe [id] => 1 [type] => Skype)数组([name] => John Doe [id] => 1 [type] =&gt ; MSN)

我想:

数组([name] => John Doe [id] => 1 [point] =>数组(Skype,MSN))

2 个答案:

答案 0 :(得分:0)

您可以使用自定义Zend_Db_Select类来完成此操作。该类将使用一些 cols并使用GROUP CONCAT分隔符对它们进行爆炸,你将在查询中使用group concat;)这是我能想到的唯一解决方案;)

答案 1 :(得分:-1)

在mySQL中,您可以执行SELECT id, name, GROUP_CONCAT(type) FROM contact WHERE id = 3 GROUP BY id, name, type;

之类的操作

不确定它会对你有用,但你可以尝试一下。