计算朋友数量并显示为数字PHP

时间:2015-12-15 21:20:00

标签: php mysql count social-networking social

我一直在创建一个社交网站,并且有一个朋友系统,用户可以在其中添加/删除对方,并显示用户朋友和个人资料图片。我现在需要的只是检索朋友总数而不是单独列出的朋友(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很新,所以任何帮助都会非常感激!

2 个答案:

答案 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);