ich habe probleme mit dem skript.
die kalender einträge hören nicht wie gewollt ende monat auf, er zählt weiter bis ende woche... dies wäre diesen monat 36. tage... nunja, ich finde den fehler nicht....
[php:1:8275521e61]<?php
if (isset($_POST["jahr"])) {$jahr = $_POST["jahr"];}
else {$jahr = date("Y");}
if (isset($_POST["monat"])) {$monat = $_POST["monat"];}
else {$monat = date("n");}
$datum = mktime(0,0,1,$monat,1,$jahr);
$t = date("t",$datum);
$w = date("w",$datum);
$tag = array(1,0,6,5,4,3,2);
$monat_ohne_erste_woche = $t - $tag[$w];
$letzte_woche = $erste_woche % 7;
$wochen = ($monat_ohne_erste_woche - $letzte_woche) / 7;
$leere_zellen_erste_woche = 7 - $tag[$w];
$volle_zellen_erste_woche = 7 - $w + 1;
$leere_zellen_letzte_woche = 7 - $letzte_woche;
mysql_select_db($SQL_datenbank,$SQL_verbindung);
$resultat = mysql_query("select DAYOFMONTH(datum) as tag from kalender
where YEAR(datum)= $jahr and MONTH(datum) = $monat");
$tage_aktivitaeten = array();
$zaehler = 0;
while (list($tag)=mysql_fetch_row($resultat))
{
$tage_aktivitaeten[$zaehler] = $tag;
$zaehler++;
}
$schon_gezaehlte_tage = 0;
if ($w == 0)
{
print "<tr>";
for ($i = 0; $i < 6; $i++)
{
print '<td></td>';
}
$schon_gezaehlte_tage += 1;//erste ganzewoche
if (in_array($schon_gezaehlte_tage, $tage_aktivitaeten))
{echo '<td class="aktivitaet"><a href="aktivitaeten.php?jahr='.$jahr.'&monat='.$monat.'&tag='.$schon_gezaehlte_tage.'">
1</href></td>';}
else
{print '<td>1</td>';}
print "</tr>";
}
elseif ($w != 0)
{
print "<tr>";
for ($i = 0; $i < $leere_zellen_erste_woche; $i++)
{
print '<td></td>';
}
for ($i = 0; $i < $volle_zellen_erste_woche; $i++)
{
$schon_gezaehlte_tage += 1;
if (in_array($schon_gezaehlte_tage, $tage_aktivitaeten))
{
echo '<td class="aktivitaet"><a href="aktivitaeten.php?jahr='.$jahr.'&monat='.$monat.'&tag='.$schon_gezaehlte_tage.'">
'.$schon_gezaehlte_tage.'</href></td>';
}
else
{
print "<td>$schon_gezaehlte_tage</td>";
}
}
print "</tr>";
}
for ($i = 0; $i < $wochen; $i++)
{
print "<tr>";
for ($d = 0; $d < 7; $d++)
{
$schon_gezaehlte_tage += 1;
if (in_array($schon_gezaehlte_tage, $tage_aktivitaeten))
{
echo '<td class="aktivitaet"><a href="aktivitaeten.php?jahr='.$jahr.'&monat='.$monat.'&tag='.$schon_gezaehlte_tage.'">
'.$schon_gezaehlte_tage.'1</href></td>';
}
else
{
print "<td>$schon_gezaehlte_tage</td>";
}
}
print "</tr>";
}
if ($schon_gezaehlte_tage < $t)
{
print '<tr>';
while ($letzte_woche > 0)
{
$letzte_tage = $t - $letzte_woche+1;
if (in_array($letzte_tage, $tag))
{
echo '<td class="aktivitaet">'.$letzte_tage.'</td>';
}
else
{
print "<td>$letzte_tage</td>";
}
$letzte_woche -= 1;
}
for ($i = 0; $i < leere_zellen_letzte_woche; $i++)
{
print '<td></td>';
}
print '</tr>';
}
?>[/php:1:8275521e61]
kann mir da jemand helfen?
die kalender einträge hören nicht wie gewollt ende monat auf, er zählt weiter bis ende woche... dies wäre diesen monat 36. tage... nunja, ich finde den fehler nicht....
[php:1:8275521e61]<?php
if (isset($_POST["jahr"])) {$jahr = $_POST["jahr"];}
else {$jahr = date("Y");}
if (isset($_POST["monat"])) {$monat = $_POST["monat"];}
else {$monat = date("n");}
$datum = mktime(0,0,1,$monat,1,$jahr);
$t = date("t",$datum);
$w = date("w",$datum);
$tag = array(1,0,6,5,4,3,2);
$monat_ohne_erste_woche = $t - $tag[$w];
$letzte_woche = $erste_woche % 7;
$wochen = ($monat_ohne_erste_woche - $letzte_woche) / 7;
$leere_zellen_erste_woche = 7 - $tag[$w];
$volle_zellen_erste_woche = 7 - $w + 1;
$leere_zellen_letzte_woche = 7 - $letzte_woche;
mysql_select_db($SQL_datenbank,$SQL_verbindung);
$resultat = mysql_query("select DAYOFMONTH(datum) as tag from kalender
where YEAR(datum)= $jahr and MONTH(datum) = $monat");
$tage_aktivitaeten = array();
$zaehler = 0;
while (list($tag)=mysql_fetch_row($resultat))
{
$tage_aktivitaeten[$zaehler] = $tag;
$zaehler++;
}
$schon_gezaehlte_tage = 0;
if ($w == 0)
{
print "<tr>";
for ($i = 0; $i < 6; $i++)
{
print '<td></td>';
}
$schon_gezaehlte_tage += 1;//erste ganzewoche
if (in_array($schon_gezaehlte_tage, $tage_aktivitaeten))
{echo '<td class="aktivitaet"><a href="aktivitaeten.php?jahr='.$jahr.'&monat='.$monat.'&tag='.$schon_gezaehlte_tage.'">
1</href></td>';}
else
{print '<td>1</td>';}
print "</tr>";
}
elseif ($w != 0)
{
print "<tr>";
for ($i = 0; $i < $leere_zellen_erste_woche; $i++)
{
print '<td></td>';
}
for ($i = 0; $i < $volle_zellen_erste_woche; $i++)
{
$schon_gezaehlte_tage += 1;
if (in_array($schon_gezaehlte_tage, $tage_aktivitaeten))
{
echo '<td class="aktivitaet"><a href="aktivitaeten.php?jahr='.$jahr.'&monat='.$monat.'&tag='.$schon_gezaehlte_tage.'">
'.$schon_gezaehlte_tage.'</href></td>';
}
else
{
print "<td>$schon_gezaehlte_tage</td>";
}
}
print "</tr>";
}
for ($i = 0; $i < $wochen; $i++)
{
print "<tr>";
for ($d = 0; $d < 7; $d++)
{
$schon_gezaehlte_tage += 1;
if (in_array($schon_gezaehlte_tage, $tage_aktivitaeten))
{
echo '<td class="aktivitaet"><a href="aktivitaeten.php?jahr='.$jahr.'&monat='.$monat.'&tag='.$schon_gezaehlte_tage.'">
'.$schon_gezaehlte_tage.'1</href></td>';
}
else
{
print "<td>$schon_gezaehlte_tage</td>";
}
}
print "</tr>";
}
if ($schon_gezaehlte_tage < $t)
{
print '<tr>';
while ($letzte_woche > 0)
{
$letzte_tage = $t - $letzte_woche+1;
if (in_array($letzte_tage, $tag))
{
echo '<td class="aktivitaet">'.$letzte_tage.'</td>';
}
else
{
print "<td>$letzte_tage</td>";
}
$letzte_woche -= 1;
}
for ($i = 0; $i < leere_zellen_letzte_woche; $i++)
{
print '<td></td>';
}
print '</tr>';
}
?>[/php:1:8275521e61]
kann mir da jemand helfen?