Avatar billede jakobsen Nybegynder
08. juli 2003 - 20:12 Der er 21 kommentarer og
1 løsning

dato og sletning

hej

jeg har nogle datoer i en mysql,
der står som sådan "08.07.03"
jeg vil gerne slette alle der over 1 måned gammel,
dvs alle før "08.06.03"

hvordan kan jeg gøre dette?
Datoen er gemt i som "text"

Evt. hvad skal det i mysql laves om til,
før det virker smartere?
Avatar billede detox Nybegynder
08. juli 2003 - 21:10 #1
Det var smartere hvis du fx brugte typen DATE (YYYY-MM-DD).
Avatar billede sostack Nybegynder
08. juli 2003 - 21:24 #2
<?php
// connect til databasen her
$dag = date("d");
$maaned = date("m");
$aar = date("Y");
$gammeldag = $dag - 1;
$gammelmaaned = $maaned - 1;
$tabel = "Navnet på din tabel med datoer";
$query = "SELECT * FROM $tabel";
$resultat = mysql_query($query);
WHILE($poster = mysql_fetch_assoc($resultat))
{
$sqldato = explode(".", $poster['dato']);
if($sqldato[0] <= $gammeldag && $sqldato[0] <= $gammelmaaned && $sqldato[2] <= $aar)
{
mysql_query("DELETE FROM $tabel WHERE ID = $poster['ID']");
}
}
// luk forbindelsen til databasen
?>

//sostack
Avatar billede detox Nybegynder
08. juli 2003 - 21:30 #3
Med DATE kunne du nøjes med: DELETE FROM tabel WHERE TO_DAYS(NOW()) - TO_DAYS(dato) > 30;
Avatar billede jakobsen Nybegynder
09. juli 2003 - 09:27 #4
hvis jeg laver det om til DATE, hvordan får jeg så vist data fra DATE som dd.mm.yy ? evt. dd.mm.yyyy

/sj
Avatar billede sostack Nybegynder
09. juli 2003 - 10:29 #5
$sqldato = explode(".", $poster['dato']);
$dk_dato = implode(".", array_reverse($sqldato));

//sostack
Avatar billede sostack Nybegynder
09. juli 2003 - 10:31 #6
Hmmmm......!
Det skal vist være:
$sqldato = explode("-", $poster['dato']);
$dk_dato = implode(".", array_reverse($sqldato));

//sostack
Avatar billede jakobsen Nybegynder
09. juli 2003 - 17:02 #7
hvad så hvis jeg skal lave en

$idagerdet = 090703, altså når det skal gemmest i db'en ?
Avatar billede detox Nybegynder
09. juli 2003 - 22:03 #8
Din forespørgsel skal se sådan her ud:
SELECT DATE_FORMAT( tid,'%d.%m.%Y') AS Dansk_tid FROM tabel
Avatar billede detox Nybegynder
09. juli 2003 - 22:05 #9
Hvis du bare vil have: dd.mm.yy
SELECT DATE_FORMAT( tid,'%d.%m.%y') AS Dansk_tid FROM tabel
Avatar billede detox Nybegynder
09. juli 2003 - 22:08 #10
Hvis du vil indsætte dags dato er det:
INSERT INTO tabel ( tid ) VALUES ( NOW() )
Avatar billede detox Nybegynder
09. juli 2003 - 22:19 #11
Hvis du vil indsætte: 090703 i tabelen:
INSERT  INTO tabel ( tid ) VALUES ( '2003-07-09' )
Avatar billede jakobsen Nybegynder
10. juli 2003 - 12:00 #12
SELECT DATE_FORMAT( tid,'%d.%m.%y') AS Dansk_tid FROM tabel

hvad så hvis det skal hentes sammen med alt det andet?
$result = mysql_query("SELECT id,dato,titel FROM marked WHERE type='$type' AND kat='$kat' ORDER BY id DESC");
Avatar billede sostack Nybegynder
10. juli 2003 - 13:56 #13
$result = mysql_query("SELECT id,SELECT DATE_FORMAT( tid,'%d.%m.%y') AS Dansk_tid,titel FROM marked WHERE type='$type' AND kat='$kat' ORDER BY id DESC");

//sostack
Avatar billede jakobsen Nybegynder
10. juli 2003 - 18:11 #14
giver:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/www/data-dist/hingstenet.dk/docs/marked/index.php on line 41
Avatar billede jakobsen Nybegynder
10. juli 2003 - 18:11 #15
og linie 41 er den linie...
Avatar billede detox Nybegynder
10. juli 2003 - 18:50 #16
$result = mysql_query("SELECT id, DATE_FORMAT( tid,'%d.%m.%y') AS Dansk_tid, titel FROM marked WHERE type='$type' AND kat='$kat' ORDER BY id DESC");
Avatar billede jakobsen Nybegynder
10. juli 2003 - 19:22 #17
nix.. det har jeg prøvet.. giver samme fejl..

/sj
Avatar billede detox Nybegynder
10. juli 2003 - 19:29 #18
Og din tabel "marked" indeholder felterne: id, tid, titel, type og kat?
Avatar billede jakobsen Nybegynder
10. juli 2003 - 21:00 #19
ik tid.. men dato

/sj
Avatar billede jakobsen Nybegynder
10. juli 2003 - 21:25 #20
sku jeg kunne skrive

echo $Dansk_tid;

?
det virker ik..
Avatar billede detox Nybegynder
10. juli 2003 - 21:57 #21
$result = mysql_query("SELECT id, DATE_FORMAT( dato,'%d.%m.%y') AS Dansk_tid, titel FROM marked WHERE type='$type' AND kat='$kat' ORDER BY id DESC");
Avatar billede jakobsen Nybegynder
10. juli 2003 - 22:20 #22
$result = mysql_query("SELECT id,DATE_FORMAT(dato,'%d.%m.%y') AS dansk,titel,info,price,userid FROM marked WHERE id='$id'");

det som den jeg har.. prøver at skrive $dansk
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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