Nejlepší možností je nepoužívat v databázi příznak aktivní/neaktivní, ale raději použít něco jako last_active
časové razítko. Když uživatel přistoupí na stránku, aktualizujte časové razítko na CURRENT_TIMESTAMP()
. Chcete-li zjistit, zda je uživatel aktuálně aktivní, zadejte dotaz WHERE active_timestamp < TIMESTAMPADD(MINUTE, -60, CURRENT_TIMESTAMP())
Ujistěte se, že jste nastavili active_timestamp
jako DATETIME
zadejte do struktury tabulky. (ALTER TABLE users ADD COLUMN active_timestamp datetime AFTER username'
)
Problém je v tom, že váš skript vypadá, že chce uživatele vykopnout, když je relace nečinná. Za tímto účelem byste se měli podívat na JavaScript, nastavit časovač, který odpočítává více než 1 hodinu, a pokud nedojde k žádné aktivitě, přesměrovat stránku.