Autor Zpráva
IdemeNaHavaj
Profil
Ahoj
$time = time();
$limit = $time+100;

$mysqli->query("UPDATE users SET Online = '0' WHERE LastActivity < '$limit'");
Ako upraviť toto aby to fungovalo? Vďaka. PS Spúšťam to cez CRON takže nemôžem načítať aktuálny "lastactivity" jedného usera (lebo cron nepozná session)
juriad
Profil
IdemeNaHavaj:
Proč vůbec potřebuješ sloupec „Online“? Stačí přece, že existuje session, nebo přísněji, že LastActivity >= $limit.
Zbytečně zavádíš redundanci.
IdemeNaHavaj
Profil
cron nevie zistiť že ktorý user zavrel prehliadač, a " >= " mi nereaguje.
juriad
Profil
IdemeNaHavaj:
To neví určit ani PHP. K čemu potřebuješ vědět, že uživatel zavřel prohlížeč. Víš o tom, že může zavřít panel a ten třeba za 10 minut zase obnovit? Já se snažím ukázat nesmyslnost sloupce „Online“.
IdemeNaHavaj
Profil
Skusim priklad:
Na stranke su useri "A", "B", "C"
User B zatvori prehliadac a o minutu mu cron nastavi status offline (online = 0)
Takto useri A a C zistia, ze B zmizol.
Bez tohto stlpca si A a C ako zistia ze B zavrel prehliadac, ked nevedia zistit ci existuje jeho session?
juriad
Profil
Takže ty budeš muset z prohlížeče kontaktovat server každých pár sekund, aby si server pořád myslel, že je uživatel Online, i když je nečinný. Pořád tam nevidím úlohu pro Cron - prostě ten časový limit nebude několik minut, ale třeba 30 sekund.
IdemeNaHavaj
Profil
No proste to tak mám tak sa pytam na riesenie.
juriad
Profil
IdemeNaHavaj:
OK, předpokládejme tedy, že problém je jen v tom dotaze a nikoli v jeho smyslu. Jakého datového typu je LastActivity?
tiso
Profil
$limit = $time-100;
IdemeNaHavaj
Profil
juriad:
INT

tiso:
to si myslel s tym >= alebo s tym <?
juriad
Profil
IdemeNaHavaj:
Aha, nevšimnul jsem si, že příčítáš místo odečítání. Tvůj dotaz nech, tak jak je, jen odstraň apostrofy (jsou to čísla, ne řetězce).

To opravdu chceš spouštět Cron každých ~100 sekund?
IdemeNaHavaj
Profil
juriad:
Každu minutu, čo je na tom zlé ved to je za ani nie 0.5s spravené
tiso
Profil
IdemeNaHavaj: „to si myslel s tym >= alebo s tym <?
Čo ti bráni to vyskúšať?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0