Avatar billede boost Nybegynder
13. oktober 2007 - 11:01 Der er 13 kommentarer og
1 løsning

Næste & Forrige via. dato?

Hej

Hvordan laver jeg en Næste og Forrige via. dato, kan nemlig ikke bruge id i dette tilfælde..

Jeg har prøvet med denne kode, men så tager den bare en tilfældig som er mindre end den dato man er på, der vil jeg gerne have den til at kunne finde den som er nummeret ældre..


$query=mysql_query("SELECT * FROM table WHERE dato < '$dato' ORDER BY dato LIMIT 1") or die (mysql_error());
    while($row = mysql_fetch_array($query)) {
        echo '<a href="side.php?id='.$row['id'].'">Forrige<a/>';
    }
Avatar billede boost Nybegynder
13. oktober 2007 - 11:02 #1
Sådan: </a> :P
Avatar billede jhe-ting Nybegynder
13. oktober 2007 - 11:30 #2
Prøv dette:


$query=mysql_query("SELECT * FROM table WHERE dato < '$dato' ORDER BY dato LIMIT 1") or die (mysql_error());

    $row = mysql_fetch_array($query))
   
    echo '<a href="side.php?id='.$row['id'].'">Forrige</a>';
Avatar billede jhe-ting Nybegynder
13. oktober 2007 - 11:32 #3
ups:

$query=mysql_query("SELECT * FROM table WHERE dato < '$dato' ORDER BY dato LIMIT 1") or die (mysql_error());

    $row = mysql_fetch_array($query))
 
    echo '<a href="side.php?id='.$row[0].'">Forrige</a>';
Avatar billede boost Nybegynder
13. oktober 2007 - 12:25 #4
Den virker ikke, den viser ingen ting på siden med den kode..
Avatar billede dcheng Novice
13. oktober 2007 - 12:36 #5
Hvilket felt type har "dato" og kan datoen forekomme mere end 1 gang?
Avatar billede boost Nybegynder
13. oktober 2007 - 15:05 #6
Felt typen er: datetime

Nej, der er kun 1 gang..
Avatar billede dcheng Novice
13. oktober 2007 - 15:27 #7
Hvis jeg forstår dig rigtig så skal du bruge den post som er "EN" ældre end den dato du angiver:

SELECT * FROM tabel WHERE dato < $dato' ORDER BY dato DESC LIMIT 1

eks.
SELECT * FROM tabel WHERE dato < '2008-08-12 15:16:40' ORDER BY dato DESC LIMIT 1
Avatar billede dcheng Novice
13. oktober 2007 - 15:29 #8
fejl i ovenstående prøv:

$sql = "SELECT * FROM table WHERE dato < '".$dato."' ORDER BY dato DESC LIMIT 1";
$query=mysql_query($sql) or die (mysql_error());
    while($row = mysql_fetch_array($query)) {
        echo '<a href="side.php?id='.$row['id'].'">Forrige<a/>';
    }
Avatar billede boost Nybegynder
14. oktober 2007 - 00:04 #9
Det virker næsten, den kan bare ikke finde ud af hvis dato'erne ligger for tæt på hinanden...
Avatar billede jhe-ting Nybegynder
14. oktober 2007 - 00:25 #10
<a/>

->


    </a>
Avatar billede dcheng Novice
14. oktober 2007 - 15:34 #11
Så er jeg blank fordi det skulle altså gerne virke uanset hvor tæt de er på hinanden. Er du sikekr på at du ikek blander dato og måned sammen når du får det vist?... eller evt. når du skriver i databasen?
Avatar billede boost Nybegynder
14. oktober 2007 - 15:48 #12
Tiden bliver skrevet sådan her i db: 2007-08-05 15:52:48
Avatar billede dcheng Novice
14. oktober 2007 - 16:02 #13
Bliver dine data vist ordenligt i dette tilfælde:
Den dato som er tættest på $dato først...

$sql = "SELECT * FROM table WHERE dato < '".$dato."' ORDER BY dato DESC";
$query=mysql_query($sql) or die (mysql_error());
    while($row = mysql_fetch_array($query)) {
        echo '<a href="side.php?id='.$row['id'].'">Forrige<a/>';
    }
Avatar billede boost Nybegynder
14. oktober 2007 - 18:39 #14
Har fået det til at virke nu, tak for hjælpen..
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