求助多日期段录入的问题

求助多日期段录入的问题

有部分文字内容需要显示在页面上,但是显示的时间比较复杂,上两天停几天如此,整个排期跨度比较大,而且不同日期会显示不同内容。
希望php+mysql实现把内容和显示的日期段录到数据库里,调用的时候再判断服务器日期是否显示。

目前只是像下面这样做,因为有很多条内容,所以想改成录在数据库里的
主要是时间段那里不知道怎么弄,哪位朋友能发个例子吗?[email protected]

<?php
function dayMsg($dayArr, $msg='')
{
$day_now = strtotime(date('Y-m-d'));
$queryList  = array();
if (is_array($dayArr))
{
  for($i=0,$n=count($dayArr); $i < $n; $i++)
  {
  $day_start  = $dayArr[$i]['day_start'];
  $day_end = $dayArr[$i]['day_end'];
  $queryList[] = "$day_now >= $day_start && $day_now <= $day_end";
  }
  $query  = 'if ( ' . implode(' || ', $queryList) . ' )';
  $query .= '{';
  $query .= 'echo "document.write($msg)";';
  $query .= '}';
  eval($query);  
}
}
$y = date('Y');
$day[0]['day_start'] = strtotime("$y-8-14");
$day[0]['day_end']  = strtotime("$y-8-15");
$day[1]['day_start'] = strtotime("$y-8-20");
$day[1]['day_end']  = strtotime("$y-8-22");
$day[2]['day_start'] = strtotime("$y-8-27");
$day[2]['day_end']  = strtotime("$y-8-29");
$day[3]['day_start'] = strtotime("$y-9-3");
$day[3]['day_end']  = strtotime("$y-9-5");
$day[4]['day_start'] = strtotime("$y-9-9");
$day[4]['day_end']  = strtotime("$y-9-12");
$day[5]['day_start'] = strtotime("$y-9-15");
$day[5]['day_end']  = strtotime("$y-9-17");
$day[6]['day_start'] = strtotime("$y-9-22");
$day[6]['day_end']  = strtotime("$y-9-24");
$day[7]['day_start'] = strtotime("$y-9-29");
$day[7]['day_end']  = strtotime("$y-9-30");

dayMsg($day, '"内容内容"');
?>

[ 本帖最后由 macrolen 于 2008-11-11 16:13 编辑 ]

看了一下你的程序就是选择 现在时间$day_now 在 $day_start  和 $day_end之间的。
你说的时间段不知怎么处理我倒不是很明白。
就好比如数据表建了day_start 和 day_end字段,sql这样写不就行了?
$day_now = strtotime(date('Y-m-d'));
$sql  = "select * from table where day_start <= {$day_now} and day_end >= {$day_now}";

即便不用数据库好像也好处理

[复制到剪切板]
CODE:
<?php 
$y 
date('Y'); 
$day[0]['day_start'] = strtotime("$y-8-14"); 
$day[0]['day_end']  = strtotime("$y-8-15"); 
$day[1]['day_start'] = strtotime("$y-8-20"); 
$day[1]['day_end']  = strtotime("$y-8-22"); 
$day[2]['day_start'] = strtotime("$y-8-27"); 
$day[2]['day_end']  = strtotime("$y-8-29"); 
$day[3]['day_start'] = strtotime("$y-9-3"); 
$day[3]['day_end']  = strtotime("$y-9-5"); 
$day[4]['day_start'] = strtotime("$y-9-9"); 
$day[4]['day_end']  = strtotime("$y-9-12"); 
$day[5]['day_start'] = strtotime("$y-9-15"); 
$day[5]['day_end']  = strtotime("$y-9-17"); 
$day[6]['day_start'] = strtotime("$y-9-22"); 
$day[6]['day_end']  = strtotime("$y-9-24"); 
$day[7]['day_start'] = strtotime("$y-9-29"); 
$day[7]['day_end']  = strtotime("$y-9-30");
 
$day_now strtotime(date('Y-m-d')); 
$msg '"内容内容"'
foreach(
$day as $vl){
    if(
$day_now >= $vl['day_start'] && $day_now <= $vl['day_end']){
        echo 
"document.write($msg)";
        break;
    }
}
?> ;


[ 本帖最后由 我不是鱼 于 2008-10-29 22:46 编辑 ]
如履薄冰

非常感谢版主的回答
但是那些时间段怎样一次录入到库里呢,做下拉框选择也不太实际

哪位朋友能帮下

我这样把数据录进去:
insert  into  table(day_start ,day_end,content)  values('2008-10-23','2008-10-24','内容内容');
只有一个开始和结束时间还行,但是那么多的时间段怎样一次录入到库里呢
分开两个输入框开始时间的和结束时间的,一次性把所有需要显示的时间都录进去要怎样做呢

例如在表单里输入多个日期,一次性录入全部日期段,一个内容对应多个日期段,然后在所有日期段里判断今天是否显示内容