【发布时间】:2015-05-29 04:22:08
【问题描述】:
在这方面需要帮助,请 Stackers。工作到一定程度,但陷入无限循环并超时。显示所选月份的天数,我需要检查数据库并用不同的类突出显示有数据的类。
我知道那里有一些类似的脚本,但这是响应式的,在 sqlite 上运行并且不使用表。
这是我得到的:
#############################################################
$months31 = array("01","03","05","07","08","10","12"); // MONTHS WITH 31 DAYS
if($_SESSION['m'] == 02): // IF FEBRUARY
$daysinmonth = cal_days_in_month (CAL_GREGORIAN , $_SESSION['m'] , $_SESSION['y']); // CHECK DAYS IN FEBRUARY AND CHECK FOR LEAP YEAR
elseif(in_array($_SESSION['m'],$months31 )): // IF IN ARRAY OF MONTHS WITH 31 DAYS
$daysinmonth = 31; // DAYS IN MONTH = 31
else:
$daysinmonth = 30; // DAYS IN MONTH = 30
endif;
########## ADD DAYS OF SELECTED MONTH ############
$d = 1;
$day = $d ;
$selectedmonth = $_SESSION['m'];
$selectedyear = $_SESSION['y'];
##################################################
while($d <= $daysinmonth):
####################### GET DATA FROM DATABASE FOR SELECTED YEAR AND MONTH #################
$calshow = $caldb->query("SELECT day FROM calandar WHERE month = '$selectedmonth' AND year = '$selectedyear' ");
foreach($calshow as $cal):
$showday = $cal['day'];
############ HIGHLIGHTS CURRENT DAY ############
if($d == $curday && $_SESSION['m']== $curmonth && $_SESSION['y'] == $curyear):
$today = 'sel';
else:
$today = '';
endif; ?>
<a href="####">
<li class="day <?php echo $today;?><?php if($showday == $d): echo 'data'; endif;?>"><?php echo $d++;?></li></a>
<?php endforeach;
endwhile;?>
【问题讨论】:
-
上面设置的月份天数:
标签: php loops foreach while-loop calendar