Berichten op datum weergeven
johan de wit
13/12/2016 01:03:24Vandaag wil ik een bericht plaatsen in de database met datum van weergeven en datum verbergen. Stel vandaag 10 december plaats ik een bericht met datum 15 december weergeven en 20 december verbergen. Hoe kan ik dat met php dat weergeven?
PHP hulp
24/11/2024 15:52:33Ivo P
13/12/2016 09:38:19Je kunt twee kolommen van het type DATE voor datums toevoegen aan de databasetabel, voor MySQL bijvoorbeeld:
Vervolgens voer je een query uit waarbij de datum publish in het verleden ligt (voor berichten die al zijn gepubliceerd) en de datum unpublish in de toekomst ligt (voor berichten die nog niet verborgen hoeven worden):
Heeft een bericht geen unpublish-datum, dan ga ik er in dit voorbeeld van uit dat het bericht nooit hoeft te worden verborgen en wordt het eveneens weergegeven. Dat is dus een net iets andere benadering dan met de BETWEEN in de oplossing van Ivo.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
CREATE TABLE IF NOT EXISTS messages (
message_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
message TEXT NOT NULL,
publish DATE NULL DEFAULT NULL,
unpublish DATE NULL DEFAULT NULL,
PRIMARY KEY pk_message_id (message_id),
INDEX ix_publish (publish DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
message_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
message TEXT NOT NULL,
publish DATE NULL DEFAULT NULL,
unpublish DATE NULL DEFAULT NULL,
PRIMARY KEY pk_message_id (message_id),
INDEX ix_publish (publish DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
Vervolgens voer je een query uit waarbij de datum publish in het verleden ligt (voor berichten die al zijn gepubliceerd) en de datum unpublish in de toekomst ligt (voor berichten die nog niet verborgen hoeven worden):
Code (php)
1
2
3
4
5
2
3
4
5
SELECT message
FROM messages
WHERE publish < NOW()
AND (unpublish IS NULL OR unpublish > NOW())
ORDER BY publish DESC
FROM messages
WHERE publish < NOW()
AND (unpublish IS NULL OR unpublish > NOW())
ORDER BY publish DESC
Heeft een bericht geen unpublish-datum, dan ga ik er in dit voorbeeld van uit dat het bericht nooit hoeft te worden verborgen en wordt het eveneens weergegeven. Dat is dus een net iets andere benadering dan met de BETWEEN in de oplossing van Ivo.
Gewijzigd op 13/12/2016 09:47:03 door Ward van der Put