12. januar 2012 - 11:05Der er
5 kommentarer og 1 løsning
MYSQL time trigger event
Hej, jeg er lige blevet færdig med mit eget CMS som jeg selv har lavet i PHP, MYSQL og javascript osv, som næsten er en mini Joomla, bare med bedre grafik (syntes jeg selv), en skrabet Joomla!.
Nu har jeg følgende spørgsmål, herunder.
Jeg kunne godt tænke mig at tidsstyre artklerne (det kalder jeg tekst dokumenterne som er gemt i mysql databasen). jeg har prøvet at følge nogle tutorials og andet med funktione now(), timestamp og mysql queries som select now < tid , agtig og php egen tids funktion for at konvetere til dage og dato sov fra unix epox timestamp, eller hav nu det hedder (det er længe siden at jeg har rodet med tidsdelen, så jeg skal lige huske det gien, jeg opgav i sin tid med tidstyring, fordi jeg ikke kunne få det til at fungere. (jeg plejer ikke at have nogle problemer med programmering generalt, kun tidsstyring som jeg syntes er et helvede at programmere, åbenbart!). Nu har jeg kigget på internettet med tidstyring og event trigger med funktionen now(), der er flere måder at gøre dette på, herunder.
cronjob, som cliche ikke understøtter.
mysql helt nye facilitet / funktion "event scheduler" som kun understøttes i mysql version 5.1.6 vistnok.
cliche har kun mysql 5.0.64, så den nye event scheduler funktionen kanjeg ikke bruge.
jeg har tænk at lave det sådan at hver artikel der bliver gemt i databasen, også kan vises på hjemmesiden , efter en bestemt dato, når dato er udløbet bliver teksten på hjemmesiden fjernet, men hvodan i al verden gør man det, det burde vøre nemt ?.
jeg har brugt tinymce som tekst editor som er en del af mit cms.
mysql version 5 og op, skulle kunne være istand til at trigge event efter tidstyring med now() og meget mere, vistnok ? (ja, så må mysql databasen have en slags realtime event / ur der kan trigge forskellige events ?). hvis ikke, tjaa så kan jeg overhovedet tidsstyre noget som helst, det kan da ikke passe ?. (håber det!).
Men det ser ud til at du kan klare dig med en sql-forespørgsel. En form for dato smides selvfølgelig i tabellen, når du opretter artiklen. Og så burde du kunne køre en sql der ser nogenlunde sådan her ud:
SELECT * FROM artikler WHERE dato BETWEEN now() AND date_add(now()+30)
jeg har lavet en automatisk indsættelse af start og slut dato (php) på hver artikel i mysql databasen, nu mangler jeg bare at tjekke udløbs datoen for hver artikel med en mysql queries, jeg tror jeg kan bruge din kode. er du sikker på at man ikke skal bruge en slags trigger event ?. den tidsstyring jeg skal bruge skal slet ikke være kompleks men faktisk ret enkelt, så det burde være simpelt ? og hvad med UNIX tidsformatet, er der ikke noget med at man skal trække den nuværende tid fra UNIX epox tid, hvilket er 1972, hvor man skal beregne sek. der er gået siden 1972 til æhh 2012 ?, hvor efter man omsætter det til min, timer og dage til uger måned. det er nok derfor man for mærkelig store tal frem. håber det virker, jeg har prøvet med utallige eksempler med unix tidsformat med now() og mysql quearies, og havde problemer med det.
artikelerne med start dato og slut dato bliver indsat med en mysql quary med herunder
mysql_query("INSERT INTO ssd (artikelnavn,artikel,oprettelsesdato,startdato,slutdato) VALUES ('$artikelnavn','$tinytekst',now(),now(),now())");
Mysql felterne oprettelsesdato, startdato, slutdato (felterne er af typen date/time i mysql databasen!
alle datoerne bliver indsat med pågældende dato artiklen er oprettet, men i mity cms kan man gå til "tidsstyring af artikler", og aktivere tidsstyring på den valgte artikel / stardato - slutdato. (er ikke lavet færdig endnu, da jeg har svært med at få tidstyring til at virker. jeg har masser tid.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.