我一直在创建一个社交网站,并有一个朋友系统,用户可以在其中添加/删除对方,并显示用户的朋友和个人资料图片。我现在只需要检索朋友的总数,而不是单独列出的朋友(Sam有21个朋友)。我的"朋友"桌是这样的。
id user_one user_two
4 3 9
5 3 7
6 11 3
我尝试运行一个查询:
$friend_count = mysql_query("SELECT count(*) FROM friends WHERE
($user_one = '$id' AND $user_two = '$id')";
但我不知道如何显示数字,也不知道这是否正确。
我是PHP的新手,所以任何帮助都将不胜感激!
您的查询应该是:
$friend_count = mysql_query("SELECT count(*) FROM friends WHERE
($user_one = '$id' OR $user_two = '$id')");
您应该使用mysqli,因为mysql已被弃用,所以您可以这样做:
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = mysqli_query($link, "SELECT count(*) as count_friends FROM friends WHERE
($user_one = '$id' OR $user_two = '$id')");
$row = mysqli_fetch_array($query);
$count_friends = $row['count_friends'];
看看你在做什么:
SELECT count(*) FROM friends WHERE ($user_one = '$id' AND $user_two = '$id')
它在友元中查找user_one和user_two(不应该是变量…或括号之间)相同的行。
因此,为了计算某些内容:user_one必须是user_two
我想您的意图是两次检查$id是否在整个表的user_one或user_two中找到。
意味着您需要OR而不是and
更正Select语句:
SELECT count(*) FROM friends WHERE user_one = '$id' OR user_two = '$id'
更新-应该做你需要的:
$select= "SELECT count(*) FROM friends WHERE user_one = '$id' OR user_two = '$id'";
$conn= mysqli_connect("localhost", "USER", "PASSWORD", "test");
$query = mysqli_query($conn, $select);
$row = mysqli_fetch_array($query);
echo reset($row);