我正在创建一个社交网络,我需要向用户显示他们关注了多少人以及关注了多少人(关注者和关注者)。我想将user_to
和user_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'];
有帮助吗?
答案 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)