Avatar billede sabumnim Novice
25. september 2007 - 21:52 Der er 7 kommentarer og
1 løsning

Kalender script hjælp

Hej

Jeg har brug for noget hjælp til noget kalender halløj.
Jeg har forsøgt at arbejde lidt udfra dette indlæg:
http://www.eksperten.dk/spm/424142

Og har fået rettet en smule i koden så den nu rent faktisk echo´er en kalender ud.
Jeg kører det hele lokalt på egen comp med en apache server/MySql/php/phpmyadmin.
Jeg har oprettet en tabel i min phpmyadmin som har det samme tabel indhold som er foreskrevet i ovenstående indlæg.

PROBLEM:
Den vil ikke udskrive nogen måned trods det at det er angivet i kodningen og når jeg klikker på den dato hvor jeg har lagt en test event ind skal den så henføre til en anden php side men det kan jeg ikke lige se hvad stien er dertil?

Håber I kan hjælpe.

KODE:
/////////////funktioner.php ///////////
<?php
function nowdate2timestamp(){
        $now = explode(":", date("H:i:s:m:d:Y"));
        return mktime(0, 0, 0, $now[3], $now[4], $now[5]);
}

function appointments_on_date($ts){
        //$ts needs to be converted into MySQL format
        $mysql_ts = date("YmdHis",$ts);
        $query = "select * from calendar where dato = '".$mysql_ts."'";
        $result = mysql_query($query);
        if (mysql_fetch_array($result)){
                return true;
        }else{
                return false;
        }
}

function number_of_days_in_month($month, $year){
        return date("t", mktime(0, 0, 0, $month, 1, $year));
}

function first_day_of_month($month, $year){
        return date("w", mktime(0, 0, 0, $month, 1, $year));
}

function calendar($month, $year, $day){
        $mth[1] = "Januar";
        $mth[2] = "Februar";
        $mth[3] = "Marts";
        $mth[4] = "April";
        $mth[5] = "Maj";
        $mth[6] = "Juni";
        $mth[7] = "Juli";
        $mth[8] = "August";
        $mth[9] = "September";
        $mth[10]= "Oktober";
        $mth[11]= "November";
        $mth[12]= "December";

        $result = "<center>".$mth[$month]." ".$year."</center>\n";
        $result.= "<table id=cal><tr><td>\n";
        $result.= "Søn<td>Man<td>Tir<td>Ons<td>Tor<td>Fre<td>Lør<tr>\n";

        //Check for app. on 1. day of month
        $first_day = mktime(0, 0, 0, $month, 1, $year);

        $tabs = first_day_of_month($month, $year);
        for ($i = 0; $i<=$tabs; $i++){
                $result.= "<td style='";
                if (appointments_on_date($first_day))
                        $result.="font-weight: bold;";
                if ($nowdate==mktime(0, 0, 0, $month, 1, $year))
                        $result.="background-color: #aaaaaa;";
                if (mktime(0, 0, 0, $month, $day, $year)==mktime(0, 0, 0, $month, 1, $year))
                        $result.="border: solid 1px black;";

                $result.= "'>\n";
        }


        $num_of_days = number_of_days_in_month($month, $year);
        $tabsleft = 6-$tabs;
        $nowdate = nowdate2timestamp();

        //Run through month
        for ($i = 1; $i<=$num_of_days; $i++){
                $result.= "<a href='java script:parent.location.href=\"index.php?page=tid&year=".$year."&month=".$month."&day=".$i."\"'>";
                $result.= $i;
                $result.="</a>";
                //check for new line
                if ($tabsleft == 0){
                        $result.= "<tr>\n";
                        $tabsleft = 7;
                }
                $result.="<td style='";
                if (appointments_on_date(mktime(0, 0, 0, $month, $i+1, $year)))
                        $result.="font-weight: bold;";
                if ($nowdate==mktime(0, 0, 0, $month, $i+1, $year))
                        $result.="background-color: #aaaaaa;";
                if (mktime(0, 0, 0, $month, $day, $year)==mktime(0, 0, 0, $month, $i+1, $year))
                        $result.="border: solid 1px black;";
                $result.="'>\n";
                $tabsleft--;
        }
        $result.="</table>";
        return $result;
}


?>
///////////// funktioner.php slut ////////

////////// index.php ///////////
<?php include "tryconnect.php"; ?> // her er min forbindelses fil til mysql
<!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=iso-8859-1" />
<title>Kalender</title>
</head>

<body>
<?php
include "funktioner.php";
echo calendar($month, $year, $day); //
?>
</body>
</html>

///////////// index.php slutter /////////


//Carsten
Avatar billede superdreng Nybegynder
26. september 2007 - 12:58 #1
$result = "<center>".$mth[$month]." ".$year."</center>\n";
        $result.= "<table id=cal><tr><td>\n";
        $result.= "Søn<td>Man<td>Tir<td>Ons<td>Tor<td>Fre<td>Lør<tr>\n";

Ved ikke om det har nogen betydning men der mangler et punktum ved det første $result.

Måske skulle du også give lidt flere point når koden er lang :-)
Avatar billede nielle Nybegynder
26. september 2007 - 18:42 #2
Nej, det har ingen betydneing, og faktisk er det korrekt kode. Når der står sådan noget som:

$result.= "<table id=cal><tr><td>\n";

er det nemlig i virkeligheden en forkortelse for:

$result = $result . "<table id=cal><tr><td>\n";

Den aller første gang $result optræder skal den bare initialiseres  - det er ikke noget mere tekst som skal ligges oi enden på noget eksisterende.
Avatar billede nielle Nybegynder
26. september 2007 - 18:44 #3
Hvis der er noget i vejen med at måneder ikke udskroives er det bedste sted at starte nok at skrive noget debug for at se hvad der er i variablene:

        ...
        $mth[9] = "September";
        $mth[10]= "Oktober";
        $mth[11]= "November";
        $mth[12]= "December";

        echo "DEBUG: $month<br>";

        $result = "<center>".$mth[$month]." ".$year."</center>\n";
        $result.= "<table id=cal><tr><td>\n";
        $result.= "Søn<td>Man<td>Tir<td>Ons<td>Tor<td>Fre<td>Lør<tr>\n";
        ...
Avatar billede nielle Nybegynder
07. oktober 2007 - 11:09 #4
Er du kommet videre med denne her?
Avatar billede sabumnim Novice
07. oktober 2007 - 17:05 #5
Hej Nielle

Nej, desværre har der været en del travlhed på jobbet så jeg har endnu ikke fået kigget på det.
Skal nok give besked

//Carsten
Avatar billede nielle Nybegynder
07. oktober 2007 - 17:14 #6
Cool :^)
Avatar billede sabumnim Novice
02. september 2010 - 19:41 #7
Hej Nielle

Jeg opdagede lige at jeg ikke havde fået lukket denne tråd.

Derfor vil jeg gerne have den lukket og dermed tildele dig nogle point, for din hjælp...helt tilbage i 2007.

Jeg fandt til sidst en helt anden mulighed så derfor skulle denne have været lukket.

Vil du kaste et svar, så jeg kan lukke og slukke ?

Og tak for hjælpen

//Carsten
Avatar billede sabumnim Novice
23. september 2010 - 21:41 #8
Svarer selv, da jeg kan se på Nielles profil at vedkommende ikke har været på exp.dk siden marts 2009
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