MySQL: slet alt som ikke indholder...

Tags:    php

Hejsa.
Jeg har netop brugt denne kode til at finde alle felter hvor et felt indholder en af de sidste 7 dages dato. Eksempel for i dag: 5/1-2007, 4/1-2007, 3/1-2007:

Fold kodeboks ind/udKode 


Mit spørgsmål er så bare at jeg gerne vil have slettet alle de felter som ikke indholder en af de sidste 7 dages datoer. Altså hvis den ikke bliver loadet, så skal den slettes.

Hvordan klare jeg det?
Håber du forstår hvad jeg mener.


På forhond tak



Indlæg senest redigeret d. 05.01.2007 21:45 af Bruger #5097
4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
$dato = date('d/m-Y', time()-60*60*24*7;
sletter:
DELETE links_hint WHERE dato <'$dato'
finder:
SELECT * FROM links_hint WHERE dato >='$dato' ORDER BY dato ASC


skulle jeg da mene.



Du er inde på noget men det virker ik. Grunden til dette er jo at det jo ikke er to tal, og derfor ikke kan benyttes < og > osv..
Men der må da findes en kode som kan benyttes til at finde ud af om en dato er ældre end en anden. Det er vel det jeg har brug for...

Hvordan finder jeg ud af hvilken af disse datoer der er ældst:
01/05-2006 og 15/11-1990?



det havde jeg ikke lige tænkt over :), så hvad med:
SELECT * FROM links_hint WHERE dato >=DATE_SUB(CURDATE(),INTERVAL 7 DAY) ORDER BY dato ASC

DELETE links_hint WHERE dato <DATE_SUB(CURDATE(),INTERVAL 7 DAY)


er ikke sikker på ORDER BY dato ASC vil virke. Ideerne er herfra:
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html



Tip top dollar. It wo
Fold kodeboks ind/udKode 
rks.

SELECT koden har jeg ikke brug for, jeg har jo:

Fold kodeboks ind/udKode 


Selvom den anden hvis den virker vil spare en for en del besvær ;)



t