Avatar billede torstein Novice
25. november 2001 - 21:17 Der er 13 kommentarer og
1 løsning

Slet i DB, hvis dato er overskredet!!

Hej. Jeg har lavet følgende. problemet er bare, at jeg ikke kan finde et rigtigt datoformat/kommando til MySQL, så KUN de datoer, som er ældre end dags dato bliver slettet. har haft lidt succes med dette script, MEN det slettede HEL DB kalender.

<?
$idag=getdate(year,mon,mday);
include (\"sql.php\");
$result = mysql_query(\"select * from kalender order by dato asc\");
$number = mysql_num_rows($result);

echo $idag;
if ($row[dato]<$idag){
$resultat = mysql_query(\"delete from kalender where \'$dato\'<\'$idag\'\");
}
        while ($row = mysql_fetch_array($result)) {
// printer mine resultater   
        }
        ?>
Avatar billede haniball Nybegynder
25. november 2001 - 21:39 #1
hmm skal det ik bare være
$resultat = mysql_query(\"delete from kalender where dato < \'$idag\'\");
????
Avatar billede mortenfn Nybegynder
25. november 2001 - 22:33 #2
jeg bruger dette script:

$tid=time();
$lukketid=$tid-(5*60); // 5 minutter

mysql_query(\"INSERT INTO tabel VALUES (\'$tid\')\");       
mysql_query(\"DELETE FROM tabel WHERE tid<\'$lukketid\'\");   
Avatar billede disky Nybegynder
26. november 2001 - 08:34 #3
delete from Tabel where datoen>\'2001-11-01 00:00:00\'

den sletter alt ældre end 1/11-2001 kl 00:00:00 den bruges hvis du har brugt en \'datetime\' hvis du har brugt en \'date\' skriver du:

delete from Tabel where datoen>\'2001-11-01\'

Avatar billede torstein Novice
27. november 2001 - 11:48 #4
Disky: Det skal være en variabel, som bestemmer dags dato!!

Morten: Det skal være datoen og ikke et tidspukt...

Mit datoformat i DB hedder date, og har følgende data: YYYY-MM-DD. Så min variabel \'4idag\' skal have samme format.
Får den ikke det med denne:

$idag=getdate(year,mon,mday);
Avatar billede disky Nybegynder
27. november 2001 - 12:12 #5
delete from Tabel where datoen>\'$dato\'


og vupti så er det en variabel.

Avatar billede torstein Novice
27. november 2001 - 12:21 #6
Disky:

Det har jeg prøvet, og den slettede HELE databasen, så hvordan får $dato formatet (YYYY-MM-DD). Desuden skal min dato være MINDRE end dagsdato for at blive slettet < og ikke >
Avatar billede disky Nybegynder
27. november 2001 - 12:24 #7
jamen så skriver du

delete from Tabel where datoen<\'$dato\'

og hvis det ikke virker er der grove fejl i dit system.

har lige testet det i en sql prompt, fungere perfekt.




Avatar billede mortenfn Nybegynder
27. november 2001 - 20:01 #8
dato ikke tidspunkt?????  date(\"Y-m-d\");  er det ikke dato

$dd=date(\"Y-m-d\"); // eller hvordan dit datoformat er!! 


delete from tabel where dato not like \'$dd\'
Avatar billede spectre Nybegynder
28. november 2001 - 21:34 #9
brug dog mysql kommandoer istedet for php...

\"delete from kalender where dato < NOW()\"

det burde da virke
Avatar billede torstein Novice
28. november 2001 - 22:30 #10
Se nu begynder det at ligne noget. Spectre, du scorer det hele, hvis du kan indsætte en tidsparameter i NOW(), så den tæller NOW-12 timer....
Avatar billede lundsfryd Nybegynder
29. november 2001 - 01:15 #11
Du kan komme 12 timer baglæns sådan:

DELETE FROM kalender WHERE dato < DATE_SUB(NOW(), INTERVAL 12 HOUR)
Avatar billede torstein Novice
29. november 2001 - 12:24 #12
FEJL. Lundsfryd, svar igen, du skal have 15 points. Tak til begge..
Avatar billede lundsfryd Nybegynder
29. november 2001 - 12:28 #13
Jeg kan ikke vælge \"Svar\" nu (kun \"Kommentar\"). Behold bare dine points :)
Avatar billede torstein Novice
29. november 2001 - 12:42 #14
Beklager meget, håber at godskrive dig en anden gang.. Torstein
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