» Poradna » Programy

Automaticke odhlasenie

 |   |   |  [195.78.44.---]

Zdrawim,

ako urobit automaticke vymazanie zaznamu z DB MySQL pomocou PHP, ak cas ulozeny v stlpci last (vo formate Y-m-d H:i:s) je o 30 minut nizsi ako aktualny.

mysql_query ("DELETE FROM tabulka WHERE last ... ");

Dakujem za pomoc

Odpovědi na otázku

 |   |   |  [147.229.209.---]
 |   |   |  [195.78.44.---]

ale toto vymazanie by sa malo vykonavat vzdy po nacitani stranky.... takze cron je uplne k nicomu

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [195.78.44.---]

dalo by sa to urobit takto ale newiem ako odpocitat od aktualneho datumu a casu 30 minut


mysql_query ("DELETE FROM tabulka WHERE last <= '".$aktualnycas-30min."'");

prosim ako mam teda dostat tu premmenu ??? dakym jednoduchym sposobom

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [195.78.44.---]

myslim ze takto by to mohlo ist ale newiem ako teraz z $aktual dostat datum a cas vo formate datetime (Y-m-d H:i:s)

$aktual = time() - 1800; // 1800 je 30 minut

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [217.64.5.---]

no skusil by som to obchvatom. Vlozit do tabulky popri datumu aj udaj time() a potom jednoducho pouzit time()-1800

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [84.42.163.---]

mrkni v php na mktime

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [195.78.44.---]

takze ani cron ani mktime netraba na jednoduche vyriesenie tohoto problemu.

riesenie:

$aktual = time() - 1800;
$aktual = date("Y-m-d H:i:s", $aktual);
mysql_query ("DELETE FROM tabulka WHERE last <= '".$aktual."'");

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [217.64.5.---]

pokial nechces zobrazovat datum a cas, vobec by som tam nedaval tento udaj a ak, tak len ako samostatnu polozku.
mazal by som podla polozky kde mam ulezene time(). Polozka last by bola cislo.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [195.78.44.---]

nechcem zobrazovat cas... ten tam len sluzi ako kontrola ci je clovek na strankach aktivny... Mozem vediet preco by som tam nemal davat tento udaj?? Som len zaciatocnik, mozno tomu tak nechapem ako ty.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [84.47.78.---]

ked chces mazat zaznamy na zaklade nejakeho kriteria, v nasom pripade time()-1800, tak je najlepšie pri prihlaseni vlozit do polozky last (datovy typ int) hodnotu time(). To je skupima cisiel, teda sekundy. Neviem ci od pociatku sveta alebo od polnoci. To si najdi v googli. Ak su to sekundy od pociatku sveta, tak je to bez problemu. Ak nie, tak tam este daj polozku s datumom vo formate date("Y-m-d"). Musis si ale pozriet v akom formate ti mysql uklada datum. Mal by to byt datovy typ date v tvare RRRR-MM-DD. No a mazes od time()-1800. Mozes pridat este podmienku pre dany den

asi tak :bla, bla where last <= time()-1800 and prihlasenie = date("Y-m-d") ;
pricom prihlasenie je nazov polozky s datumom .

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Last



Určitě si přečtěte


Aktuální číslo časopisu Computer

Test 6 odolných telefonů a 22 powerbank

Srovnání technologií QLED a OLED

Měřte své sportovní výkony

Sady pro chytrou domácnost