汇总所有列

时间:2020-07-26 21:54:01

标签: php mysql mysqli count

我正在创建一个社交网络,我需要向用户显示他们关注了多少人以及关注了多少人(关注者和关注者)。我想将user_touser_from中的值加起来,其中当前登录的用户是关注某人或获得关注的人。

我在下面使用此代码:

$user_follow_query = $con->prepare('SELECT SUM(user_to) FROM following WHERE user_to = ?');
$user_follow_query->bind_param("s", $username);
$user_follow_query->execute();
$user_follow_query->bind_result($followers);    
$user_follow_query_result = $user_follow_query->get_result();

while ($row = $user_follow_query_result->fetch_assoc()) {

    $followers = $row['user_to'];
}

但是我遇到了这个错误:

( ! ) Notice: Undefined index: user_to in C:\wamp64\www\theshow\profile.php on line 38

在这一行:

$followers = $row['user_to'];

有帮助吗?

1 个答案:

答案 0 :(得分:0)

您的直接问题是,您需要为查询返回的列添加别名,以便您可以在外部查询中对其进行访问。

类似这样:

SELECT SUM(user_to) sum_user_to FROM following WHERE user_to = ?

然后让您使用$row['sum_user_to']访问结果列。

但是我也非常怀疑您的查询是否可以满足您的要求。如果您要计算关注者,那么这就是满足WHERE条件的行数,因此您需要COUNT(*)而不是SUM()

SELECT COUNT(*) no_followers FROM following WHERE user_to = ?

如果您同时需要关注者和关注者,请按照问题中的说明进行操作,

SELECT COUNT(*) no_relations
FROM following 
WHERE ? in (user_to, user_from)