začínám dělat stránky o autostopu a mám databázi, kam uživatel přes formulář zapisuje data jako:
_odkud_
_kam_
atd...
ale hlavně
_kdy_
a to _kdy_ zapisuje jako datum ve tvaru
0000-00-00
a já bych chtěl, aby se po uplynutí 1 dne od tohoto data tento příspěvek smazal, abych to tam neměl zasekaný cestama, který už měly proběhnout
poradíte?
dík. k.
já osobně bych to nedělal takto, pokud to zapisujes do DB, zvol si typ INT a davej to tam ve tvaru sekundy od roku 1970. Potom udelej vzdy kdyz nekdo prijde na stranku tak dej aby se vsechny ktery jsou starsi nez 24 hod vymazali... I´s to easy
a jak udělat to větší než 24 hodiny?
nebyl by příkládek?
předem dík:) k.
Byl by prikladek ...
if ( (time() - $lt_ulozeny_cas) > (24*60*60) ) ...
Radek
No, já to udělal takto. nemám sice den, ale týden, ale to už je fuk
$iinterval načítám z config souboru a má hodnotu 7 to mi zajistí, že 7 dnů budou členové aktivní. Příkaz vybere z databáze všechny členy, kteří nemají datum registrace (sloupec dateofreg) starší než 7 dnů, nebo mají natvrdo od admina nastavenu neomezenou platnost registrace. To řazení už je jenom pro lepší orientaci v seznamu.
SELECT * FROM tasting_recip WHERE (dateofreg >= DATE_SUB(CURRENT_DATE, INTERVAL $interval DAY)) OR active = 'Y' ORDER BY $razeni $jak
Takže pro tvou potřebu by mohlo být
DELETE * FROM tabulka WHERE (datumprispevku >= DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
A je to. Sloupec datumprispevku musíš mít jako DATE ve formátu 0000-00-00, tak jak to mám já. Lépe se pak s tím datumem dělá dále ve skriptu. A ten dotaz bys mohl volat vždy, když by byl požadavek na výpis cest, aby se staré cesty smazaly ještě před tím, než je někomu vypíšeš.
jo jo:) taky jsem to tak nakonec udělal,
akorát je mi divný, že tam máš >= to je nějaký divný ne?
snad obráceně ne? já to mam takhle:
DELETE FROM tabulka WHERE datum < DATE_SUB(CURDATE(),INTERVAL 1 DAY)
to "datum" mam samozřejmě ve formátu DATE
jo! a jeste ta hvězdička za DELETE - když jsem jí tam zpočátku měl, tak to nefungovalo:/
každopádně teď mi to každopádně šlape. dík:) k.
no jo no jo. Neuvědomil jsem si , že pro Tebe už den staré příspěvky jsou na nic. U mně je to zase tak, že ještě i ten sedmý den, je rregistrovanému k dispozici, prototo to "=". Hvězdička tam fakticky být nemá.
tak znova...
předělal jsem databázi, takže datum teď nezadávám ve formátu DATE,
ale jako INT počet sekund od 1970 - přehlednější atd..
jak ale teď smazat včerejší příspěvek?
zkoušel jsem to takhle:
$dnes = mktime (0,0,0);
$sql = "DELETE FROM stopem WHERE kdy < $dnes";
ale to nefachá :( potřeboval bych něco obdobnýho
jak na to? dík k.