<?phpfunction switchWeek($num){ switch ($num) { case 1: return '星期一'; break; case 2: return '星期二'; break; case 3: return '星期三'; break; case 4: return '星期四'; break; case 5: return '星期五'; break; case 6: return '星期六'; break; case 7: return '星期日'; break; default: return ''; break; }}$con = mysql_connect("localhost","root","") or die('连接失败:'.mysql_error());mysql_select_db("testt");mysql_query('set names utf8');$sql = 'select * from news ';$result = mysql_query($sql);$array = array();while($row = mysql_fetch_array($result,MYSQL_ASSOC)){ $key = date('Y年m月d日',$row['sTime']).' '.switchWeek(date('N',$row['sTime'])); $array[$key][]=$row;}mysql_free_result($result);//var_dump($array);?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>demo</title></head><body><table border='3' style="width: 500px; text-align:center;"><?php foreach ($array as $key => $value) {array_multisort($sTime, SORT_ASC, $value);?> <tr><td colspan='5'><?=$key?></td></tr> <?php foreach ($value as $k => $v) { $sTime[$key] = $v['sTime']; ?> <tr> <td><?=date('H:i',$v['sTime'])?></td> <td><?=$v['title']?></td> <td> <?php if(time() > $v['sTime'] && time() < $v['eTime'] ){ echo '<span style="color: green;">开放中</span>'; } if(time() < $v['sTime']){echo '<span style="color: #999;">暂未开放</span>';} if(time() > $v['eTime']){echo '<span style="color:red ;">已过期</span>';} ?> </td> </tr> <?php } ?><?php }?><tr><td colspan='5'>已过期</td></tr></table></body></html>
最初に期限切れかどうかで並べ替え、次に時間で並べ替え、期限切れ、時間で並べ替えます
単に順番に並べると、期限切れのものは一番下にあり、期限切れでないものは時間の逆順に並べます
$sql = 'select * from news order by guoqi desc, time desc
分類する必要がある場合は、期限切れでないリストを 1 回、2 回循環できます。位置に一度、期限切れのリストの位置に一度、直接コンテンツを出力するループ時に期限切れかどうかを判断するために使用されるフィールド
単に順番に並べると、期限切れのものは一番下、期限切れでないものは一番下になりますtop 時間の逆順に並べてあります
$sql = 'select * from news order by guoqi desc,time desc
分類する必要がある場合は、2回ループし、期限切れになっていないリストの位置を1回ループします。期限切れのリスト位置に対して 1 回、出力コンテンツをループするときにフィールドが期限切れかどうかを直接判断します
出力をカテゴリにループする必要がある場合、これを実現するにはどうすればよいですか?例はありますか?
<table border='3' style="width: 500px; text-align:center;"><?php foreach ($array as $key => $value) {array_multisort($sTime, SORT_ASC, $value);?> <tr><td colspan='5'><?=$key?></td></tr> <?php foreach ($value as $k => $v) { if(time() <= $v['eTime']){ $sTime[$key] = $v['sTime']; ?> <tr> <td><?=date('H:i',$v['sTime'])?></td> <td><?=$v['title']?></td> <td> <?php if(time() > $v['sTime'] && time() < $v['eTime'] ){ echo '<span style="color: green;">开放中</span>'; } if(time() < $v['sTime']){echo '<span style="color: #999;">暂未开放</span>';} ?> </td> </tr> <?php } } ?><?php }?><tr><td colspan='5'>已过期</td></tr><?php foreach ($array as $key => $value) {array_multisort($sTime, SORT_ASC, $value);?> <tr><td colspan='5'><?=$key?></td></tr> <?php foreach ($value as $k => $v) { if(time() > $v['eTime']){ $sTime[$key] = $v['sTime']; ?> <tr> <td><?=date('H:i',$v['sTime'])?></td> <td><?=$v['title']?></td> <td> 已过期 </td> </tr> <?php } } ?><?php }?></table>