Autor Zpráva
Joe
Profil *
Vie mi niekto poradit, ako mam ulozit okamzity cas do mysql db v riadku ako timestamp?

A este, ako neskor porovnat tento cas s dalsim okamzitym a zistit kolko casu ubehlo?

Chcem to pre udrzanie log in aj po popusteni stranky a opatovnom navrate.
Kajman_
Profil *
update tabulka set sloupec=now();
-- u prastarých verzí možná
update tabulka set sloupec=current_timestamp();
Joe
Profil *
No ja som skusal toto:

...
$cas=now();


$insert="INSERT INTO online (sesid, nick, cas)
VALUES ('$sesid','$nick','$cas')";
$results = mysql_query($insert)
or die(mysql_error());
...

Ale vraj:

Fatal error: Call to undefined function: now() in ...
ninja
Profil
Joe: a kde jsi v PHP manualu videl funkci now()? Timestamp se ziskava pres time().

A pokud chces unix timestamp pouzivat v MySQL, koukni na jeji funkce FROM_UNIXTIME() a UNIX_TIMESTAMP().
Kajman_
Profil *
$insert="INSERT INTO online (sesid, nick, cas)
VALUES ('$sesid','$nick',now())"; 
Bill
Profil
spise
UNIX_TIMESTAMP()
NoName
Profil *
U MySQL 5 jde nastavit ON UPDATE CURRENT TIMESTAMP ke sloupci, je to v phpmyadmin jako Vlastnosti, takze se vytvori INT 10 sloupec a hotovo ;)
Joe
Profil *
Ten priklad od Kajman_ funguje super, ale teraz mam problem, ako vygenerovat okamzity cas v php a porovnat to s casom v sql db.
Vie niekto poradit?
nightfish
Profil
ako vygenerovat okamzity cas v php
time() (pokud se bavíme o vyjádření v podobě unix timestamp), případně date, pokud by se jednalo o sloupec typu datetime nebo date

porovnat to s casom v sql db.
operátor porovnání je =
Joe
Profil *
Vdaka za rychlu reakciu nightfish

Nemyslel som zrovna provnat (=), ale cely problem je.

Pri log in, chcem ulozit do db cas prihlasenia - now(),
Ak clen opusti prehliadac, server, stranku a vrati sa po urcitom case,
spusti opat stranku, kde prebehne porovnanie okamziteho casu s casom v db,
a ak je tento cas kratsi ako pr: 1 hodina, nemusi sa prihlasovat znova,
ak je ale dlhsi prebehne vymazanie session a clen sa musi opat najprv prihlasit.
Joe
Profil *
Stale mi to nefunguje.
Vie mi niekto pomoct?
Dik.
nightfish
Profil
kde prebehne porovnanie okamziteho casu s casom v db,
mysql_query("select count(*) from tabulka where timestamp + 3600 > ".time()." and uzivatel = $id");
Joe
Profil *
Neviem, ci som to pochopil, ale skor nie.

online = nazov tabulky
cas = stlpec s timestamp
meno = uzivatelske meno uz vytvorene - uuu

$out=mysql_query("select count(*) from online where cas + 3600 > ".time()." and meno = 'uuu'");

if(empty($out)) {
echo "mam to";
} else {
echo "nemam to";
}
Joe
Profil *
Nefunguje to. Vie to niekto opravit?
nightfish
Profil
zřejmě bych nepoužíval funkci empty() - možná spíš mysql_result($out, 0, 0)
Joe
Profil *
Zmena tam nastala, ale ak dam

$out=mysql_query("select count(*) from online where cas > ".time()." and meno = 'uuu'");

a dam si vypis:

echo "<br>result z mysql: ".mysql_result($out,0,0)."<br>";

Vypise mi : 1 , co vyzera, ze naslo riadok s casom z tabulky vacsim ako momentalny cas, co nie je mozne.
Joe
Profil *
Asi chcem urobit nieco, co nie je velmi zauzivane.

Moze mi niekto poradit nejaky iny sposob, ako udrzat clena prihlaseneho
aj urcity cas po opusteni stranky?
Ak sa vrati spat do hodiny, bude stale prihlaseny.

Alebo, co pouzivate vy?

Vdaka
Joe
Profil *
Moze mi niekto poradit nejaky iny sposob, ako udrzat clena prihlaseneho
aj urcity cas po opusteni stranky?

Vdaka
Joe
Profil *
Heeeeeeeeeeelp !!!

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