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 count(*) FROM foltia_station WHERE \"ontvcode\" LIKE '%ontvjapan%'"; //$rs = m_query($con, $query, "DBクエリに失敗しました"); $rs = sql_query($con, $query, "DBクエリに失敗しました"); $maxrows = $rs->fetchColumn(0); 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\" LIKE '%ontvjapan%' ORDER BY stationid ASC , stationrecch LIMIT ? OFFSET ? "; //$slistrs = m_query($con, $query, "DBクエリに失敗しました"); $slistrs = sql_query($con, $query, "DBクエリに失敗しました",array($maxdisplay,$offset)); while ($rowdata = $slistrs->fetch()) { $stationhash[] = $rowdata[3]; $snames[] = $rowdata[1]; // headder } //・時間と全順番のハッシュ作る $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\" LIKE '%ontvjapan%' ORDER BY stationid ASC , stationrecch LIMIT ? OFFSET ? ) AND startdatetime >= ? AND startdatetime < ? ORDER BY foltia_epg.startdatetime ASC "; //$rs = m_query($con, $query, "DBクエリに失敗しました"); $rs = sql_query($con, $query, "DBクエリに失敗しました",array($maxdisplay,$offset,$start,$epgend)); //print "$query
\n"; $rowdata = $rs->fetch(); if (! $rowdata) { //番組データがない $colmnums = 2; }else{ $colmnums = 0; do { $colmnums++; $timetablehash[$rowdata[0]] = $colmnums; // print "$rowdata[0]:$i+1
\n"; } while ($rowdata = $rs->fetch()); } //print "colmnums $colmnums
\n"; //・局ごとに縦に配列入れていく foreach ($stationhash as $stationname) { $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 = ? AND enddatetime > ? AND startdatetime < ? ORDER BY foltia_epg.startdatetime ASC "; // $statiodh = m_query($con, $query, "DBクエリに失敗しました"); $statiodh = sql_query($con, $query, "DBクエリに失敗しました",array($stationname,$epgstart,$epgend)); $stationrowdata = $statiodh->fetch(); if (! $stationrowdata) { //print("番組データがありません
"); $item[0]["$stationname"] = ">番組データがありません"; }else{ do { $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 } while ($stationrowdata = $statiodh->fetch()); }//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"; //ヘッダ foreach ($snames as $s) { print "" ; } //本体 for ($l = 0 ;$l < $colmnums; $l++){ print ""; foreach ($stationhash as $stationname) { print_r($item[$l]["$stationname"]); } print "\n"; } print "
".htmlspecialchars($s)."
\n"; ?>
凡例
情報 アニメ・特撮 ニュース・報道 ドラマ バラエティ ドキュメンタリー・教養 教育 音楽 映画 趣味・実用 キッズ スポーツ その他 演劇