Beste,
Ik heb een nieuwsbriefsysteem en wil graag de oude nieuwsbrieven weergeven. Het lukt allemaal qua selectie alleen nu wil ik graag de oude nieuwsbrieven pas 2 maanden nadat ze zijn verzonden ('tijd') tonen.
De tijd wordt opgeslagen als: `tijd` varchar(20) NOT NULL, en dit geeft: 01-01-2010 00:00:00 als tijd. Het is dus de bedoeling dat de nieuwsbrief pas in de selectie komt wanneer deze twee maanden oud is.
Heeft iemand het idee hoe ik dit kan toevoegen aan deze selectie code.
Graag krijg ik hulp bij deze selectie.
Bedankt en met vriendelijke groet,
Joost Culper
PHP Code:
$select_nieuwsbrieven = mysql_query("SELECT * FROM `mail_queue_message` WHERE `tijd` ORDER BY id DESC") or die (mysql_error());
- Data uit SQL met vertraging selecteren
-
02-12-2010, 15:47 #1
- Berichten
- 942
- Lid sinds
- 15 Jaar
Data uit SQL met vertraging selecteren
-
In de schijnwerper
Website Of Webshop Laten Maken? Strakke WordPress Sites door Web & Design V.A. €650,-Freelance / WerkAutoriteit Verhogen met Blogs en BacklinksHostingLinkbuilding uitbesteden - 25 jaar ervaring - Zie behaalde resultatenAdvertentieruimteWebsites gezocht in de bouw en woonbrancheWebsite te koop -
02-12-2010, 15:50 #2
- Berichten
- 549
- Lid sinds
- 15 Jaar
Re: Data uit SQL met vertraging selecteren
Zowiezo van tijd de tabel DATETIME maken, en dan moet je even kijken op php.net naar de functie DATE_ADD
-
02-12-2010, 17:43 #3
- Berichten
- 1.901
- Lid sinds
- 18 Jaar
Re: Data uit SQL met vertraging selecteren
En als je geen DATETIME veld ervan wilt maken kun je altijd nog een veld 'timestamp' toevoegen. Met PHP vul je dit veld met de waarde van de functie mktime(). Klein voorbeeldje:
PHP Code:<?php
$currenttime = mktime();
$do = mysql_query("INSERT INTO mailing (timestamp) values ('".$currenttime."')");
?>
PHP Code:<?php
$zestig_dagen_geleden = (60 * 24 * 60 * 60);
$select = mysql_query("SELECT * FROM mailing WHERE timestamp < '".$zestig_dagen_geleden."'");
?>
-
02-12-2010, 20:42 #4
- Berichten
- 751
- Lid sinds
- 15 Jaar
Re: Data uit SQL met vertraging selecteren
Idd je zou eigenlijk die tijd een datetime veld van moeten maar onderstaand zou ook moeten kunnen werken alleen niet getest
SELECT
*
FROM
mail_queue_message
WHERE
DATE(tijd) <= NOW() - INTERVAL 2 MONTHS
-
05-12-2010, 11:27 #5Particulier
- Berichten
- 377
- Lid sinds
- 18 Jaar
Re: Data uit SQL met vertraging selecteren
PHP Code:SELECT
*
FROM
mail_queue_message
WHERE
tijd <= NOW() - INTERVAL 2 MONTH
-
27-12-2010, 15:41 #6
- Berichten
- 942
- Lid sinds
- 15 Jaar
Re: Data uit SQL met vertraging selecteren
Heren, het is alweer een tijdje geleden en ik ben er nu weer mee bezig maar het werkt van alle drie niet.
Het werkt niet en ik krijg de nog niet verzonden nieuwsbrieven ook in het overzicht. Ik heb nu dit:
PHP Code:$select_nieuwsbrieven = mysql_query("SELECT * FROM `mail_queue_message`
WHERE `verzonden=1`
AND WHERE `tijd` tijd <= NOW() - INTERVAL 2 MONTH")
or die (mysql_error());
PHP Code:ORDER BY id DESC
-
27-12-2010, 16:00 #7Particulier
- Berichten
- 237
- Lid sinds
- 17 Jaar
Re: Data uit SQL met vertraging selecteren
Heb je er al een DATETIME van gemaakt?
-
27-12-2010, 18:28 #8
- Berichten
- 942
- Lid sinds
- 15 Jaar
Re: Data uit SQL met vertraging selecteren
Nee, ik begrijp dat dit beter zou zijn maar ik ben bang dat het straks niet meer werkt als ik in de SQL zaken ga aanpassen. Ik heb namelijk geen idee waar het systeem nog meer 'tijd' uit het database nodig heeft.
Is het echt verplicht om DATETIME te maken?
-
27-12-2010, 18:36 #9
- Berichten
- 263
- Lid sinds
- 17 Jaar
Re: Data uit SQL met vertraging selecteren
Niet verplicht, maar als je het niet doet dan ben je aangewezen om de php functie mktime() zoals Joshua aangeeft te gebruiken.
-
27-12-2010, 18:39 #10
- Berichten
- 942
- Lid sinds
- 15 Jaar
Re: Data uit SQL met vertraging selecteren
O die andere twee die werken niet wanneer ik er geen DATETIME van maak? Nu snap ik het. Kan ik het gemakkelijk weer terugveranderen wanneer het niet werkt?
-
27-12-2010, 18:39 #11Particulier
- Berichten
- 651
- Lid sinds
- 16 Jaar
Re: Data uit SQL met vertraging selecteren
Er wordt in voorgaande post's aangegeven dat je met:
PHP Code:SELECT
*
FROM
mail_queue_message
WHERE
tijd <= NOW() - INTERVAL 2 MONTH
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic