Avatar billede TiHs Nybegynder
14. maj 2008 - 08:43 Der er 9 kommentarer og
1 løsning

Check på nyt indlæg

Hej Eksperter,

Jeg har en side hvor jeg lige nu poster beskeder fra en
mysql tabel. Hvordan ville jeg kunne lave en php kode
der tjekker om der er post i tabellen som er nyere end 4 dage, og hvis der er så echo "ny post"

Dette er min tabel:

CREATE TABLE `infofest` (
  `id` tinyint(4) NOT NULL auto_increment,
  `title` text NOT NULL,
  `date` text NOT NULL,
  `news` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=45 ;

to af de indlæg som er der nu:

INSERT INTO `infofest` VALUES (37, 'Nu sker det....', '25 April', '... Hvorfor ... jooo fordi at deres adm. side er nu lavet til dummies ...');

INSERT INTO `infofest` VALUES (40, 'Sommerfest 2007', '9 June', 'Vi kan allerede nu offentliggøre at Villaholdet´s sommerfest 2007 bliver en realitet, vi har allerede nu 16 tilmeldte, hvoraf 6 af dem er spillerkoner. Festudvalget takker for den store opbakning der har været til årets fest og ønsker alle rigtig god fornøjelse. \r\nOplysning: prisen er fastlagt til de 200,-kr pr næse, for dette beløb vil der være mad og drikke ad libitum hele aftenen. Festen starter kl. 17.00 i AP´s palæ.');
Avatar billede jakobdo Ekspert
14. maj 2008 - 08:45 #1
Du bør nok starte med at rette feltet:
`date` TEXT
til datatypen:
`date` datetime
Avatar billede showsource Seniormester
14. maj 2008 - 08:49 #2
Samt bruge et andet navn end "date", da det er et reserveret ord i Mysql.
At du kan bruge det ved at bruge ` omkring navnet er fint nok, men gør det til en vane IKKE at bruge reserverede ord!
Avatar billede showsource Seniormester
14. maj 2008 - 08:57 #3
Hvis dato er et datetimefelt:

<?php
$fromdato = date("Y-m-d H:i:s", strtotime("-4 days"));

$sql = "SELECT COUNT(*) FROM `infofest` WHERE `dato` > '".$fromdato."'";

$rows = mysql_query($sql) or die (mysql_error());
$antal = mysql_result($rows,0);
mysql_free_result($rows);

if($antal > 0) {
echo"Ny post";
}

?>

Utestet !
Avatar billede jakobdo Ekspert
14. maj 2008 - 09:05 #4
Og jeg ville så nok bruge:

<?php
$sql = "SELECT COUNT(*) FROM `infofest` WHERE `dato` > SUBDATE(NOW(),4)";

$rows = mysql_query($sql) or die (mysql_error());
$antal = mysql_result($rows,0);
mysql_free_result($rows);

if($antal > 0) {
    echo"Ny post";
}

?>
Avatar billede TiHs Nybegynder
14. maj 2008 - 09:49 #5
Hej Begge,

Nu har jeg prøvet begge jeres forslag. Den siger Ny post lige meget om
der findes en post inden for seneste 4 dage eller ældre ...
Jeg kan se i mit date(ikke dato) felt har jeg:
date("j F") istedet for date("Y-m-d" H:i:s") ... kan det give problemer ?
Avatar billede jakobdo Ekspert
14. maj 2008 - 11:12 #6
Du bør bruge datatypen datetime og så smide nuværende dato ind med NOW()
Avatar billede TiHs Nybegynder
14. maj 2008 - 12:16 #7
Så fik jeg rettet TEXT til datetime og sat ind med date("Y-m-d" H:i:s") så
kører det :o)
Avatar billede jakobdo Ekspert
14. maj 2008 - 12:29 #8
Så får du et svar.
Avatar billede TiHs Nybegynder
14. maj 2008 - 14:22 #9
takker
Avatar billede jakobdo Ekspert
14. maj 2008 - 14:42 #10
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester