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] = "
".htmlspecialchars($s)." | " ; } //本体 for ($l = 0 ;$l < $colmnums; $l++){ print "
---|
情報 | アニメ・特撮 | ニュース・報道 | ドラマ | バラエティ | ドキュメンタリー・教養 | 教育 | 音楽 | 映画 | 趣味・実用 | キッズ | スポーツ | その他 | 演劇 |