mysql — подсчет количества друзей и отображение числа переполнения стека

Я создавал сайт социальной сети, и у меня есть система друзей, в которой пользователи могут добавлять / удалять друг друга, и она отображает друзей пользователей и изображения профиля. Все, что мне сейчас нужно, это просто получить общее количество друзей, а не друзей, перечисленных по отдельности, например (у Сэма 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

Решение

Ваш запрос должен быть:

$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'];
0

Другие решения

Посмотрите, что вы делаете, это:

SELECT count(*) FROM friends WHERE ($user_one = '$id' AND $user_two = '$id')

Он ищет в друзьях строки, в которых user_one AND user_two (которые не должны быть переменными … или в скобках) одинаковы.

Итак, для чего-то, чтобы быть посчитанным
user_one должен быть user_two

Я предполагаю, что вы собираетесь проверить, находится ли $ id в user_one или user_two по всей таблице.

Это означает, что вам нужно ИЛИ, а не И

Исправлено Выбрать заявление:

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);
0

По вопросам рекламы [email protected]