Avatar billede Slettet bruger
27. april 2006 - 21:33 Der er 4 kommentarer og
1 løsning

Kalender. Hjælp til visning af forrige og næste uge.

Jeg har denne stump kode, der viser ugenummer og reservationer i kalenderen for denne uge (koden er en gammel kodestump her fra eksperten).
Jeg kunne tænke mig, at have et link til forrige og næste uges reservationer. Er der nogen der kan hjælpe mig?


define('DAG', 60*60*24);
$ugedage = array('Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag');
$start = date('w') ? date('w')-1: 6;
echo "<b>Uge: ".date('W')."</b><br /><hr>";
for ($i=0;$i<7;$i++) {
    $tid = time()-$start*DAG;
    $dag[$i] = $tid;
    $start--;
}
$start_dag = date('Y-m-d', $dag[0]-DAG);
$slut_dag = date('Y-m-d', $dag[6]+DAG);
echo "<br />";



$res = mysql_query("select *,DATE_FORMAT(date, '%d/%m-%y') AS ny_dato from fusion_events where date between '$start_dag' and '$slut_dag' order by date") or die(mysql_error());
echo "<table width=90% border=0 align=center cellpadding=2 cellspacing=0 >"; 
while ($row[] = mysql_fetch_assoc($res)) {
}
$j = 0;
for ($i=0;$i<7;$i++) {
    echo "<b><u><font color='red'>",$ugedage[date('w', $dag[$i])]."&nbsp;d. " . date('d/m-y',$dag[$i])."</b></u><br></font><br />";
    while (date('Y-m-d', $dag[$i]) == $row[$j]['date']) {
        echo "<b>Kl.&nbsp;</b>",$row[$j]['from_'].".",$row[$j]['from2_']."<br>", "<b>",$row[$j]['title']."</b>", "<b><br>Lokale:&nbsp;</b>",$row[$j]['add_desc']."<br>","<b>Bestilling:&nbsp;</b>","<font color='red'>",  $row[$j]['description']."</font><br>","<b>Antal:&nbsp;</b>",$row[$j]['location']. "&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;","<b>Bestilt af:&nbsp;</b>",$row[$j]['who']. "<br>","<br />";
        $j++;
    }
    echo "<hr>";
}




echo "</TABLE>";
mysql_free_result($res);   

echo "<hr>";

unset($row);
Avatar billede fynbo Nybegynder
28. april 2006 - 01:46 #1
http://www.phpfreaks.com/tutorials/83/0.php

En rigtig rigtig god kalender guide.
Avatar billede gf Nybegynder
28. april 2006 - 13:41 #2
Hej prøv denne

Det er ikke mig der har lavet koden, den er fundet her på eksperten engang i tidernes morgen.

mvh gf

<?php
/* Kalenderscriptet*/
/* Tjekker året er sat i adresselinien, ellers bliver det i år */
$aar = (empty($_GET['y'])) ? date(Y) : $_GET['y'];
/* Tjekker måneden er sat i adresselinien, ellers bliver den sat til aktuel måned */
$maaned = (empty($_GET['m'])) ? date('m') : $_GET['m'];
/* Array med ugedage */
$uger = array('Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Søn');
/* Den aktuelle dato i unix epoch (antal sekunder siden 1. jan 1970) */
$dato = mktime(0,0,0,$maaned, 1, $aar);
/* Antal dage i måneden */
$antalDageMaaned = date('t', $dato);
/* Første ugedag (hvis det er søndag (0) sættes den til 7) */
$foersteUgedag = (date('w', $dato) == 0) ? 7 : date('w', $dato);
/* Udskriver måned og år */
print ('<h2>'.date('F', $dato).' - '.$aar.'</h2>');
/* Udskriver forrige/næste knap */
printf('<a href="'.$_SERVER['PHP_SELF'].'?m=%s&y=%s">Forrige</a> - <a href="'.$_SERVER['PHP_SELF'].'?m=%s&y=%s">Næste</a>', date('m', strtotime("-1 month", $dato)), date('Y', strtotime("-1 month", $dato)), date('m', strtotime("+1 month", $dato)), date('Y', strtotime("+1 month", $dato))); 
/* Tabellen starter */
print ('<table border="1"><tr>');
/* En række med ugedage udskrives */
for ($i = 1; $i < count($uger); $i++) {
  print ('<td>'.$uger[$i].'</td>');
}
print ('</tr>');
/* Løkken kører så længe der er dage tilbage i måneden */
for ($dag = 1; $dag <= $antalDageMaaned; $dag++) {
  print ('<tr>');
  /* Ugedage-løkken køres igennem */
  for ($u = 1; $u <= 7; $u++) {
 
    /* Udskriver tomme pladser hvis måneden ikke starter med en mandag */
    if ($u < $foersteUgedag && $foersteUgedag+$dag <= 8) {
    print ('<td></td>');
    } else {
      /* Datoen udskrives, hvis den er inde for måneden, ellers kommer der bare en tom celle url links overfoeres*/
      print ( ($dag <= $antalDageMaaned)
              ? "<td><a href='test.php?aar=$aar&maaned=$maaned&dato=$dag'>$dag</a></td>"
              : '<td></td>' );
      /* Hvis ugedagen ikke er søndag ligges der en til. (ellers tæller den to om søndagen) */
      if ($u != 7) $dag++;
    }
  }
  print ('</tr>');
}
print ('</table>');
?>
Avatar billede gf Nybegynder
28. april 2006 - 13:46 #3
ups jeg kan se, at jeg har lavet datoerne om til links, der linker til en side der hedder test.php det kan du naturligvis fjerne hvis du ikke har brug for det.

mvh gf
Avatar billede Slettet bruger
28. april 2006 - 14:17 #4
Jeg blev ikke så meget klogere fynbo (siger nok mere om mig end tutorialen). Det jeg har brug for, er at få udskrevet reservationer på ugebasis  med et link til "forrige og "næste".
Ugevisningen fungerer fint nok med indeværende uge.

gf:
Jeg har selve kalenderen. Det er kun udskrivningen af reservationer der volder problemer.
Det var ikke lige det jeg eftersøgte - desværre
Avatar billede Slettet bruger
08. februar 2007 - 22:55 #5
lukker
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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