EPG番組表
EPG番組表を表示します。
\n";
$yesterday = date ("YmdHi",mktime($starthour , 0 , 0, $startmonth , $startday -1 , $startyear));
$today0400 = date ("YmdHi",mktime(4 , 0 , 0, $startmonth , $startday , $startyear));
$today1200 = date ("YmdHi",mktime(12 , 0 , 0, $startmonth , $startday , $startyear));
$today2000 = date ("YmdHi",mktime(20 , 0 , 0, $startmonth , $startday , $startyear));
$day1after = date ("YmdHi",mktime($starthour , 0 , 0, $startmonth , $startday +1 , $startyear));
$day1 = date ("m/d",mktime($starthour , 0 , 0, $startmonth , $startday +1 , $startyear));
$day2after = date ("YmdHi",mktime($starthour , 0 , 0, $startmonth , $startday +2 , $startyear));
$day2 = date ("m/d",mktime($starthour , 0 , 0, $startmonth , $startday +2 , $startyear));
$day3after = date ("YmdHi",mktime($starthour , 0 , 0, $startmonth , $startday +3 , $startyear));
$day3 = date ("m/d",mktime($starthour , 0 , 0, $startmonth , $startday +3 , $startyear));
$day4after = date ("YmdHi",mktime($starthour , 0 , 0, $startmonth , $startday +4 , $startyear));
$day4 = date ("m/d",mktime($starthour , 0 , 0, $startmonth , $startday +4 , $startyear));
$day5after = date ("YmdHi",mktime($starthour , 0 , 0, $startmonth , $startday +5 , $startyear));
$day5 = date ("m/d",mktime($starthour , 0 , 0, $startmonth , $startday +5 , $startyear));
$day6after = date ("YmdHi",mktime($starthour , 0 , 0, $startmonth , $startday +6 , $startyear));
$day6 = date ("m/d",mktime($starthour , 0 , 0, $startmonth , $startday +6 , $startyear));
$day7after = date ("YmdHi",mktime($starthour , 0 , 0, $startmonth , $startday +7 , $startyear));
$day7 = date ("m/d",mktime($starthour , 0 , 0, $startmonth , $startday +7 , $startyear));
//表示局選定
// $page = 1 ~
$maxdisplay = 8;
$query = "SELECT stationid, stationname, stationrecch, ontvcode FROM foltia_station WHERE \"ontvcode\" ~~ '%ontvjapan%'
";
$rs = m_query($con, $query, "DBクエリに失敗しました");
$maxrows = pg_num_rows($rs);
if ($maxrows > $maxdisplay){
$pages = ceil($maxrows / $maxdisplay) ;
}
$page = getgetnumform(p);
if (($page == "")|| ($page <= 0) ){
$page = 1 ;
$offset = 0 ;
}else{
$page = ereg_replace( "[^0-9]", "", $page);
if ($page > $pages){
$page = $pages ;
}elseif ($page <= 0) {
$page = 1 ;
}
$offset = ($page * $maxdisplay ) - $maxdisplay;
}
print "←前の日 現在 当日(4:00 12:00 20:00) 次の日 $day2 $day3 $day4 $day5 $day6 $day7→
\n";
if ($maxrows > $maxdisplay){
//複数ページ
//$pages = ceil($maxrows / $maxdisplay) ;
if ($page > 1){
$beforepage = $page - 1;
print "←";
}
print " $page / $pages (放送局) ";
if ($page < $pages){
$nextpage = $page + 1;
print "→";
}
}
//ココから新コード
//・局リスト
$query = "SELECT stationid, stationname, stationrecch, ontvcode
FROM foltia_station
WHERE \"ontvcode\" ~~ '%ontvjapan%'
ORDER BY stationid ASC , stationrecch
OFFSET $offset LIMIT $maxdisplay
";
$slistrs = m_query($con, $query, "DBクエリに失敗しました");
$stations = pg_num_rows($slistrs);
for ($i=0 ; $i < $stations ; $i++){
$rowdata = pg_fetch_row($slistrs, $i);
$stationhash[$i] = $rowdata[3] ;
}
//・時間と全順番のハッシュ作る
$epgstart = $start ;
$epgend = calcendtime($start , (8*60));
$query = "SELECT DISTINCT startdatetime
FROM foltia_epg
WHERE foltia_epg.ontvchannel in (
SELECT ontvcode
FROM foltia_station
WHERE \"ontvcode\" ~~ '%ontvjapan%'
ORDER BY stationid ASC , stationrecch
OFFSET $offset LIMIT $maxdisplay
)
AND startdatetime >= $start
AND startdatetime < $epgend
ORDER BY foltia_epg.startdatetime ASC ";
$rs = m_query($con, $query, "DBクエリに失敗しました");
$colmnums = pg_num_rows($rs);
if ($colmnums == 0){
//番組データがない
$colmnums = 2;
}else{
for ($i=0 ; $i < $colmnums ; $i++){
$rowdata = pg_fetch_row($rs, $i);
$timetablehash["$rowdata[0]"] = $i;
}
}
//・局ごとに縦に配列入れていく
for ($j=0 ; $j < $stations ; $j++){
$rowdata = pg_fetch_row($slistrs, $j);
$stationname = $rowdata[3];
$epgstart = $start ;
$epgend = calcendtime($start , (8*60));
$query = "
SELECT startdatetime , enddatetime , lengthmin , epgtitle , epgdesc , epgcategory ,ontvchannel ,epgid
FROM foltia_epg
WHERE foltia_epg.ontvchannel = '$stationname' AND
enddatetime > $epgstart AND
startdatetime < $epgend
ORDER BY foltia_epg.startdatetime ASC
";
$statiodh = m_query($con, $query, "DBクエリに失敗しました");
$maxrowsstation = pg_num_rows($statiodh);
if ($maxrowsstation == 0) {
//print("番組データがありません
");
$item[0]["$stationname"] = "番組データがありません";
}else{
for ($srow = 0; $srow < $maxrowsstation ; $srow++) {
$stationrowdata = pg_fetch_row($statiodh, $srow);
$printstarttime = substr($stationrowdata[0],8,2) . ":" . substr($stationrowdata[0],10,2);
$tdclass = "t".substr($stationrowdata[0],8,2) . substr($stationrowdata[0],10,2);
$title = $stationrowdata[3];
$title = htmlspecialchars(z2h($title));
$desc = $stationrowdata[4];
$desc = htmlspecialchars(z2h($desc));
$height = htmlspecialchars($stationrowdata[2]) * 3;
$epgid = htmlspecialchars($stationrowdata[7]);
if (isset($timetablehash["$stationrowdata[0]"])){
$number = $timetablehash["$stationrowdata[0]"];
}else{
$number = 0;
}
$item["$number"]["$stationname"] = "$printstarttime $title $desc";
}//for
}//if
//・局ごとに間隔決定
//$item[$i][NHK] はヌルかどうか判定
$dataplace = 0 ; //初期化
$rowspan = 0;
for ($i=1; $i <= $colmnums ; $i++){
if ($i === ($colmnums - 1)){//最終行
$rowspan = $i - $dataplace + 1;
//そして自分自身にタグを
if ($item[$i][$stationname] == ""){
$item[$i][$stationname] = "";
}else{
$item[$i][$stationname] = "
".htmlspecialchars($rowdata[1])." | " ; } //本体 for ($l = 0 ;$l < $colmnums; $l++){ print "
---|