» Poradna » Programy

Automaticke odhlasenie

 |   | 

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

 |   | 
 |   | 

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

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

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
 |   | 

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
 |   | 

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
 |   | 

mrkni v php na mktime

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

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
 |   | 

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
 |   | 

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
 |   | 

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

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

** Portál občana už funguje, vyřídíte na něm první požadavky ** Funkce se budou postupně rozšiřovat ** Web je docela moderní a přehledný

David Polesný | 65

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

** Total Commander je na Windows takřka legendou ** Licence však stojí více než tisíc korun ** Našli jsme pro vás deset alternativ dostupných zdarma

Karel Kilián | 140

Apple: naše mapy budou nejlepší na světě. Tajně jsme na nich pracovali několik let

Apple: naše mapy budou nejlepší na světě. Tajně jsme na nich pracovali několik let

** Apple odhalil své plány na zcela nové mapy ** Několik let pracuje na nových mapách, které by měly předběhnout konkurenci ** Objeví se s příchodem iOS 12 pro vybrané státy

Karel Javůrek | 50


Aktuální číslo časopisu Computer

Velký test 18 bezdrátových sluchátek

Vše o přechodu na DVB-T2

Procesory AMD opět porážejí Intel

7 NVMe M.2 SSD v přímém souboji