Index: trunk/install/php/viewepg.php =================================================================== --- trunk/install/php/viewepg.php (リビジョン 1) +++ trunk/install/php/viewepg.php (リビジョン 36) @@ -4,5 +4,5 @@ http://www.dcc-jpl.com/soft/foltia/ -reserveprogram.php +viewepg.php 目的 @@ -25,10 +25,8 @@
番組表
+EPG番組表
番組表を表示します。 +
EPG番組表を表示します。 $maxdisplay){ //複数ページ @@ -127,44 +122,152 @@ } } - - - $query = "SELECT stationid, stationname, stationrecch, ontvcode FROM foltia_station WHERE \"ontvcode\" ~~ '%ontvjapan%' ORDER BY stationid ASC , stationrecch OFFSET $offset LIMIT $maxdisplay +//ココから新コード +//・局リスト +$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 "; - $rs = m_query($con, $query, "DBクエリに失敗しました"); - -//print ""; -$viewstations = pg_num_rows($rs); -print "
-$rowdata[1] | \n"; + $statiodh = m_query($con, $query, "DBクエリに失敗しました"); + $maxrowsstation = pg_num_rows($statiodh); +if ($maxrowsstation == 0) { + //print("番組データがありません". $item[$i][$stationname] . " | "; + $rowspan--; + } + //ROWSPAN + if ($rowspan === 1 ){ + $item[$dataplace][$stationname] = "". $item[$dataplace][$stationname] . " | "; + }else{ + $item[$dataplace][$stationname] = "". $item[$dataplace][$stationname] . " | "; + } + + }elseif ($item[$i][$stationname] == ""){ + //ヌルなら + $item[$i][$stationname] = $item[$i][$stationname] ; + }else{ + //なんか入ってるなら + $rowspan = $i - $dataplace; + if ($rowspan === 1 ){ + $item[$dataplace][$stationname] = "". $item[$dataplace][$stationname] . " | "; + }else{ + $item[$dataplace][$stationname] = "". $item[$dataplace][$stationname] . " | "; + } + $dataplace = $i; + } -} - -print "
---|---|---|---|---|---|
"; - renderepgstation($con,$rowdata[3],$start); - print " | \n"; +}//for +}// end of for://・局ごとに縦に配列入れていく + +//・テーブルレンダリング +print "
".htmlspecialchars($rowdata[1])." | " ; +} +//本体 +for ($l = 0 ;$l < $colmnums; $l++){ + print "
---|