[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Календарь дней рождения
Gost12345
Добрый день. Делаю календарь с выводом дней рождения. На каждый месяц выводит свои даты и фамилии. Код календаря был взят из интернета. Выводит на текущий месяц. Все выводит хорошо, только вот когда перелистываешь месяцы, то вывод данных только до декабря, а на следующий год не показывает. Как это можно сделать. Заранее спасибо.
index.php

<td width=150 valign=top>
<?php

$now_month = date("n",time());
$now_year = date("Y",time());
$now_today = date("j", time());

include("admin/config.inf");
mysql_connect ($dbhostname , $dbusername , $dbpassword);
mysql_select_db($database);

if (isset($_GET['month'])) {
$month = $_GET['month'];
$month = str_replace ("[[:space:]]", "", $month);
$month = str_replace ("[[:punct:]]", "", $month);
$month = str_replace ("[[:alpha:]]", "", $month);
if ($month < 1) { $month = 12; }
if ($month > 12) { $month = 1; }
}


if (isset($_GET['year'])) {
$year = $_GET['year'];
$year = str_replace ("[[:space:]]", "", $year);
$year = str_replace ("[[:punct:]]", "", $year);
$year = str_replace ("[[:alpha:]]", "", $year);
if ($year < 1990) { $year = 1990; }
if ($year > 2035) { $year = 2035; }
}


if (isset($_GET['today'])) {
$today = $_GET['today'];
$today = str_replace ("[[:space:]]", "", $today);
$today = str_replace ("[[:punct:]]", "", $today);
$today = str_replace ("[[:alpha:]]", "", $today);
}

function denned_to_rus($denned)
{
if($denned==0) $denned=7;
return $denned;
}


$month = (isset($month)) ? $month : date("n",time());
$year = (isset($year)) ? $year : date("Y",time());
$today = (isset($today))? $today : date("j", time());
$daylong = date("l",mktime(1,1,1,$month,$today,$year)); //день недели текст англ.
$monthlong = date("F",mktime(1,1,1,$month,$today,$year)); //название месяца англ.
$dayone = date("w",mktime(1,1,1,$month,1,$year)); //день недели цифрой
$numdays = date("t",mktime(1,1,1,$month,1,$year)); //количество дней в месяце
$alldays = array('Пн','Вт','Ср','Чт','Пт','<font color=red>Сб</font>','<font color=red>Вс</font>');
$next_year = $year + 1;
$last_year = $year - 1;
$next_month = $month + 1;
$last_month = $month - 1;
if ($today > $numdays) { $today--; }
if($month == "1" ){$month_ru="январь";}
elseif($month == "2" ){$month_ru="февраль";}
elseif($month == "3" ){$month_ru="март";}
elseif($month == "4" ){$month_ru="апрель";}
elseif($month == "5" ){$month_ru="май";}
elseif($month == "6" ){$month_ru="июнь";}
elseif($month == "7" ){$month_ru="июль";}
elseif($month == "8" ){$month_ru="август";}
elseif($month == "9" ){$month_ru="сентябрь";}
elseif($month == "10"){$month_ru="октябрь";}
elseif($month == "11"){$month_ru="ноябрь";}
elseif($month == "12"){$month_ru="декабрь";}
//echo $month;
//echo $dayone;

echo "<table border=0 cellpadding=4 cellspacing=1 width=170>";

//выводим название года
echo "<tr bgcolor=#E7EBEF>
<td align=center><a href="
.$PHP_SELF."?year=".$last_year."&today=".$today."&month=".$month.">«</a></td>";
echo "<td width=100% class=\"cellbg\" colspan=\"5\" valign=\"middle\" align=\"center\">
<b>"
.$year." г.</b></td>\n";
echo "<td align=center><a href=".$PHP_SELF."?year=".$next_year."&today=".$today."&month=".$month.">»</a></td>";
echo "</tr></table>";

//выводим название месяца
echo "<table border=0 cellpadding=4 cellspacing=1 width=170>";
echo "<tr bgcolor=#E7EBEF>
<td align=center><a href="
.$PHP_SELF."?year=".$year."&today=".$today."&month=".$last_month.">«</a></td>";
echo "<td width=100% class=\"cellbg\" colspan=\"5\" valign=\"middle\" align=\"center\">
<b>"
.$month_ru."</b></td>\n";
echo "<td align=center><a href=".$PHP_SELF."?year=".$year."&today=".$today."&month=".$next_month.">»</a></td>";
echo "</tr></table>";

$denned1day = denned_to_rus(date("w",mktime(1,1,1,$month,1,$year)));
$dennedNOWday = denned_to_rus(date("w",mktime(1,1,1,$month,$today,$year)));
$dennedLASTday = denned_to_rus(date("w",mktime(1,1,1,$month,$numdays,$year)));

$num_of_zero_days = 7 - $dennedLASTday;

$days=array();

echo "<table border=0 cellpadding=2 cellspacing=1 width=170><tr>";

//выводим дни недели
foreach($alldays as $value) {
echo "<td valign=\"middle\" align=\"center\" width=\"10%\">
<b>"
.$value."</b></td>\n";
}
echo "</tr>\n<tr>\n";


//выводим пустые дни месяца как пробелы
echo "<tr>\n";
for($z=1;$z<$denned1day;$z++)
{
echo "<td valign=\"middle\" align=\"center\"> </td>\n";
}
//выводим дни месяца
for($d=1;$d<=$numdays;$d++)
{
$days[$d]=denned_to_rus(date("w",mktime(1,1,1,$month,$d,$year)));
if($days[$d]==1) echo "<tr>\n";
if ($d == $today)
{
echo "<td valign=\"middle\" align=\"center\" bgcolor=#B9D7D5>";
$news_date = $year."-".$month."-".$d;
$news_result = mysql_query("select * from ".$table_dnp_news." where datum = '".$news_date."'");
while($row=mysql_fetch_array($news_result))
{
echo "<td>".$row['fio']."</td>";
}

}

else {
echo $d;
}
echo "</td>\n";
}
else {
echo "<td valign=\"middle\" align=\"center\">";
$news_date = $year."-".$month."-".$d;
$news_result = mysql_query("select * from ".$table_dnp_news." where datum = '".$news_date."'");
while($rew=mysql_fetch_array($news_result))
{
echo "<td>".$rew['fio']."</td>";
}
else {
echo $d;
}
echo "</td>\n";
}
if($days[$d]==7) echo "</tr>\n\n";
}

for($z=0;$z<$num_of_zero_days;$z++)
{
echo "<td valign=\"middle\" align=\"center\"> </td>\n";
}
echo "</tr>\n";
echo "</table>";

//выводим сегодняшнюю дату с ссылкой
echo "<table border=0 cellpadding=4 cellspacing=1 width=170>";
echo "<tr bgcolor=#E7EBEF>
<td width=100% align=center><a href="
.$PHP_SELF."?year=".$now_year."&today=".$now_today."&month=".$now_month.">
<font color=red>.: Сегодня: "
.$now_today.".".$now_month.".".$now_year." :.</font></a></td>";
echo "</tr></table>";
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.