webForumDet fria alternativet

[en tuffing] kalender mot databas

PHPur PHP

4 svar · 368 visningar · startad av WiZzLeR

WiZzLeRMedlem sedan juni 2002346 inlägg
#1

så här ser min kalender ut just nu:

<?php

$month = mktime (0,0,0,date("n"),1,date("Y"));
$numdays = date("t", $month);
$today = date("j"); 
$firstday = strftime("%w", $month);

$firstday = ($firstday == 0) ? 7 : $firstday;

	echo "<table width=\"100%\" border=\"0\" cellpadding=\"4\" cellspacing=\"0\">\n";
	echo "<td height=\"25\" colspan=\"7\" class=\"header\">\n";
	echo date("F Y");
	echo "</td>\n";
	echo "<tr>\n"; 
	echo "<td align=\"center\" width=\"40\"><b>Mon</b></td>\n";
	echo "<td align=\"center\" width=\"40\"><b>Tue</b></td>\n";
	echo "<td align=\"center\" width=\"40\"><b>Wed</b></td>\n";
	echo "<td align=\"center\" width=\"40\"><b>Thu</b></td>\n";
	echo "<td align=\"center\" width=\"40\"><b>Fri</b></td>\n";
	echo "<td align=\"center\" width=\"40\"><b>Sat</b></td>\n";
	echo "<td align=\"center\" width=\"40\"><b>Sun</b></td>\n";
	echo "</tr>\n";

    $dow=0;
    echo "<tr>\n";
    for($i=1; $i<=$firstday; $i++) {
	   if($i==$firstday) {
           if($today == 1) {
              echo "<td align=\"center\" bgcolor=\"#3D4653\">1</td>\n";
              $dow++;
           } else {
              echo "    <td align=\"center\">1</td>\n";
              $dow++;
	       }
       } else {
          echo "    <td>&nbsp;</td>\n";
          $dow++;
       }
       if($dow%7==0) {
        echo "  </tr>\n  <tr>\n";
      } 
    }
	
    for($i=2; $i<=$numdays; $i++) {
      if($i==$today) {
	    echo "<td align=\"center\" bgcolor=\"#3D4653\">$i</td>\n";
		$dow++;
	  } else {
	  
	  $dow++;
      echo "    <td align=\"center\">$i</td>\n";
	  }
      if($dow%7==0) {
        echo "  </tr>\n  <tr>\n";
      }   
    }
    echo "  </tr>\n<tr>\n";
    echo "</table>\n";
?>

Nu försöker jag göra att kalendern visar länkar beroende på om en händelse har lagts in i en mysql databas som matchar datumet på kalendern. Händelsen läggs in med en timestap. Några ideer hur jag ska få in händelserna i loopen.

Kent.JMedlem sedan aug. 2001153 inlägg
#2

Man skulle kunna välja ut alla händelser som händer i visad vy och sedan har nån slags räknare som räknar frammåt för varje steg(dag).

Eller om man skapar en timestamp för varje steg, kanske blir långsamt med alla SQL/timestamps?

Hrm... vet inte riktigt hur man brukar göra i kalendrar? inte spara med timestamp?

WiZzLeRMedlem sedan juni 2002346 inlägg
#3

men går det inte på något sätt att plocka ut de timestamps som har månaden maj och året 2005 i sig med en ända query?

sabbacusMedlem sedan juli 2002630 inlägg
#4

WiZzLeR skrev:

men går det inte på något sätt att plocka ut de timestamps som har månaden maj och året 2005 i sig med en ända query?

SELECT * FROM <min_tabell> WHERE year(<datumkolumn>) = <år> AND month(<datumkolumn>) = <månadsnummer>

sabbacusMedlem sedan juli 2002630 inlägg
#5

Efter lite nosande på MySQLs hemsida har jag kommit fram till att date_format() finns också.
http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html

Huruvida date_format är bättre eller snabbare vet jag inte :)

135 ms totalt · 3 externa anrop · v20260731065814-full.b2af184d
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)