Php ошибка, Undefined variable $num_rows

session_start();
$path=$_SERVER['DOCUMENT_ROOT'];
include "$path/system/db.php";

$time=time();
$timeOut=$time-60*15;
$query=$db->query("SELECT * FROM online WHERE time_out>$timeOut");
$rowCount=$query->$num_rows;

if($rowCount>0){
  while($row=$query->fetch_assoc()){
    if($_SESSION['login']==$row['login']){
        echo "<b> $row[login] </b><br>";
        continue;
    }
    echo $row['login']. "<br>";
}  

}

Как только я добавляю $rowCount появляется ошибка

Warning: Undefined variable $num_rows in C:\OpenServer\domains\chat\system\online.php on line 9

Warning: Undefined property: mysqli_result::$ in C:\OpenServer\domains\chat\system\online.php on line 9

А зачем тут $ появился? Не было ж в предыдущем коде.

Тут я так понимаю мне надо сделать что бы пользователь исчезал из чата если не активен 15 минут на пример,$rowCount выводит NULL почему то

Дык тут синтаксис неправильный просто, для свойств не нужен $.

$query->num_rows

С $ оно будет пытаться прочитать значение переменной, типа такого

$myVar = 'num_rows';
echo $query->$myVar; // обращение к $query->num_rows

в if($query>0) это так получаеться?

$query это объект, странно сравнивать объекты и числа.

Только уже не понятно что в условии писать, это if($query>0) тогда код не выдает ошибку,а мне надо считать время,вообщем как всегда понять форму написания не возможно

А время как записано? Что в БД хранится? (оно вообще есть в БД?)

да есть вот так 1677935183

Это на последнее время активности похоже, так что называть time_out не очень правильно.

А так по идее должно работать как в первом сообщении, только проверку про rowCount надо либо убрать (она тут не очень нужна, цикл и так не выполнится если пусто), либо исправить как было в коде про регистрацию юзеров.

Странно я вернула все как было и все теперь работает