webForumDet fria alternativet

datumstyrt innehåll på sida

PHP

1 svar · 299 visningar · startad av altruism

Medlem sedan nov. 200664 inlägg
Frågan#1

Jag har en fråga jag inte kunnat hitta ett svar på. En kund jag gör en sida åt skulle vilja ha så att man kan välja när vissa saker visas, jag ska bygga sidan i php & mysql.

Dom har tänkt ha lite olika kampanjer på sidan, månadens erbjudande, och dom tycker det skulle vara smidigt att skriva in lite olika kampanjer på en gång och sen välja att kampanj 1 ska visas mellan den 1/7 till 31/7 och kampanj 2 1/8-30/8, ja ni förstår kanske.

Går det här att lösa på något sätt, det ska tilläggas att mina phpkunskaper är något......begränsade (än så länge). :)

Medlem sedan aug. 200311 inlägg
#2

Ta denna tabellen:

 CREATE TABLE `demo` (
`demo_id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`text` TEXT NOT NULL ,
`start_time` INT( 10 ) NOT NULL ,
`end_time` INT( 10 ) NOT NULL
) ENGINE = INNODB CHARACTER SET latin1 COLLATE latin1_swedish_ci

text = det som ska visas
start_time = när det ska börja visas
end_time = när det ska sluta visas

start_- och end_time är i sk "timestamps" dvs. antal sekunder sedan 1970-01-01 00:00:00. För att få fram ett värde för det som ligger bakåt/framåt i tiden kan du använda strtotime(), t.ex.: echo strtotime("2007-06-29 12:00:00"); kommer skriva ut timestamp värdet för det exakta datumet, för att få det nuvarande (just sekunden som scriptet körs) så kör du time(); funktionen bara.

Iaf, för att ta ut raden som gäller för stunden som sidan visas så använder du följande fråga:

mysql_query("select text from demo where start_time >= ".time()." and end_time <= ".time());
254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)