Avatar billede bachome Nybegynder
05. februar 2009 - 09:40 Der er 1 kommentar og
1 løsning

PHP Vis næste dato i database

Hejsa
Jeg er ved at lave en php-kode som skal hente nogle datoer over fodboldkampe i en MySQL database.
Koden skal vise nedtælling til næste fodboldkamp, og vise det i dage, timer og minutter...
Det virker fint indtil tiden overskrides...så hentes den næste kamp ikke og den looper bare indenfor 24 timer, igen og igen.

Hvad gør jeg forkert?

Her er koden:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Aston Ville kamp-udtræk</title>
</head>

<body>

<?

include 'include/dbconn.php';


// id er unik og reference for kampen...der udtrækkes fra idag og frem...

$sql = "SELECT * FROM kampe_2008 WHERE dato >= NOW() ORDER BY dato ASC";   
    if (!$result = mysql_query($sql)) {
        echo "Inden forbindelse til Databasen!";
    exit;
    }

//udtræk lægges over i array...
while ($atribut_nr = mysql_fetch_array($result)){
            // fjerde attribut er dato 'spilledag'
            $spilledag[] = $atribut_nr[1];
            $spiltidspunkt[] = $atribut_nr[2];
            $modstander[] = $atribut_nr[3];
            $modstander_logo[] = $atribut_nr[8];
}

// der splittes for at jonglere med datoformatet
$dato = explode("-", $spilledag[0]);
$tidspunkt = explode(":", $spiltidspunkt[0]);
$timer = $tidspunkt[0];
$minutter = $tidspunkt[1];

// ---
//hvis der ønskes formatet 09 istedet for 2009 benyttes '$ar = substr($dato[0], 2)';
$ar = $dato[0];
$maned = $dato[1];
$dag = $dato[2];
// jeg ønsker ikke 0 foran etcifrede datoer...
if (substr($dag,0,1) == 0) {
$dag = substr($dag,1,1);
}
if (substr($maned,0,1) == 0) {
$maned = substr($maned,1,1);
}

// så definerer vi månednavnene på dansk!
$nr[1] = "januar";
$nr[] = "februar";
$nr[] = "marts";
$nr[] = "april";
$nr[] = "maj";
$nr[] = "jui";
$nr[] = "juli";
$nr[] = "august";
$nr[] = "september";
$nr[] = "oktober";
$nr[] = "november";
$nr[] = "december";

$spilojeblik = mktime($timer, $minutter, 0, $maned, $dag, $ar) ;
$idag = time () ;
$difference =($spilojeblik-$idag) ;
//$days = (int) ($difference/86400);
$dage_tilbage = floor($difference/60/60/24);
$timer_tilbage = floor(($difference - $dage_tilbage*60*60*24)/60/60);
$minutter_tilbage = floor(($difference - $dage_tilbage*60*60*24 - $timer_tilbage*60*60)/60);

// idag...
if ($spilledag[0] == date("Y-m-d")) {
    echo "Næste kamp er mod ".$modstander[0]." idag den $dag. $nr[$maned], $ar kl. $timer:$minutter. Nedtælling til kampen er: ";
    if ($timer_tilbage != 0) {
    echo $timer_tilbage."timer";
    }
   
    echo $minutter_tilbage." minutter.<br><img src='klub_logoer/".$modstander_logo[0].".jpg'>";
}
// ikke idag...
else {
    echo "Næste kamp er mod ".$modstander[0]." om $dage_tilbage dage, ";
    if ($timer_tilbage != 0) {
    echo $timer_tilbage." timer og ";
    }
    echo $minutter_tilbage." minutter.<br>Kampen spilles den $dag. $nr[$maned], $ar kl. $timer:$minutter.<br><img src='klub_logoer/".$modstander_logo[0].".jpg'>";
}


?>

</body>
</html>
Avatar billede bachome Nybegynder
05. februar 2009 - 14:33 #1
jeg har løst det...
$sql = "SELECT * FROM kampe_2008 WHERE dato >= CURRENT_TIMESTAMP ORDER BY dato ASC";
Avatar billede bachome Nybegynder
05. februar 2009 - 14:34 #2
jeg lukker spg'et
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
Kurser inden for grundlæggende programmering

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