Berichten op datum weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan de wit

johan de wit

13/12/2016 01:03:24
Quote Anchor link
Vandaag 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

PHP hulp

24/11/2024 15:52:33
 
Ivo P

Ivo P

13/12/2016 09:38:19
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT * FROM berichten
WHERE NOW() BETWEEN startdatumkolom AND einddatumkolom
 
Ward van der Put
Moderator

Ward van der Put

13/12/2016 09:46:44
Quote Anchor link
Je kunt twee kolommen van het type DATE voor datums toevoegen aan de databasetabel, voor MySQL bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
  SELECT message
    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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.