对mysql中的一个字段求和


Sum a field in mysql

我如何从这个得到输出:

$VisitorsProfile = $mysql->query("SELECT SUM(views) FROM visitors_profile WHERE publisher = '123456'");

我试过了,但是没有打印出我!

<?php echo $VisitorsProfile['sum'] ?>

有什么建议吗?

你需要给列命名,我知道这听起来很奇怪,但应该是

$VisitorsProfile = $mysql->query("SELECT SUM(views) as totals FROM visitors_profile WHERE publisher = '123456'");

和如下所示,您需要在查询上使用mysql_fetch_assoc函数,以便您可以通过名称引用它。然后你可以通过

引用它
<?php echo $VisitorsProfile['totals'] ?>

你只需要引用它"作为"某物。无论你在单词后面输入什么,我都不会使用"sum"这样的东西,因为这是mysql函数,可能会导致问题。

PHP允许您通过列名或列索引获取信息。推荐的方法是通过列名来执行,因为这将允许您在不影响PHP代码的情况下更改查询的列顺序。

所以要得到它,你需要添加一个列别名到你的查询:

$rs = mysql_query("SELECT SUM(value) AS total FROM visitors_profile WHERE publisher = '123456'"); 
if ($row = mysql_fetch_assoc($rs)) {
    echo $row['total'];
}
  • 在第一行,您实际运行查询。检查列别名:"total"。
  • 在第二行中,您要求从结果集中获取数组或特定的"map"。换句话说,通过调用mysql_fetch_assoc,您正在请求一个数组,其元素可通过名称获得。该数组表示结果集中的一行。
  • 在第三行你打印的是实际的总和。

检查$row分配中的"if"。这将帮助您在打印结果行之前验证结果行是否存在。我建议您在调用mysql_query.

的那一行也这样做。

编辑:对不起,我认为你在使用对象,所以它应该是这样的:

$rs = $mysql->query("SELECT SUM(value) AS total FROM visitors_profile WHERE publisher = '123456'"); 
if ($row = $mysql->fetch_assoc($rs)) {
    echo $row['total'];
}