如何计算行zend框架?

时间:2011-05-19 20:48:23

标签: php database zend-framework

嗨我正在尝试计算行数,但到目前为止没有运气也许数据库存在一些因为我得到一些奇怪的数字

这是数据库egs

poll_id option_poll_id gender
1       100            male
1       100            male
1       103            femeale
1       103            male

所以我想要的是每个选项100和103获得男性或女性的数量

喜欢这个选项100 - > 2个男性和选项103-> 1个男性 提前谢谢。

3 个答案:

答案 0 :(得分:5)

以下是直接从http://framework.zend.com/manual/en/zend.db.table.html

中提取的示例
  $table = new Bugs();

  $select = $table->select();

  $select->from($table,

                array('COUNT(reported_by) as `count`', 'reported_by'))

         ->where('bug_status = ?', 'NEW')

         ->group('reported_by');

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

同样适用于此。更改您的表名和字段:)。

您也可以执行@Marc B的查询。这更适用于Zend_Db_Table。

答案 1 :(得分:2)

您的查询是什么样的?这可以为您提供所需的数字:

SELECT option_poll_id, gender, COUNT(gender)
FROM yourtable
GROUP BY option_poll_id, gender

答案 2 :(得分:2)

这是我现在使用的代码但是结果很好但是当我拿到它时它会显示类似

的内容
Engine_Db_Table_Rowset Object ( [_rowClass:protected] => Engine_Db_Table_Row [_rowsetClass:protected] => Engine_Db_Table_Rowset [_data:protected] => Array ( [0] => Array ( [poll_option_id] => 108 [gender] => male [count] => 1 ) ) [_table:protected] => Poll_Model_DbTable_Votes Object ( [_rowClass:protected] 


foreach ($this->pollOptions as $i => $option_chart_f):

$table  = Engine_Api::_()->poll()->api()->getDbtable('votes', 'poll');
    $select = $table->select()
                   ->from($table->info('name'), array(
                      'poll_option_id','gender',
                      new Zend_Db_Expr('COUNT(gender) as count'),
                    ))
                    ->where('poll_id = ?', $option_chart_f->poll_id)
                    ->where('poll_option_id =?', $option_chart_f->poll_option_id)
                    ->group('poll_option_id')
                    ->group('gender');

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

endforeach;

谢谢