login  Naam:   Wachtwoord: 
Registreer je!
 Forum

tijd in db

Offline rpgnox - 31/03/2010 10:55
Avatar van rpgnoxPHP interesse ik heb nu

  1. $db_ = mysql_query("SELECT * FROM datumtest WHERE datum BETWEEN 2010-03-20 AND 2010-03-30") or die(mysql_error());
  2. while($datum = mysql_fetch_array($db_)) {
  3.  
  4. echo ''.$datum['login'].' datum: '.$datum['datum'].' <br><br>';
  5. }


maar hoe zou het mogelijk zijn om alleen de delen van 30 dagen oud te tonen ipv BETWEEN?

En hou zou het daarnaast mogelijk zijn om delen van ouder als 30 dagen te verwijderen uit de database? (ik neem aan door een deel in mijn cron te zetten maar kom er maar niet uit wat erin dient te komen te staan)

10 antwoorden

Gesponsorde links
Offline TotempaaltJ - 31/03/2010 10:58
Avatar van TotempaaltJ PHP interesse Je kan met data gewoon >=, <=, >, < en == gebruiken. Dan moet je er toch wel uitkomen? (k wil het niet voorkauwen)
Offline rpgnox - 31/03/2010 11:01
Avatar van rpgnox PHP interesse Dat begrijp ik ;). Maar op welke wijze kan je dan een overzicht van de laatste 30 dagen presenteren? Want nu kom ik alleen op vooraf in te voeren data uit.
Offline Maarten - 31/03/2010 11:06 (laatste wijziging 31/03/2010 11:07)
Avatar van Maarten Erelid Ophalen:
  1. SELECT * FROM DATA WHERE datumveld >= NOW() - INTERVAL 1 MONTH


Data wissen:
  1. DELETE FROM DATA WHERE datumveld < NOW() - INTERVAL 1 MONTH


Kans is trouwens groot dat, als je alle data van voor een bepaalde periode wist, dat je enkel data van na die periode overhoudt 
Offline nick5556 - 31/03/2010 11:12
Avatar van nick5556 PHP beginner @Maarten:

Dan moet je er(ik gebruik het bij niet geactiveerde gebruikers) erbij zetten:
  1. DELETE FROM DATA WHERE datumveld < NOW() - INTERVAL 1 MONTH AND activated = '0'
Offline Maarten - 31/03/2010 11:28
Avatar van Maarten Erelid In de originele vraag wordt met geen woord gerept over het al dan niet selecteren op een activated status.
Offline Jelmerholland - 31/03/2010 16:24
Avatar van Jelmerholland PHP beginner Kan je het niet beter in epoch time vergelijken? Vind ik makkelijker En dan bij de output, doe je gewoon een date vanuit een timestamp. Maar dat is mijn persoonlijke voorkeur 
Offline rpgnox - 31/03/2010 18:51
Avatar van rpgnox PHP interesse Zou je dit wat kunnen toelichten?
Offline Jelmerholland - 31/03/2010 20:16
Avatar van Jelmerholland PHP beginner Als je 'm in epoch tijd hebt, dan heb jij bijvoorbeeld: 1270059155

Stel jij hebt 2 dates, waar jij die BETWEEN mee doet.
  1. $db_ = mysql_query("
  2. SELECT * FROM datumtest
  3. WHERE datum BETWEEN 1270029000 AND 1270054000")


Dat is makkelijker vind ik omdat je ook heel snel kan zien of iets lager is, naar mijn mening zijn if funties dan een stuk makkelijker. Maar dit is mijn mening...

Want je kan een datum (bijv 12-03-2010) omvormen naar een epoch time, maar het is nog makkelijker als je ALLE data in epoch tijd in je database zet, dan kan je er later (als je iets gaat echoën op je site) in elke vorm weergeven, omdat het er toch in seconden staat.
Je kan bij date() een 2e parameter invoeren, in dit geval dan je epoch time.
http://php.net/manual/en/function.date.php
Offline gnotrgnotr - 06/04/2010 19:42
Avatar van gnotrgnotr Nieuw lid brobeer iets met deze php functie:
mysql_affected_rows()
Offline Jurgo - 08/04/2010 09:30
Avatar van Jurgo PHP interesse Ik zou twee variabelen aanmaken. Een met de huidige datum en een met de datum van 30 dagen geleden. Deze variabelen kun je maken met data() of time().
In je query Delete je de records where NOT BETWEEN tussen de twee variabelen.
Je kan ook "< $thirtydaysold AND > $nu" gebruiken om de juiste records te selecteren.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.211s