0

我正在寻找一种方法来获得一列的总和。我正在使用的查询如下所示:

public function gradeRound($rating)
    {
        $sql = mysql_query("Select SUM(rating) AS grades FROM" . $this->_prefix . "media_set_rating WHERE set_id = set_id");
        mysql_real_escape_string($rating->rating);
        $row = mysql_fetch_assoc($sql); 
        $grades = $row['grades'];
    }

我不确定如何为控制器正确格式化。现在我的控制器有这个。

我在页面上放了一个文本框并回显 $grades - 这也包含在视图中,如下所示:

$this->_view->assign('grades', $grades); 

这样我就可以使用它了。

我尝试用顶部请求的 $rating 替换 $setId 。

我没有从我的回声中得到任何东西。我之前有-1。我不确定它是从哪里得到的。我尝试了不同的方法,得到了不同的结果。

感谢有关如何执行此操作的任何提示或线索。谢谢

2013 年 5 月 27 日美国东部标准时间 2:17 修订

谢谢尼可。我一定是累了!

这是修改后的查询:

    public function gradeRound($rating)
{
    $sql = sprintf("Select SUM(rating) AS grades FROM " . $this->_prefix . "media_set_rating 
                WHERE set_id = set_id");
    $sum = mysql_query($sql);
    $row = mysql_fetch_assoc($sum); 
    $grades = $row['grades'];
    return $grades;
}


$grades = $setDao->gradeRound($setId);
4

2 回答 2

0

您的 SQL 查询看起来很奇怪。根据“set_id”的类型,它应该如下所示:

mysql_query("
    Select SUM(rating) AS grades
    FROM " . $this->_prefix . "media_set_rating
    WHERE set_id = '". mysql_real_escape_string($rating->rating) ."'"
);

因为 ´$rating->rating` 是一个字符串。对于整数,它应该是:

mysql_query("
    Select SUM(rating) AS grades
    FROM " . $this->_prefix . "media_set_rating
    WHERE set_id = ". (int) $rating->rating
);

总共(还添加了一个返回语句):

public function gradeRound($rating)
{
    // expecting "set_id" to be an integer field
    $result = mysql_query("Select SUM(rating) AS grades FROM " . $this->_prefix . "media_set_rating WHERE set_id = ". (int) $rating->rating);

    $row = mysql_fetch_assoc($result); 
    return $row['grades'];
}
于 2013-05-27T06:23:11.227 回答
-1

希望对你有帮助 !

$select = $table->select();
$select->from ("table", array("date", "column1" => "sum(column1)"));
$select->group ( array ("date") );
于 2013-05-27T06:09:09.520 回答