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
AlexP
(Alex P.)
04.Март.2023 09:27:30
#2
Eva Smirnova:
query->$num_rows;
А зачем тут $
появился? Не было ж в предыдущем коде.
Тут я так понимаю мне надо сделать что бы пользователь исчезал из чата если не активен 15 минут на пример,$rowCount выводит NULL почему то
AlexP
(Alex P.)
04.Март.2023 10:02:46
#4
Дык тут синтаксис неправильный просто, для свойств не нужен $
.
$query->num_rows
С $ оно будет пытаться прочитать значение переменной, типа такого
$myVar = 'num_rows';
echo $query->$myVar; // обращение к $query->num_rows
в if($query>0) это так получаеться?
AlexP
(Alex P.)
04.Март.2023 10:51:36
#6
$query
это объект, странно сравнивать объекты и числа.
Только уже не понятно что в условии писать, это if($query>0) тогда код не выдает ошибку,а мне надо считать время,вообщем как всегда понять форму написания не возможно
AlexP
(Alex P.)
04.Март.2023 12:41:52
#8
А время как записано? Что в БД хранится? (оно вообще есть в БД?)
да есть вот так 1677935183
AlexP
(Alex P.)
04.Март.2023 13:32:52
#10
Это на последнее время активности похоже, так что называть time_out
не очень правильно.
А так по идее должно работать как в первом сообщении, только проверку про rowCount
надо либо убрать (она тут не очень нужна, цикл и так не выполнится если пусто), либо исправить как было в коде про регистрацию юзеров.
Странно я вернула все как было и все теперь работает