19. marts 2007 - 08:40Der er
28 kommentarer og 1 løsning
Nyheds start dato
Hej eksperter jeg har en nyheds side hvor man ang giver start og slut dato til en sql database. Mit problem er og få den til og starte med og vise den fra "startdatoen" lige nu virker slutdatoen ved at den skriver "ingen nyheder" når nyheden er for gammel. Hvordan for jeg den til og starte fra den dato man sætter ind i databasen. min kode ser sådan her ud. Hilsen mltrfan
Og så vil jer egentlig lige råde dig til, sålænge du tester at skrive det sådan her: $udlob= mysql_query("SELECT * FROM nyhed WHERE start >= CURDATE() AND slut <= CURDATE() and id='$id'") or die(mysql_error());
den viser kun nyheden hvis f.eks. startdatoen er den 2007-03-20 og slutdatoen er den 2007-03-20. Altså den samme. det er jo menningen at det skal være forskellige datoer.
Kan du give nogle eksempler på hvad din tabel kan indeholde. Altså hvad kan være start og slut dato. Det er bare så jeg kan sætte mig lidt bedre ind i det.
Men hvis dette står i min database viser den intet pga. start og slut dato ikke er ens. Men når jeg angiver de samme datoer så virker det underligt nok
Hvis du gerne vil hente nyheder indenfor en start og slutdato, og samtidig bruge en var, $id, som "ref", skal der være flere $id'er med samme værdi, for at nyheder som indeholder dato - start og slut vil blive vist
$sql = "SELECT * FROM nyhed WHERE start >= CURDATE() AND slut <= CURDATE() AND id = ". intval($id); $news = mysql_query($sql) or die (mysql_error());
Kom med noget mere kode, så kan det være vi kan få det til at virke. showsource-> jeg tror du i din sql skal bytte om på >= og <=. Ligenu er slutdato større en startdato, og det du leder efter er startdato som er større end slut.
Men mltrfan-> kom med din kode som den ser ud nu, så hjælper vi.
$sql = "SELECT * FROM nyhed WHERE start <= CURDATE() AND slut > CURDATE() AND id = ". intval($id); $news = mysql_query($sql) or die (mysql_error()); if( mysql_num_rows($news) > 0 ) { echo '<table border="0">'; echo '<tr><td>Nyheder</td></tr>'; while ($dato=mysql_fetch_array($news)) { ?> <tr>
Din løsning virker som jeg lige kan se på min side. Tusinde tak for din hjælp.
Kunne du kommenter disse 4 lijner jeg er ikke helt god til php inu og så ville jeg senere kunne se hvad det betyder.
$sql = "SELECT * FROM nyhed WHERE start <= CURDATE() AND slut > CURDATE() AND id = ". intval($id); $news = mysql_query($sql) or die (mysql_error()); if( mysql_num_rows($news) > 0 )
Her forespørger vi databasen. Vi prøver at finde alle de nyheder som har startdato før eller ligmed idag og slutdato ligmed eller senere end idag, og med et bestemt id. $sql = "SELECT * FROM nyhed WHERE start <= CURDATE() AND slut > CURDATE() AND id = ". intval($id); $news = mysql_query($sql) or die (mysql_error());
Fandt vi nogle rækker i databasen, dvs nogen nyheder som opfyldte vores krav. mysql_num_rows() giver antallet af rækker som der blev fundet. if( mysql_num_rows($news) > 0 )
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.