Web master
Гуру
(3314)
5 лет назад
при авторизации и при любой активности:
$mysqli->query(sprintf("UPDATE users SET online = 1, last = %d WHERE userid = %d", time(), $userid));
при нажатии на кнопку выхода:
$mysqli->query(sprintf("UPDATE users SET online = 0 WHERE userid = %d", $userid));
вывести только тех, кто не нажимал кнопку выход (бесполезный метод):
SELECT * FROM users WHERE online = 1
вывести всех, кто не выходил и был активен в течение минуты (60 sec):
$mysqli->query(sprintf("SELECT * FROM users WHERE online = 1 AND last > %d AND userid = %d", time() - 60, $userid));
вывести определенную инфу, пусть это будет логин и e-mail:
SELECT username, email FROM users WHERE online = 1 AND last > %d AND userid = %d
[prepare statement]
вывести всех, кто не выходил и был активен в течение минуты (60 sec):
$a = $mysqli->prepare("SELECT * FROM users WHERE online = 1 AND last > ? AND userid = ?");
$a->bind_param('dd', time() - 60, $userid);
$a->execute();
$a->close();
Павел Михаловский
Просветленный
(32323)
6 лет назад
Если в PHP, то всё зависит от библиотеки, которую вы используете для вывода
В mysqli делается как на примерах - php.net/manual/ru/mysqli.quickstart.statements.php
Если же БД, то SELECT ячейка1,ячейка2 from 'users' WHERE авторизация = 1 Где ячейки эти столбцы которые вы хотите выполнить, а после WHERE условие, которое позволяет найти авторизованного пользователя
Примерно так, тяжело сказать не видя вашей базы и вашего кода.
Денис Шляхтин
Ученик
(152)
6 лет назад
Давайте предположим такую структуру БД:
+---+-------+-------------+
| id | login | password |
+----+-------+------------+
| 1 | Akim | ararat123 |
+--+-------+--------------+
И допустим еще несколько пользователей, нам нужен только 1-ый id - запрос:
"SELECT * FROM users WHERE id=1;".
Ну или добавим строку "город", нам нужны все пользователи с городом "Moskow", запрос:
"SELECT * FROM users WHERE city='Moskow';".
Ну и так далее.