pdo php addison与来自同一领域的存储变量

时间:2016-09-14 22:07:27

标签: php mysql database math pdo

添加我的搜索结果中的所有评分。

好的,我有一个名为评级的表格,在表格中它是这样的。

     ID | UserID | Rating | TMDB |  TYPE
     -----------------------------------
     1      34        6     432      3
     -----------------------------------
     2      34        9     432      3

我的sql是

$sql = "SELECT * FROM `tbl_rating` WHERE `tmdb`='" . $tmdb . "' AND `type`='" . $type . "' ";

确定这会提取我想要的信息。我现在可以使用while或foreach命令来调用$ row ['rating']。但是我不知道如何添加结果togeather或做任何基本的数学。这是一个电影评级数据库,我试图让我的脚本添加到结果列中的所有“评级”,然后进行平均投票。

我希望这能成为现实。任何帮助都会非常感谢大家!

此剧本对Gore,Scare,Acting,Story有星级评分(这是我使用类型字段的地方)。

1 个答案:

答案 0 :(得分:0)

添加到包含总计的变量。

$total_rating = 0;
$rating_count = 0;
while ($row = $stmt->fetch()) {
    $total_rating += $row['rating'];
    $rating_count++;
}
if ($rating_count > 0) {
    $avg_rating = $total_rating / $rating_count;
} else {
    $avg_rating = 0;
}

您也可以在查询中执行此操作:

$sql = "SELECT AVG(rating) AS avg_rating FROM `tbl_rating` WHERE `tmdb`= :tmdb AND `type`= :type ";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':tmdb', $tmdb);
$stmt->bindParam(':type', $type);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$avg_rating = $row['avg_rating'];