我一直在创建一个社交网站,并且有一个朋友系统,用户可以在其中添加/删除对方,并显示用户朋友和个人资料图片。我现在需要的只是检索朋友总数而不是单独列出的朋友(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很新,所以任何帮助都会非常感激!
答案 0 :(得分:0)
您的查询应该是:
$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'];
答案 1 :(得分:0)
看看你正在做的是:
SELECT count(*) FROM friends WHERE ($user_one = '$id' AND $user_two = '$id')
正在向朋友寻找user_one和user_two(不应该是变量......或括号之间)相同的行。
所以要计算一些东西: user_one必须是user_two
我想你的意图是检查是否在整个表格中的user_one或user_two中找到$ id。
意味着您需要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);