Autor Zpráva
tomasj
Profil *
Zdravím
Vytvořil jsem si tabulku do které ukládám údaje uživatelů a také čas jejich poslední návštěvy stránky..Podle toho potom vypíšu seznam online uživatelů
$vysledek=mysql_query("select jmeno,id,DATE_FORMAT(last, '%i') as
last FROM uzivatele 
WHERE last > NOW() - INTERVAL 3 MINUTE") or die
(mysql_error());
while ($zaznam=MySQL_Fetch_Array($vysledek)){
echo '&nbsp;<a href="uzivatel.php?profil='.$zaznam["id"].'">'.$zaznam["jmeno"].'</a>';
}

Tento kod funguje, ale má jednu vadu... Když je uživatel na stránku jednou vstoupí, tak se do toho seznamu přidá (což je správně), ale potom tam zůstane na pořad, tím pádem si mi tam po čase hromadí jen jména... Potřeboval bych poradit, jak vynulovat last ( poslední návštěva jednotlivých uživatelů) a tím je odstranit ze seznamu...Zkoušel jsem něco takového...
$casmaz = time() - 180;
$sql = "UPDATE FROM uzivatele SET last='0' WHERE last < $casmaz";

Ale nefunguje to...Předem děkuji za rady
Joker
Profil
tomasj
Nemělo by být potřeba to vynulovávat, stačí ta podmínka v SELECTu, ne? Pokud tam zůstávají všichni uživatelé (ne jen ti, kteří mají last > před třemi minutami) tak je možná chyba v té podmínce.
tomasj
Profil *
Joker
No to jsem si taky myslel, ale nevím... Žádnou chybu mi to neháže ... Nemáš třeba svůj script nebo jiné řešení, protože já už potom vážně nevim :-(
Joker
Profil
tomasj
Já si právě nejsem úplně jistý, jak funguje ta uvedená konstrukce s datem.
Ve svém skriptu si to obvykle zjednodušuju tak, že to převedu na timestamp, což je normální číslo, které pak stačí odečíst :-)
Kcko
Profil
DELETE FROM ... WHERE last < NOW() - INTERVAL 3 MINUTE
tomasj
Profil *
to Kcko:
Žádná změna :-(
Joker
Profil
ad Kcko:
Pozor, DELETE ty řádky smaže, takže pokud si ten příznak ukládáte přímo do tabulky uživatelů, budete vymazávat uživatele.
Kcko
Profil
Ah sorry, spatne sem to precetl


UPDATE uzivatele SET last = 0 WHERE last < DATE_SUB(NOW(), INTERVAL 3 MINUTE)

Tohle musi fungovat
tomasj
Profil *
No bohužel nic, ale tak mě napadlo, jestli mám správný typ sloupce na to ukládání posledního času návštěvy- používám BIGINT..Tak nevím, jestli je to kvůli tomu nebo ne..

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