Хорошо, если вы определите, вышел ли пользователь из системы, просто с помощью своего онлайн / автономного столбца - тогда пользователи, закрывающие окно своего браузера (не нажимая на ссылку / кнопку выхода), все равно будут входить в систему.
Обычный подход заключается в том, чтобы отслеживать, когда ваши пользователи перемещаются по вашему сайту, сохраняя последний раз, когда они переходили на страницу. Затем вы устанавливаете предопределенную константу того, что делает пользователя активным (скажем, перемещение по вашей странице в течение последних 15 минут) - и затем вы используете это в своем SQL-запросе, чтобы захватить каждого пользователя, который является другом посетителя и был включен сайт за последние 15 минут.
В запросе SQL, где вы храните свое время как datetime (это запрос для MySQL), это может выглядеть примерно так:
SELECT col1, col2, col3 FROM Users WHERE DATE_ADD(LastActive, INTERVAL 15 MINUTE) > NOW() AND UserIsFriendOfCurrentUser
Конечно, ваш запрос должен быть адаптирован к вашим настройкам лучше, но, надеюсь, вы поймете идею.