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クエリに失敗しました"); //print "$query
\n"; $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 + 1); // print "$rowdata[0]:$i+1
\n"; } } //print "colmnums $colmnums
\n"; //・局ごとに縦に配列入れていく 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 , epgcategory 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); //print "maxrowsstation $maxrowsstation stationname $stationname
\n"; 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]); $epgcategory = htmlspecialchars($stationrowdata[8]); if (isset($timetablehash["$stationrowdata[0]"])){ $number = $timetablehash["$stationrowdata[0]"]; //print "$stationname $stationrowdata[0] [$number] $printstarttime $title $desc
\n"; }else{ $number = 0; //print "$stationname $stationrowdata[0] 現在番組 $printstarttime $title $desc
\n"; } if ($epgcategory == ""){ $item["$number"]["$stationname"] = " onClick=\"location = './reserveepg.php?epgid=$epgid'\">$printstarttime $title $desc"; }else{ $item["$number"]["$stationname"] = " id=\"$epgcategory\" onClick=\"location = './reserveepg.php?epgid=$epgid'\">$printstarttime $title $desc"; }//if }//for }//if //・局ごとに間隔決定 //$item[$i][NHK] はヌルかどうか判定 $dataplace = 0 ; //初期化 $rowspan = 0; for ($i=1; $i <= $colmnums ; $i++){ if ($i === ($colmnums )){//最終行 $rowspan = $i - $dataplace ; //そして自分自身にタグを //if ((!isset($item[$i][$stationname])) && ($item[$i][$stationname] == "")){ if (!isset($item[$i][$stationname])){ $item[$i][$stationname] = null ; }else{ $item[$i][$stationname] = ""; $rowspan--; } //ROWSPAN if ($rowspan === 1 ){ $item[$dataplace][$stationname] = ""; }else{ $item[$dataplace][$stationname] = ""; // $item[$dataplace][$stationname] = ""; } // }elseif ((!isset($item[$i][$stationname]))&&($item[$i][$stationname] == "")){ }elseif (!isset($item[$i][$stationname])){ //ヌルなら //$item[$i][$stationname] = $item[$i][$stationname] ; $item[$i][$stationname] = null ; // $item[$i][$stationname] = "
" ; }else{ //なんか入ってるなら $rowspan = $i - $dataplace; $itemDataplaceStationname = null; if (isset($item[$dataplace][$stationname])){ $itemDataplaceStationname = $item[$dataplace][$stationname]; } if ($rowspan === 1 ){ $item[$dataplace][$stationname] = ""; }else{ $item[$dataplace][$stationname] = ""; // $item[$dataplace][$stationname] = ""; } $dataplace = $i; } }//for }// end of for://・局ごとに縦に配列入れていく //・テーブルレンダリング print "

\n"; //ヘッダ for ($i=0;$i<$stations;$i++){ $rowdata = pg_fetch_row($slistrs, $i); print "" ; } //本体 for ($l = 0 ;$l < $colmnums; $l++){ print ""; for ($m = 0 ; $m < $stations ; $m++ ){ $stationname = $stationhash[$m]; print_r($item[$l]["$stationname"]); } print "\n"; } print "
".htmlspecialchars($rowdata[1])."
\n"; ?>
凡例
情報 アニメ・特撮 ニュース・報道 ドラマ バラエティ ドキュメンタリー・教養 教育 音楽 映画 趣味・実用 キッズ スポーツ その他 演劇