0

我如何从中获得输出:

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

我试过了,但没有什么能把我打印出来!

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

有什么建议么?

4

2 回答 2

0

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”。
  • 在第二行,您从结果集中要求一个数组或特别是一个“地图”。换句话说,通过调用 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'];
}
于 2013-05-06T22:43:02.660 回答
0

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

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

如下所示,您需要查询中的 mysql_fetch_assoc 函数,以便您可以按名称引用它。然后你可以参考它

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

您只需要将其“作为”引用即可。无论您在单词后面输入什么,都可以引用它,我不会使用“sum”之类的东西,因为这是一个mysql函数,可能会导致问题。

于 2013-05-06T22:25:01.763 回答