gpt4 book ai didi

zend-framework - Zend Framework 如何回显 SUM 查询的值

转载 作者:行者123 更新时间:2023-12-01 08:41:15 24 4
gpt4 key购买 nike

我为 zend 框架创建了一个查询,在其中我尝试检索一列的总和,在本例中为名为“时间”的列。这是我使用的查询:

$this->timequery = $this->db_tasks->fetchAll($this->db_tasks->select()->from('tasks', 'SUM(time)')->where('projectnumber =' . $this->value_project));


$this->view->sumtime = $this->timequery;

回应查询告诉我这是正确的。但我无法正确回显结果。目前我正在使用:

echo $this->sumtime['SUM(time)'];

返回以下错误:

Catchable fatal error: Object of class Zend_Db_Table_Row could not be converted to string in C:\xampp\htdocs\BManagement\application\views\scripts\tasks\index.phtml  on line 46

第 46 行是我认为有回声的行。

我已经搜索了两天来解决这个问题,或者以不同的方式获得相同的结果。尝试序列化该值,但这也不起作用。

有没有人知道如何实现数据库列的总和?

非常感谢任何帮助!

注意:对 zend 框架来说非常新...

最佳答案

Zend_Db 有一些不错的实用方法,例如 fetchAll(您正在使用)来获取不同类型的数据:

  • fetchAll - 用于一组行
  • fetchRow - 单行
  • fetchOne - 用于单个单元格

最简单的:

$sum = $db->fetchOne('SELECT SUM(time) FROM tasks WHERE project_number = ?', $this->value_project);

您也可以将 Zend_Db_Select 与这些方法一起使用,就像在您的问题中一样:

//note that the SUM(time) part is passed as a Zend_Db expression, as it is not a column
$select = $this->db_tasks->select()
->from('tasks', new Zend_Db_Expr('SUM(time)'))
->where('projectnumber =' . $this->value_project);

$this->timequery = $this->db_tasks->fetchOne($select);

这是因为 Zend_Db_Select 对象实现了一个 toString 方法来生成 SQL。

关于zend-framework - Zend Framework 如何回显 SUM 查询的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2644119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com