Nieuws tonen adh van datum

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Hes

Tom Hes

22/03/2006 12:18:00
Quote Anchor link
Ik heb een CMS gemaakt waarin nieuwsberichten gezet kunnen worden.

Gegevens zijn o.a.

- Titel
- Tekst
- Status (Actief/Inactief)
- Publicatiedatum
- Publicatietijd

Nu wil ik op een pagina op de site het laatste nieuwsbericht tonen.

Check moet zijn dat het bericht:
- actief is (dus status='1')
- tijdnu >= publicatiedatum + publicatietijd
(de publicatiedatum en tijd moeten dus geweest zijn)

De gebruiker kan dus in het CMS aangeven of het bericht actief moet zijn en wanneer het gepubliceerd moet worden.

Over het laatste heb ik al een dag lopen kloten en ik kom er niet uit.

Wie kan mij helpen?
Gewijzigd op 22/03/2006 12:19:00 door Tom Hes
 
PHP hulp

PHP hulp

17/11/2024 00:19:19
 

22/03/2006 12:26:00
Quote Anchor link
Het stellen van de vraag is in dit geval het geven van het antwoord. Alleen dat kleine duwtje nog.

Simpelste oplossing:

Maak van pub.datum en tijd een datetime veld.

je where close wordt dan ongeveer zo:

WHERE status = 1 AND publicatiedatetime >= NOW()

Complimenten voor je duidelijke vraag en eigen inbreng
 
Arjan Kapteijn

Arjan Kapteijn

22/03/2006 12:30:00
Quote Anchor link
SELECT * FROM tabel WHERE status = 1;

Volgens mij ben je er dan al...
 
Tom Hes

Tom Hes

22/03/2006 12:44:00
Quote Anchor link
MarDek:
Het stellen van de vraag is in dit geval het geven van het antwoord. Alleen dat kleine duwtje nog.

Simpelste oplossing:

Maak van pub.datum en tijd een datetime veld.

je where close wordt dan ongeveer zo:

WHERE status = 1 AND publicatiedatetime >= NOW()

Complimenten voor je duidelijke vraag en eigen inbreng


Bedankt voor het duwtje.

Heb alleen nog een zetje nodig:

hoe maak ik van de velden "publicatiedatum" en "publicatietijd" één veld "publicatiedatetime" meteen in de query, zodat ik daarop kan selecteren?

Want het zijn 2 aparte kolommen publicatiedatum" en "publicatietijd"
 
Tom Hes

Tom Hes

22/03/2006 12:46:00
Quote Anchor link
Arjan:
SELECT * FROM tabel WHERE status = 1;

Volgens mij ben je er dan al...


Volgens mij niet, want dan neemt ie ook alle berichten mee die nog geplaatst moeten worden in de toekomst. toch? Dus waarvan de publicatijdatum nog niet is geweest.
 
Erik Rijk

Erik Rijk

22/03/2006 12:48:00
Quote Anchor link
publicatiedatetime DATETIME NOT NULL default '0000-00-00 00:00:00',

SELECT * FROM tabel WHERE status = 1 AND publicatiedatetime >= NOW()

laatste bericht tonen doe je op de volgende manier:

SELECT * FROM tabel ORDER BY datum DESC
 
Arjan Kapteijn

Arjan Kapteijn

22/03/2006 12:49:00
Quote Anchor link
Nee, wat die berichtjes hebben toch geen status 1?

Maar als jij berichten wilt publiceren op een datum in de toekomst, en wel alvast een status 1 meegeven..

Dan word het iets als

SELECT * FROM tabel WHERE status = 1 AND datum <= NOW();

Dan haal je alle berichten op met de status 1, en een datum die minder of gelijk is aan 'nu'.
 

22/03/2006 12:53:00
Quote Anchor link
@arjan jij had toch les?

Tom wil ook op tijd selecteren zie eerste post vandaar de datetiime en NOW()
 
Arjan Kapteijn

Arjan Kapteijn

22/03/2006 12:57:00
Quote Anchor link
Ja, afgelopen, zomenteen weer terug :).
 
Tom Hes

Tom Hes

22/03/2006 12:57:00
Quote Anchor link
Erik:
publicatiedatetime DATETIME NOT NULL default '0000-00-00 00:00:00',

SELECT * FROM tabel WHERE status = 1 AND publicatiedatetime >= NOW()

laatste bericht tonen doe je op de volgende manier:

SELECT * FROM tabel ORDER BY datum DESC


Maar dan moet ik dus in de database een nieuwe kolom aanmaken?

Dat wil ik eigenlijk juist niet. Tenzij het niet anders kan.

Kan ik dus 2 kolommen (strings) samenvoegen in een query en dan vervolgens sorteren daarop?
 
Arjan Kapteijn

Arjan Kapteijn

22/03/2006 12:58:00
Quote Anchor link
Ik ga er eigenlijkvanuit dat je al een datum als datetime in je database heb staan. Anders zou je database opzet niet echt doordacht wezen...

Je wilt toch weten waneer een bericht geplaatst is :+.
 
Tom Hes

Tom Hes

22/03/2006 12:59:00
Quote Anchor link
Arjan:
Nee, wat die berichtjes hebben toch geen status 1?

Maar als jij berichten wilt publiceren op een datum in de toekomst, en wel alvast een status 1 meegeven..

Dan word het iets als

SELECT * FROM tabel WHERE status = 1 AND datum <= NOW();

Dan haal je alle berichten op met de status 1, en een datum die minder of gelijk is aan 'nu'.


Ja inderdaad, alleen, heb ikde datm in de database de datum in 2 kolommen staan (datum en tijd)
 
Tom Hes

Tom Hes

22/03/2006 13:00:00
Quote Anchor link
dus het was eigenlijk niet zo slim om de datum gesplitst in de database op te slaan?

Moet ik dat dus gaan veranderen in een datumtijd kolom...
 

22/03/2006 13:05:00
Quote Anchor link
Beter ten halve gekeerd.

He ben ik nu de man van de spreekwoorden?
 
Tom Hes

Tom Hes

22/03/2006 13:11:00
Quote Anchor link
Ok, dan is de oplossing mij nu bekend!

thanks
 



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.