将所有列相加

Add up all of the columns

我正在创建一个社交网络,我需要向用户显示他们关注了多少人以及关注了多少人(followers 和 following)。我想将 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'];

有什么帮助吗?

您的直接问题是您需要为查询返回的列设置别名,以便您可以在外部查询中访问它。

所以像这样:

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)