Avatar billede bongobride Nybegynder
07. august 2002 - 15:18 Der er 7 kommentarer og
1 løsning

Tid med PHP og MySQL

Hey!
Er det muligt, at definere hvor lang tid en bestemt række, i en tabel, skal være der?
Og derefter automatisk slette rækken når tiden er gået??

Hvis i kan lave et lille eksempel, så vil jeg blive rigtig glad,
og hvis i lige vil skrive hvilken type rækken skal være (INT, TinyText osv.)
Så vil jeg blive rigtig glad! :)
På forhånd tak!
Avatar billede bongobride Nybegynder
07. august 2002 - 15:19 #1
Kommer lige tilbage senere engang og tjekker svar :)
Avatar billede svenn Nybegynder
07. august 2002 - 15:34 #2
Prøv det her:
Du har en tabel, som måske ser sådan ud:

CREATE TABLE tabel1(
ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
indhold TEXT,
created INT);

Når du sætter noget ind i tabellen, sætter du tiden til den aktuelle tid i UNIX time (sekunder siden engang for lææænge siden) vha.
$time = time();

Herefter tjeckes tabellen, hver gang den aktuelle php-side vises, vha funktionen:

function CheckTimeToDie()
{
$lifetime = time()-60; //dø efter 1 minut
mysql_query("DELETE FROM tabel1 WHERE created<'$lifetime'");
}
Avatar billede bongobride Nybegynder
07. august 2002 - 20:37 #3
Damn Svenn! - Det forstår jeg kun lidt af det der....
Avatar billede bongobride Nybegynder
08. august 2002 - 11:32 #4
Jeg mener, om man kan lave et script, som sætter tiden til f.eks. 14 dage..
Ikke et som slette rækken, når man først kigger på siden som skal vise rækken... Hvis du forstår?
Avatar billede svenn Nybegynder
08. august 2002 - 14:19 #5
Jeg ved ikke, om man kan lave et script, som serveren kører helt af sig selv. Og dermed selv sørger for at slette rækken. Det har jeg ikke prøvet.

Men jeg ved, at hvis du tjecker efter om rækken skal slettes lige inden du prøver på at vise den (og selvfølgelig undersøger om rækken findes), vil brugeren af hjemmesiden aldrig opdage, at rækken først lige er slettet, når siden vises.
Jeg har selv brugt det på en hjemmeside, og det virker fint.
Avatar billede bongobride Nybegynder
08. august 2002 - 15:01 #6
Okay. Men hvordan kan jeg så få den slettet om f.eks. 14 dage?

Mit gæt er således: Man laver rækken via en formular, og indstiller $lifetime til 14 dage i UNIX formatet...
Derefter laver man et script som tjekker at der er gået 14 dage, ved at skrive $lifetime = time()-TALLET; //dø efter 14 dage ....

Er det sådan det gøres eller?
Avatar billede svenn Nybegynder
08. august 2002 - 15:04 #7
Netop...  og du finder tallet ved:
14*24*3600
(dage*timer*minuter)
Avatar billede bongobride Nybegynder
08. august 2002 - 18:36 #8
Yes! - Mange tak til dig :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester