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 " | 
|---|
| 情報 | アニメ・特撮 | ニュース・報道 | ドラマ | バラエティ | ドキュメンタリー・教養 | 教育 | 音楽 | 映画 | 趣味・実用 | キッズ | スポーツ | その他 | 演劇 |