\n" ; } # # ---------- output open window function ---------- # function putOpenWindowFunction() { echo "\n" ; } function DispResultPref( $db, $road, $roadname, $cat, $sql ) { $mapByroad = new MapByroad( $db ) ; $dbPref = new CDbPref( $db ) ; $dbArea = new CDbArea( $db ) ; $pref_res = $db->Exec( $sql ) ; $pref_row = pg_numrows( $pref_res ) ; if( $pref_row == 0 ) return ; for( $pref_idx=0 ; $pref_idx < $pref_row ; $pref_idx ++ ) { $pref_obj = pg_fetch_object( $pref_res, $pref_idx ) ; $pref_obj = $dbPref->GetObjByNo( $pref_obj->pref ) ; $objArea = $dbArea->GetObjByNo( $pref_obj->area ) ; #対象都道府県内スポット検索 $sql = "select * from spot" . sprintf( " where road=%u", $road ) . sprintf( " and pref=%u", $pref_obj->no ) . sprintf( " and cat=%u", $cat ) . " order by no" ; $rs_res = $db->Exec( $sql ) ; $rs_row = pg_numrows( $rs_res ) ; #地図サイズ取得 $mapByroad->GetSize( $road, $pref_obj->no, $width, $height ) ; #サムネイル $popup = sprintf( "%s%sの%s沿線にある道の駅マップ", $objArea->name, $pref_obj->name, $roadname ) ; printf( "\n" . " " . "\"%s\"", $road, $pref_obj->no, $popup, $popup, $road, $pref_obj->no ) ; echo "
" ."地図をクリックすると拡大表示" ."
\n" ; echo "\n" ; #情報領域 echo "" ; # <地域名><都道府県>の<路線名>沿線にある道の駅リスト printf( "

%s%sの%s沿線にある道の駅

\n", $objArea->name, $pref_obj->name, $roadname ) ; echo "\n" ; #ヘッダー echo "\n" ; echo "\n" ; echo "\n" ; echo "\n" ; #空行 echo "\n" ; for( $rs_idx=0 ; $rs_idx < $rs_row ; $rs_idx++ ) { $rs_obj = pg_fetch_object( $rs_res, $rs_idx ) ; echo "\n" ; echo "\n" ; echo "\n" ; #過渡期的対策(都道府県名が重複しないように) $pref = $dbPref->GetNameByNo( $rs_obj->pref ) ; if( $rs_obj->city == "" ) { #市町村未定義対策 $rs_obj->city = $rs_obj->address ; $rs_obj->address = "" ; } if( ereg( "^$pref(.*)$", $rs_obj->city, $regs )) $rs_obj->city = $regs ; echo "\n" ; echo "\n" ; echo "\n" ; echo "\n" ; } echo "
駅名TEL/住所
" ; if( $rs_obj->infouri ) printf( "%s", $GLOBALS['michieki_uri'], $rs_obj->infouri, $rs_obj->name ); else echo $rs_obj->name ; echo "" . $rs_obj->tel . "
" . $pref . $rs_obj->city . $rs_obj->address . "
\n" ; echo "
\n" ; } } function DispResult( $db, $road, $area, $pref ) { $dbSpotCat = new CDbSpotCat( $db ) ; $dbRoad = new DbRoad( $db ) ; $dbArea = new CDbArea( $db ) ; echo "


\n" ; #道の駅カテゴリ番号確認 if( $db->cat_michieki == 0 ) return ; #道路名取得 $roadname = $dbRoad->GetNameByNo( $road ) ; echo "

" ; echo "\n" ; #$prefが指定されていれば、最上段に表示する。 $without = "" ; if( $pref > 0 ) { $sql = "SELECT pref FROM spot WHERE" . sprintf( " road=%u", $road ) . sprintf( " AND pref=%u", $pref ) . sprintf( " AND cat=%u", $db->cat_michieki ) . " group by pref" . " order by pref" ; DispResultPref( $db, $road, $roadname, $db->cat_michieki, $sql ) ; $without= sprintf( " AND pref!=%u", $pref ) ; } #対象地域内検索 $sql = "select pref from spot where road=$road" . " and pref in ( select no from pref where area=$area )" . sprintf( " AND cat=%u", $db->cat_michieki ) . $without . " group by pref" . " order by pref" ; DispResultPref( $db, $road, $roadname, $db->cat_michieki, $sql ) ; #対象地域外検索 $sql = "select pref from spot where road=$road" . " and pref not in ( select no from pref where area=$area )" . sprintf( " AND cat=%u", $db->cat_michieki ) . $without . " group by pref" . " order by pref" ; DispResultPref( $db, $road, $roadname, $db->cat_michieki, $sql ) ; echo "
\n" ; echo "

" ; } function dspPageHeader( $area, $road, $bWidthSelector=FALSE ) { echo "\n" ; echo "\n" ; echo "\n" ; echo "道の駅をたずねて何千キロ - 沿線検索\n" ; echo "\n" ; echo "\n" ; echo "\n" ; echo "

\n" ; echo "\n" ; echo "\n" ; echo "総合案内に戻る\n" ; echo "

\n" ; echo "\n" ; echo "\n" ; echo "\n" ; echo "\n" ; echo "\n" ; if( $bWidthSelector ) { echo "\n" ; } echo "
\n" ; echo " \"道の駅をたずねて何千キロ\""\n" ; echo "\n" ; echo "
\n" ; echo "

\n" ; echo "ここでは、\n" ; echo "各路線ごとに道の駅が検索可能\n" ; echo "(参考までに選択した地方以外で同路線のものも表示している)。\n" ; echo "なお、\n" ; echo "詳細情報があるものについては、駅名をクリックすると閲覧可能だ。\n" ; echo "旅の計画に役立てて欲しい。\n" ; echo "

\n" ; echo "
\n" ; echo "
\n" ; echo " \"沿線検索\"\n" ; echo "\n" ; DispRoadList( $area, $road ) ; echo "
\n" ; } function mdResult( $db, $area, $road, $pref ) { //----- for maintenance ----- if( file_exists( $GLOBALS['maintenance'] )) { dspPageHeader( $area, $road ) ; echo "

\n" ; echo "只今、データベースのメンテナンス中です。
\n" ; echo "しばらくお待ち下さい。
\n" ; echo "

\n" ; return( 0 ) ; } ; dspPageHeader( $area, $road, TRUE ) ; putOpenWindowFunction() ; if( $road && $area ) DispResult( $db, $road, $area, $pref ) ; } //----- main procedure ----- function main() { $area = $GLOBALS['area'] ; $pref = $GLOBALS['pref'] ; #無くても良い。あれば最上段に表示。 $road = $GLOBALS['road'] ; //----- connect to database ----- $db = new MichiekiDB( "www", "owl" ) ; if( !$db ) { echo "DBへの接続エラーです。" ; return( 0 ) ; } ### ### $road に道路名が入ってきた場合は道路番号に変換 ### if( !is_numeric( $road )) { $dbRoad = new DbRoad( $db ) ; $road = $dbRoad->GetNo( $road ) ; } mdResult( $db, $area, $road, $pref ) ; } main() ;

ご意見・ご感想・ご要望は、ふゆのほしfuyuhoshi@nifty.comまで。
Copyright(c)2000-2004 ふゆのほし All rights reserved
くるま旅支援システム「たびあん」(c)2002-2004 road-star.jp All rights reserved.
本サイトに掲載されている全ての内容の無断使用を禁じます。