19. december 2005 - 09:53Der er
42 kommentarer og 1 løsning
Nyheds sektion
Hej.
Har i mulighed for at hjælpe mig med at kunne oprette en nyheds sektion, hvor det er muligt at oprette en nyhed med en dato på hvornår nyheden skal starte med at vises og hvornår den skal slutte med at vises.. altså selve koden med at smide op i DB osv osv er nem nok.. men lige hvordan jeg skal sætte den til at starte med hjælp af dato osv?
okay, enkelt.. tror jeg.. men hvad gør jeg så når den skal hente datoen fra serveren og osv ? for det skal jo ikke være sådan så de kan sætte deres pc ur frem og så viser den nyheden.. jeg skal have en dato som man kan stole på :P
Jeps det ser vist meget rigtigt ud :D. jeg laver lige redigerings siden færdig, så laver jeg siden den skal hente nyhederne på .. så må lige se om jeg kan få den til at virke.
Man kan ikke teste den nogle steder kan man ? jeg skal vel minimum vente 1 dag ikke hehe?
jaja, men det var mere, med at være sikker på at den vil virker når man sætter den frem i fremtiden.. jeg mente at man måske kunne skrive "......DAYS) <= NOW(2006-01-01)");" for at se en fra d. 01-01-06 :o)
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
som har noget med dette at gøre: $query = mysql_query("SELECT * FROM cms_nyheder WHERE startdato >= NOW() AND ADDDATE(startdato, INTERVAL +antal DAYS) <= NOW() ORDER BY id DESC limit $vis_fra, $pr_side");
Prøv lige at ret til: $query = mysql_query("SELECT * FROM cms_nyheder WHERE startdato >= NOW() AND ADDDATE(startdato, INTERVAL +antal DAYS) <= NOW() ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DAYS) <= NOW() ORDER BY id DESC limit 0, 4' at line 1
Sådan, nu viser den i det mindste den som ikk må vises hehe.. altså den jeg har sat frem til at starte i morgen .. og den som der var sat til at skulle vises i november og 81 dage frem er skjult.. skal -antal så rettes til +antal ?
$query = mysql_query("SELECT * FROM nyheder WHERE startdato >= NOW() AND DATE_ADD(NOW(), INTERVAL -antal DAY) <= NOW() ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
Tror muligvis den skal være sådan her: SELECT * FROM nyheder WHERE startdato < NOW() AND DATE_ADD(startdato, INTERVAL +antal DAY) >= NOW() ORDER BY id DESC
SELECT *, DATEDIFF(NOW(),DATE_ADD(startdato, INTERVAL +antal DAY)) AS antalDageTilbage FROM nyheder WHERE startdato < NOW() AND DATE_ADD(startdato, INTERVAL +antal DAY) >= NOW() ORDER BY id DESC LIMIT $vis_fra, $pr_side
antalDageTilbage skulle gerne indeholder hvor mange dage du vil kunne se den endnu!
hmm det første script virker ikke helt.. den viser ikke datoen den dag den skal blive aktiveret..først dagen efter... altså idag skulle der have været en nyhed, men den er ikke kommet.. så har jeg lige oprettet en der skulle starte igår, og det virker fint
Det virkede perfekt.. hmm jeg tænkte på .. hvis man nu skriver 00 i antal dage.. kan man så ikke lave den til at den skal vise den ALTID så den ikke udløber.. skal det være en ny query ?
lige en hurtig ting .. ved denne: SELECT *, DATEDIFF(NOW(),DATE_ADD(startdato, INTERVAL +antal DAY)) AS antalDageTilbage FROM nyheder WHERE startdato < NOW() AND DATE_ADD(startdato, INTERVAL +antal DAY) >= NOW()
skal jeg bare kalde "antaldageTilbage" ud på denne måde: $antaldageTilbage
Du skal jo lave udtræk med $query = mysql_query("SELECT *, DATEDIFF(NOW(),DATE_ADD(startdato, INTERVAL +antal DAY)) AS antalDageTilbage FROM nyheder WHERE startdato < NOW() AND DATE_ADD(startdato, INTERVAL +antal DAY) >= NOW()"); $row = mysql_fetch_assoc($query) og så: echo $row['antaldageTilbage'];
nå helt virker det ikke. jeg opretter lige en ny tråd :)
Synes godt om
Ny brugerNybegynder
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.