$val){ $array = explode('=',$val); if($array[0]!="$str") $req = $req + array("$array[0]"=>"$array[1]"); } for($i=0;$i"; echo die("ご迷惑をおかけします"); } $mode = htmlspecialchars(strip_tags($_GET['mode'])); $subn = htmlspecialchars(strip_tags($_GET['subn'])); $queryK = $db->quoteSmart(htmlspecialchars(strip_tags($_GET['k']))); $prefcd = $db->quoteSmart(htmlspecialchars(strip_tags($_GET['q']))); $familycd = $db->quoteSmart(htmlspecialchars(strip_tags($_GET['cd']))); if(isset($_GET['k'])){ $kindcd = $queryK; } else { $kindcd ="'01'"; //デフォルトは哺乳類を表示 } $kcd = str_replace("'", "", $kindcd); $q = str_replace("'", "", $prefcd); if(!empty($_GET['t'])&&!empty($_GET['cd'])){ $sql="select distinct family_name from mst_spec where family_cd=$familycd and kind_cd=$kindcd"; $family_name = $db->getOne($sql)."科"; $subq ="family_cd=$familycd and "; } $addsql = "a.kind_cd=$kindcd and "; if(!empty($subn)){ //$subn = htmlspecialchars(mb_convert_kana(trim($$subn),"as","EUC-JP")); $msubn = htmlspecialchars(trim($subn)); $subt = explode(" ",$msubn); foreach($subt as $indx){ if(strstr($indx,"綱")){ $_str = $db->quoteSmart(str_replace("綱","",$indx)); $subq .= "( b.class_name=$_str) and "; } else if(strstr($indx,"目")){ $_str = $db->quoteSmart(str_replace("目","",$indx)); $subq .= "( b.order_name=$_str) and "; } else if(strstr($indx,"科")){ $_str = $db->quoteSmart(str_replace("科","",$indx)); $subq .= "( b.family_name=$_str) and "; } else if(!empty($indx)){ $indx = $db->quoteSmart("%".$indx."%"); $subq .= "( b.order_name like $indx or b.family_name like $indx or b.japanese_name like $indx or b.science_name like $indx or c.rdb_rank_name like $indx or another_keyword like $indx) and "; } } } switch(htmlspecialchars(strip_tags($_GET['s']))){ case "cta": $order = "catalog_no asc"; break; case "ctd": $order = "catalog_no desc"; break; case "caa": $order = "a.rdb_cd asc,b.kind_cd asc,b.japanese_name asc"; break; case "cad": $order = "a.rdb_cd desc,b.kind_cd asc,b.japanese_name asc"; break; case "oda": $order = "b.order_name asc"; break; case "odd": $order = "b.order_name desc"; break; case "jpa": $order = "b.japanese_name asc"; break; case "jpd": $order = "b.japanese_name desc"; break; case "kda": $order = "b.kind_cd asc"; break; case "kdd": $order = "b.kind_cd desc"; break; case "fma": $order = "b.family_name asc"; break; case "fmd": $order = "b.family_name desc"; break; case "sca": $order = "b.science_name asc,a.rdb_cd asc"; break; case "scd": $order = "b.science_name desc,a.rdb_cd asc"; break; case "ena": $order = "b.env_rankcd asc,a.rdb_cd asc"; break; case "end": $order = "b.env_rankcd desc,a.rdb_cd asc"; break; default: $order = "a.rdb_cd asc,b.kind_cd asc,b.japanese_name asc"; break; } // データ一覧を取得 $sql="select catalog_no,f.another_name,f.another_sci_name,a.biko,e.kind_name,e.kind_cd,d.pref_name,c.unified_rank_cd,c.rdb_rank_name,b.kind_cd,b.ally_name,b.division_name,b.class_name,b.japanese_name,b.order_name,b.family_name,b.science_name,b.env_rankcd,b.family_cd,a.spec_cd,a.rdb_cd from rdb_list as a ". "left join mst_spec as b on a.spec_cd=b.spec_cd and a.kind_cd=b.kind_cd ". "left join mst_rdb_rank as c on a.pref_cd=c.pref_cd and a.rdb_cd=c.rdb_rank_cd and a.book_cd=c.book_cd ". "left join mst_anothername as f on a.pref_cd=f.pref_cd and a.kind_cd=f.kind_cd and a.spec_cd=f.spec_cd ". "left join mst_pref as d on a.pref_cd=d.pref_cd ". "left join mst_kind as e on b.kind_cd=e.kind_cd ". "where $subq $addsql a.pref_cd=$prefcd order by ".$order; $res = $db->getAll($sql,DB_FETCHMODE_ASSOC); //分類群ごとに件数を集計 $sql2="select a.kind_cd,count(a.spec_cd) as count from rdb_list as a ". "left join mst_spec as b on a.spec_cd=b.spec_cd and a.kind_cd=b.kind_cd ". "left join mst_rdb_rank as c on a.pref_cd=c.pref_cd and a.rdb_cd=c.rdb_rank_cd and a.book_cd=c.book_cd ". "left join mst_anothername as d on a.pref_cd=d.pref_cd and a.kind_cd=d.kind_cd and a.spec_cd=d.spec_cd ". "left join mst_kind as e on b.kind_cd=e.kind_cd ". "where $subq a.pref_cd=$prefcd group by a.kind_cd"; $res2 = $db->getASSOC($sql2); $sql3 = "select pref_name from mst_pref where pref_cd=$prefcd"; $pname = $db->getOne($sql3); $sql4 = "select kind_name from mst_kind where kind_cd=$kindcd"; $kname = $db->getOne($sql4); // 2007.01.05 掲載RDBブック名を取得 $sql5 = "select book_name from mst_book where pref_cd=$prefcd and k{$kcd}='○'"; $booklist = $db->getCol($sql5,0); // 2007.01.05追加終わり //Pagerクラス実験 $perpage=15; $params =array( "perPage"=>$perpage, "totalItems"=>count($res), "prevImg"=>"前の15件","nextImg"=>"次の15件", "firstPagePre"=>"{","firstPageText"=>"先頭","firstPagePost"=>"}", "lastPagePre"=>"{","lastPageText"=>"最後","lastPagePost"=>"}"); $o_page = Pager::factory($params); $navi=$o_page->getLinks(); $start =($o_page->getCurrentPageID()-1)*$perpage; // 履歴一覧をセット $sub = urlencode(strip_tags($subn)); $uri= return_uri("s",""); $disp_uri= return_uri("disp",""); $notkey_uri = return_uri("subn",$uri); $fm_uri = return_uri("cd",return_uri("t",$notkey_uri)); $_SESSION['first'] =array("都道府県検索","?mode={$mode}","都道府県検索に戻ります"); $_SESSION['second']=array($pname,"?mode={$mode}&q={$q}&pageID={$_GET['pageID']}","{$pname}"); $_SESSION['third']=array($kname,"?mode={$mode}&q={$q}&k={$kcd}&disp={$_GET['disp']}&pageID={$_GET['pageID']}"); $_SESSION['forth']=""; $_SESSION['fifth']=""; if(isset($_GET['t'])){ $_SESSION['forth'] =array("$family_name","?{$notkey_uri}"); $_SESSION['fifth'] =array("$subn","?{$uri}"); } else { $_SESSION['forth'] =array("$subn","?{$uri}"); } // 検索結果出力 if(count($res)>0){ if(($start+$perpage)>count($res)) $perpage = count($res)-$start; $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty->assign("kindcd",$res[0]['kind_cd']); $o_smarty->assign("kname",$res[0]['kind_name']); //ページリンク作成 $o_smarty->assign("hitcount",count($res)); //該当件数 $o_smarty->assign("pagelink",$navi['all']); //ページリンク $o_smarty->assign("prefname",$res[0]['pref_name']); $o_smarty->assign("data",array_slice($res,$start,$perpage)); $o_smarty->assign("color",$mst_color); $o_smarty->assign("data2",$res2); $o_smarty->assign("booklist",$booklist); $o_smarty->assign("uri",$uri); $o_smarty->assign("fm_uri",$fm_uri); $o_smarty->assign("disp_uri",$disp_uri); $o_smarty->assign("kuri","?mode={$mode}&q={$q}&subn={$subn}"); switch($res[0]['KIND_CD']){ case "02": //鳥類 $o_smarty->display("rdb_splist_bird.tpl"); break; default: $o_smarty->display("rdb_splist.tpl"); break; } } else { $smarty = new Smarty(); $smarty->template_dir="../templates/"; $smarty->compile_dir="../templates_c/"; $smarty->assign("kuri","?mode={$mode}&q={$q}&subn={subn}"); $smarty->assign("data2",$res2); $smarty->assign("kindcd",$k); $smarty->display("nothing2.tpl"); } } // キーワードから種名を検索する function searchFromKeyWord($key){ // キーワードチェック check($key); $db = & DB :: connect( DSN, true ); // 永続接続 if( PEAR :: isError( $db ) ){ // エラー処理 echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $mode = htmlspecialchars(strip_tags($_GET['mode'])); $familycd = $db->quoteSmart(htmlspecialchars(strip_tags($_GET['cd']))); if(!empty($_GET['t'])&&!empty($familycd)){ $sql="select distinct family_name from mst_spec where family_cd=$familycd"; $family_name = $db->getOne($sql)."科"; $subq =" a.family_cd=$familycd"; } // 共通SQL部分を作成 if(isset($_GET['q'])){ $subn = htmlspecialchars(mb_convert_kana(trim($_GET['q']),"as","UTF-8")); //$subn = htmlspecialchars(trim($_GET['q'])); $subt = explode(" ",$subn); foreach($subt as $indx){ if(strstr($indx,"目")){ $_str = $db->quoteSmart(str_replace("目","",$indx)); $query = "( a.order_name=$_str) "; } else if(strstr($indx,"科")){ $_str = $db->quoteSmart(str_replace("科","",$indx)); $query = "( a.family_name=$_str) "; } else { $indx = $db->quoteSmart("%".$indx."%"); $query = "( b.kind_name like $indx or a.order_name like $indx or a.family_name like $indx or a.japanese_name like $indx or a.science_name like $indx or another_keyword like $indx)"; } if($subq==""){ $subq .= $query; } else { $subq .= " AND $query"; } ; } } // とりあえず分類群ごとにカウント $sql = "select distinct a.kind_cd,count(a.kind_cd) as count from mst_spec as a ". "left join mst_kind as b on a.kind_cd=b.kind_cd ". "where $subq group by a.kind_cd "; ; $res2 = $db->getASSOC($sql); if( PEAR :: isError($res2)){ echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $idx=key($res2); if(!empty($_GET['k'])){ $kindcd =$db->quoteSmart(htmlspecialchars(strip_tags($_GET['k']))); } else if(isset($idx)){ $kindcd =$db->quoteSmart($idx); } else { $kindcd ="'01'"; //デフォルトは鳥類を表示 } $kcd = str_replace("'", "", $kindcd); switch(htmlspecialchars(strip_tags($_GET['s']))){ case "kda": $order = "kind_cd asc,order_name asc,family_name asc,japanese_name asc"; break; case "kdd": $order = "kind_cd desc,order_name asc,family_name asc,japanese_name asc"; break; case "oda": $order = "order_name asc,family_name asc,kind_cd asc,japanese_name asc"; break; case "odd": $order = "order_name desc,family_name asc,kind_cd asc,japanese_name asc"; break; case "fma": $order = "family_name asc,order_name asc,kind_cd asc,japanese_name asc"; break; case "fmd": $order = "family_name desc,order_name asc,kind_cd asc,japanese_name asc"; break; case "jpa": $order = "japanese_name asc,kind_cd asc,family_name asc,order_name asc"; break; case "jpd": $order = "japanese_name desc,kind_cd asc,family_name asc,order_name asc"; break; case "sca": $order = "science_name desc,japanese_name asc,kind_cd asc,family_name asc,order_name asc"; break; case "scd": $order = "science_name desc,japanese_name desc,kind_cd asc,family_name asc,order_name asc"; break; case "cla": $order = "class_name asc,kind_cd asc,family_name asc,order_name asc,japanese_name asc"; break; case "cld": $order = "class_name desc,kind_cd asc,family_name asc,order_name asc,japanese_name asc"; break; case "ctd": $order = "catalog_no desc,japanese_name asc"; break; case "cta": $order = "catalog_no asc,japanese_name asc"; break; case "cna": $order = "regist_count desc,japanese_name asc"; break; case "cnd": $order = "regist_count asc,japanese_name asc"; break; case "ena": $order = "env_rankcd desc,japanese_name asc"; break; case "end": $order = "env_rankcd asc,japanese_name asc"; break; default: $order = "kind_cd asc,order_name asc,family_name asc,japanese_name asc"; break; } $sql ="select distinct catalog_no,kind_name,a.kind_cd,a.spec_cd,japanese_name,ally_name,division_name,class_name,order_name,family_name,science_name,regist_count,env_rankcd,family_cd from mst_spec as a ". "left join mst_kind as b on a.kind_cd=b.kind_cd ". "left join mst_anothername as c on a.kind_cd=c.kind_cd and a.spec_cd=c.spec_cd ". "where a.kind_cd=$kindcd and {$subq} order by $order"; $res = $db->getAll($sql,DB_FETCHMODE_ASSOC); if( PEAR :: isError($res)){ echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $sql = "select kind_name from mst_kind where kind_cd=$kindcd"; $kname = $db->getOne($sql); $db->disconnect(); // //Pagerクラス実験 $perpage=15; $params =array( "perPage"=>$perpage, "totalItems"=>count($res), "prevImg"=>"前の15件","nextImg"=>"次の15件", "firstPagePre"=>"{","firstPageText"=>"先頭","firstPagePost"=>"}", "lastPagePre"=>"{","lastPageText"=>"最後","lastPagePost"=>"}"); $o_page = Pager::factory($params); $navi=$o_page->getLinks(); $start =($o_page->getCurrentPageID()-1)*$perpage; $qencode = urlencode($_GET['q']); $uri= return_uri("s",""); $disp_uri= return_uri("disp",""); $notkey_uri = return_uri("subn",$uri); $fm_uri = return_uri("cd",return_uri("t",$notkey_uri)); //履歴一覧をセット $_SESSION['first'] =array("キーワード検索","?mode=spec"); $_SESSION['second']=array(htmlspecialchars($_GET['q']),"?mode={$mode}&q=$qencode"); $_SESSION['third']=array($kname,"?mode={$mode}&q=$qencode&k=$kcd"); $_SESSION['forth']=""; if(!empty($_GET['t']) && !empty($_GET['cd'])){ $_SESSION['forth']=array("$family_name","?{$fm_uri}"); } $_SESSION['fifth']=""; // ページ出力 if(count($res)>0){ if(($start+$perpage)>count($res)) $perpage=count($res)-$start; $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty->assign("kindcd",$kcd); // 暫定処置 $o_smarty->assign("kname",$kname); // 暫定処置 $o_smarty->assign("hitcount",count($res)); $o_smarty->assign("pagelink",$navi['all']); $o_smarty->assign("ini",$ini); //イニシャル $o_smarty->assign("data",array_slice($res,$start,$perpage)); $o_smarty->assign("data2",$res2); $o_smarty->assign("uri",$uri); $o_smarty->assign("fm_uri",$fm_uri); $o_smarty->assign("disp_uri",$disp_uri); $o_smarty->assign("kuri","?mode={$mode}&q=$qencode&subn={$subn}"); $o_smarty->display("key_list.tpl"); } else { $smarty = new Smarty(); $smarty->template_dir="../templates/"; $smarty->compile_dir="../templates_c/"; $smarty->assign("mode","key"); $smarty->assign("kindcd",$kcd); $smarty->assign("q",htmlspecialchars($_GET['q'])); $smarty->assign("kuri","?mode={$mode}&q=$qencode"); $smarty->assign("data2",$res2); $smarty->display("nothing2.tpl"); } } // キーワードから種名を検索する function searchFromKeyWordSci($key){ // 入力キーワードチェック check($key); $db = & DB :: connect( DSN, true ); // 永続接続 if( PEAR :: isError( $db ) ){ // エラー処理 echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $mode = htmlspecialchars(strip_tags($_GET['mode'])); $q = htmlspecialchars(strip_tags($_GET['q'])); $subn = htmlspecialchars(strip_tags($_GET['subn'])); $familycd = $db->quoteSmart(htmlspecialchars(strip_tags($_GET['cd']))); if(!empty($_GET['t'])&&!empty($_GET['cd'])){ $sql="select distinct family_name from mst_spec where family_cd=$familycd"; $family_name = $db->getOne($sql)."科"; $subq =" a.family_cd=$familycd"; } // 共通SQL部分を作成 if(isset($key)){; $subt = explode(" ",mb_convert_kana(trim($key),"as","UTF-8")); foreach($subt as $indx){ if($subq==""){ $indx = $db->quoteSmart("%".$indx."%"); $subq .= "(a.science_name like $indx)"; } else { $indx = $db->quoteSmart("%".$indx."%"); $subq .= "and (a.science_name like $indx)"; } } } $sql2 = "select a.kind_cd,count(a.spec_cd) as count from mst_spec as a ". "left join mst_kind as b on a.kind_cd=b.kind_cd where $subq group by a.kind_cd"; $res2 = $db->getASSOC($sql2); if( PEAR :: isError($res2)){ echo "システムエラーが発生しました!
"; echo die("ご迷惑をおかけします"); } $idx=key($res2); if(!empty($_GET['k'])){ $kindcd =$db->quoteSmart(htmlspecialchars(strip_tags($_GET['k']))); } else if(isset($idx)){ $kindcd =$idx; } else { $kindcd ="'01'"; //デフォルトは鳥類を表示 } $kcd = str_replace("'", "", $kindcd); switch(htmlspecialchars(strip_tags($_GET['s']))){ case "kda": $order = "kind_cd asc,order_name asc,family_name asc,japanese_name asc"; break; case "kdd": $order = "kind_cd desc,order_name asc,family_name asc,japanese_name asc"; break; case "oda": $order = "order_name asc,family_name asc,kind_cd asc,japanese_name asc"; break; case "odd": $order = "order_name desc,family_name asc,kind_cd asc,japanese_name asc"; break; case "fma": $order = "family_name asc,order_name asc,kind_cd asc,japanese_name asc"; break; case "fmd": $order = "family_name desc,order_name asc,kind_cd asc,japanese_name asc"; break; case "jpa": $order = "japanese_name asc,kind_cd asc,family_name asc,order_name asc"; break; case "jpd": $order = "japanese_name desc,kind_cd asc,family_name asc,order_name asc"; break; case "sca": $order = "science_name desc,japanese_name asc,kind_cd asc,family_name asc,order_name asc"; break; case "scd": $order = "science_name desc,japanese_name desc,kind_cd asc,family_name asc,order_name asc"; break; case "cla": $order = "class_name asc,kind_cd asc,family_name asc,order_name asc,japanese_name asc"; break; case "cld": $order = "class_name desc,kind_cd asc,family_name asc,order_name asc,japanese_name asc"; break; case "cna": $order = "regist_count desc,japanese_name asc"; break; case "cnd": $order = "regist_count asc,japanese_name asc"; break; case "ena": $order = "env_rankcd desc,japanese_name asc"; break; case "end": $order = "env_rankcd asc,japanese_name asc"; break; default: $order = "kind_cd asc,order_name asc,family_name asc,japanese_name asc"; break; } $sql = "select catalog_no,kind_name,a.kind_cd,spec_cd,japanese_name,ally_name,division_name,order_name,family_name,science_name,regist_count,env_rankcd,family_cd from mst_spec as a ". "left join mst_kind as b on a.kind_cd=b.kind_cd where a.kind_cd=$kindcd and $subq order by $order"; $res = $db->getAll($sql,DB_FETCHMODE_ASSOC); if( PEAR :: isError($res)){ echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $sql = "select kind_name from mst_kind where kind_cd=$kindcd"; $kname = $db->getOne($sql); $db->disconnect(); // //Pagerクラス実験 $perpage=15; $params =array( "perPage"=>$perpage, "totalItems"=>count($res), "prevImg"=>"前の15件","nextImg"=>"次の15件", "firstPagePre"=>"{","firstPageText"=>"先頭","firstPagePost"=>"}", "lastPagePre"=>"{","lastPageText"=>"最後","lastPagePost"=>"}"); $o_page = Pager::factory($params); $navi=$o_page->getLinks(); $start =($o_page->getCurrentPageID()-1)*$perpage; $uri= return_uri("s",""); $disp_uri= return_uri("disp",""); $notkey_uri = return_uri("subn",$uri); $fm_uri = return_uri("cd",return_uri("t",$notkey_uri)); //履歴一覧をセット $_SESSION['first'] =array("キーワード検索","?mode=spec"); $_SESSION['second']=array(htmlspecialchars($q),"?mode={$mode}&q={$q}"); $_SESSION['third']=array($kname,"?mode={$mode}&q={$q}&k={$kcd}"); $_SESSION['forth']=""; if(!empty($_GET['t']) && !empty($_GET['cd'])){ $_SESSION['forth']=array("$family_name","?{$fm_uri}"); $_SESSION['fifth']=array("$subn","?{$uri}"); } else { $_SESSION['forth']=array("$subn","?{$uri}"); } // ページ出力 if(count($res)>0){ if(($start+$perpage)>count($res)) $perpage=count($res)-$start; $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty->assign("mode","sci"); $o_smarty->assign("q",htmlspecialchars($q)); $o_smarty->assign("kindcd",$kindcd); $o_smarty->assign("kname",$kname); $o_smarty->assign("hitcount",count($res)); $o_smarty->assign("pagelink",$navi['all']); $o_smarty->assign("ini",$ini); //イニシャル $o_smarty->assign("data",array_slice($res,$start,$perpage)); $o_smarty->assign("data2",$res2); $o_smarty->assign("uri",$uri); $o_smarty->assign("fm_uri",$fm_uri); $o_smarty->assign("kuri","?mode={$mode}&q={$q}&subn={$subn}"); $o_smarty->assign("disp_uri",$disp_uri); $o_smarty->display("key_list.tpl"); } else { $smarty = new Smarty(); $smarty->template_dir="../templates/"; $smarty->compile_dir="../templates_c/"; $smarty->assign("data2",$res2); $smarty->assign("kindcd",$kindcd); $smarty->assign("kuri","?mode={$mode}&q={$q}&subn={$subn}"); $smarty->display("nothing2.tpl"); } } // 種名検索のデータ一覧を表示する function searchFromName(){ $db = & DB :: connect( DSN, true ); // 永続接続 if( PEAR :: isError( $db ) ){ // エラー処理 echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } global $maxcount; $ini = htmlspecialchars($_GET['q']); // 分類群指定の場合 if(isset($_GET['k'])){ $kindcd = htmlspecialchars(strip_tags($_GET['k'])); } else if(isset($idx)){ $kindcd = $idx; } else { $kindcd = "01"; //デフォルトは哺乳類; } if(!empty($_GET['t']) && !empty($_GET['cd'])){ $familycd=$db->quoteSmart(htmlspecialchars(strip_tags($_GET['cd']))); $sql="select distinct family_name from mst_spec where family_cd=$familycd"; $family_name = $db->getOne($sql)."科"; $subq ="family_cd=$familycd and "; } // 絞込み項目の解析 if(isset($_GET['subn'])){ //$subn = htmlspecialchars(mb_convert_kana(trim($_GET['subn']),"as","UTF-8")); $subn = htmlspecialchars(trim($_GET['subn'])); $subt = explode(" ",$subn); foreach($subt as $indx){ if(strstr($indx,"目")){ $_str = $db->quoteSmart(str_replace("目","",$indx)); $subq = "( a.order_name=$_str) and "; } else if(strstr($indx,"科")){ $_str = $db->quoteSmart(str_replace("科","",$indx)); $subq .= "( a.family_name=$_str) and "; } else { $indx = $db->quoteSmart("%".$indx."%"); $subq .= "( order_name like $indx or family_name like $indx or japanese_name like $indx or science_name like $indx) and "; } } } // $sql2="select a.kind_cd,count(a.kind_cd) as count from mst_spec as a ". "left join mst_kind as b on a.kind_cd=b.kind_cd where $subq japanese_name like '$ini%' group by a.kind_cd"; $res2 = $db->getASSOC($sql2); $idx = key($res2); $sql3="select kind_name from mst_kind where kind_cd='{$kindcd}'"; $kname = $db->getOne($sql3); $addsql =" a.kind_cd='$kindcd' and "; switch(htmlspecialchars(strip_tags($_GET['s']))){ case "cta": $order = "catalog_no asc"; break; case "ctd": $order = "catalog_no desc"; break; case "kda": $order = "a.kind_cd asc,japanese_name asc"; break; case "kdd": $order = "a.kind_cd desc,japanese_name asc"; break; case "jpd": $order = "japanese_name desc"; break; case "jpa": $order = "japanese_name asc"; break; case "odd": $order = "order_name desc,japanese_name asc"; break; case "oda": $order = "order_name,japanese_name asc"; break; case "fmd": $order = "family_name desc,japanese_name asc"; break; case "fma": $order = "family_name,japanese_name asc"; break; case "scd": $order = "science_name desc,japanese_name asc"; break; case "sca": $order = "science_name,japanese_name asc"; break; case "cna": $order = "regist_count desc,japanese_name asc"; break; case "cnd": $order = "regist_count asc,japanese_name asc"; break; case "ena": $order = "env_rankcd asc,japanese_name asc"; break; case "end": $order = "env_rankcd desc,japanese_name asc"; break; default: $order = "a.kind_cd asc,japanese_name asc"; break; } $sql="select catalog_no,kind_name,a.kind_cd,spec_cd,japanese_name,ally_name,division_name,class_name,order_name,family_name,science_name,regist_count,env_rankcd,family_cd from mst_spec as a ". "left join mst_kind as b on a.kind_cd=b.kind_cd where $subq $addsql japanese_name like '$ini%' order by ".$order; $res = $db->getAll($sql,DB_FETCHMODE_ASSOC); if( PEAR :: isError($res)){ echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $db->disconnect(); // //Pagerクラス実験 $perpage=15; $params =array( "perPage"=>$perpage, "totalItems"=>count($res), "prevImg"=>"前の15件","nextImg"=>"次の15件", "firstPagePre"=>"{","firstPageText"=>"先頭","firstPagePost"=>"}", "lastPagePre"=>"{","lastPageText"=>"最後","lastPagePost"=>"}"); $o_page = Pager::factory($params); $navi=$o_page->getLinks(); $start =($o_page->getCurrentPageID()-1)*$perpage; $q_encode = urlencode(strip_tags($_GET['q'])); $sub_encode=urlencode(strip_tags($_GET['subn'])); $uri= return_uri("s",""); $notkey_uri = return_uri("subn",$uri); $fm_uri = return_uri("cd",return_uri("t",$notkey_uri)); $disp_uri = return_uri("disp",""); // 履歴一覧をセット $_SESSION['first'] =array("種名検索","{$_SERVER['PHP_SELF']}?mode={$_GET['mode']}"); $_SESSION['second']=array(htmlspecialchars($_GET['q']),"{$_SERVER['PHP_SELF']}?mode={$_GET['mode']}&q=$q_encode&k={$_GET['k']}&pageID={$_GET['pageID']}"); $_SESSION['third'] =array("$kname","{$_SERVER['PHP_SELF']}?mode={$_GET['mode']}&q=$q_encode&k={$kindcd}&disp={$_GET['disp']}&pageID={$_GET['pageID']}"); if(!empty($_GET['t'])){ $_SESSION['forth'] =array("$family_name","?{$notkey_uri}"); $_SESSION['fifth'] =array("$subn","?{$uri}"); } else { $_SESSION['forth'] =array("$subn","?{$uri}"); } // ページ出力 if(count($res)>0){ if(($start+$perpage)>count($res)) $perpage=count($res)-$start; $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty->assign("mode","spec"); $o_smarty->assign("q",htmlspecialchars($_GET['q'])); $o_smarty->assign("subn",htmlspecialchars($_GET['subn'])); $o_smarty->assign("kindcd",$res[0]['kind_cd']); // 暫定処置 $o_smarty->assign("kname",$res[0]['kind_name']); // 暫定処置 $o_smarty->assign("hitcount",count($res)); $o_smarty->assign("pagelink",$navi['all']); $o_smarty->assign("ini",$ini); //イニシャル $o_smarty->assign("data",array_slice($res,$start,$perpage)); $o_smarty->assign("data2",$res2); $o_smarty->assign("uri",$uri); $o_smarty->assign("fm_uri",$fm_uri); $o_smarty->assign("kuri","?mode={$_GET['mode']}&q=$q_encode&subn={$_GET['subn']}"); $o_smarty->assign("disp_uri",$disp_uri); $o_smarty->display("ini_list.tpl"); } else { $smarty = new Smarty(); $smarty->template_dir="../templates/"; $smarty->compile_dir="../templates_c/"; $smarty->assign("kindcd",$kindcd); $smarty->assign("kuri","?mode={$_GET['mode']}&q=$q_encode&subn={$_GET['subn']}"); $smarty->assign("data2",$res2); $smarty->display("nothing2.tpl"); } } // 基準ランクからデータを検索する function searchFromRank(){ global $mst_unirank; global $mst_color; $db = & DB :: connect( DSN, true ); // 永続接続 if( PEAR :: isError( $db ) ){ // エラー処理 echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $familycd = $db->quoteSmart(strip_tags(htmlspecialchars($_GET['cd']))); $k = strip_tags(htmlspecialchars($_GET['k'])); $mode = htmlspecialchars(strip_tags($_GET['mode'])); $uni_rank = htmlspecialchars(strip_tags($_GET['q'])); if(!is_numeric($uni_rank)){ echo die("不正な検索パラメータです"); } $kind = htmlspecialchars(strip_tags($_GET['k'])); if(!empty($_GET['t']) && !empty($_GET['cd'])){ $sql="select distinct family_name from mst_spec where family_cd=$familycd"; $family_name = $db->getOne($sql)."科"; $subq ="family_cd=$familycd and "; } // 絞り込みオプション if(isset($_GET['subn'])){ //$subn = htmlspecialchars(mb_convert_kana(trim($_GET['subn']),"as","EUC-JP")); $subn = htmlspecialchars(trim($_GET['subn'])); $key = explode(" ",$subn); foreach($key as $indx){ if(strstr($indx,"目")){ $_str = str_replace("目","",$indx); $subq .= "( c.order_name='$_str') and "; } else if(strstr($indx,"科")){ $_str = str_replace("科","",$indx); $subq .= "( c.family_name='$_str') and "; } else { $indx = $db->quoteSmart("%".$indx."%"); $subq .= "(d.pref_name like $indx or c.order_name like $indx or c.family_name like $indx or c.japanese_name like $indx or c.science_name like $indx or c.another_keyword like $indx) and "; } } } //分類群ごとに件数を集計 $sql2="select b.kind_cd,count(b.spec_cd) as count from mst_rdb_rank as a ,rdb_list as b ". "left join mst_spec as c on b.spec_cd=c.spec_cd and b.kind_cd=c.kind_cd ". "left join mst_pref as d on b.pref_cd=d.pref_cd ". "where $subq a.pref_cd=b.pref_cd and a.rdb_rank_cd=b.rdb_cd and a.book_cd=b.book_cd and a.unified_rank_cd=$uni_rank group by b.kind_cd"; $res2 = $db->getASSOC($sql2); // 分類群指定の場合 if(isset($_GET['k'])){ $kindcd = $db->quoteSmart(htmlspecialchars(strip_tags($k))); } else if(isset($idx)){ $kindcd = $idx; } else { $kindcd = "'01'"; //デフォルトは哺乳類; } $kcd = str_replace("'", "", $kindcd); // ソートオプション switch(htmlspecialchars($_GET['s'])){ case "oda": //目名昇順 $order = "c.order_name asc,c.japanese_name asc,d.pref_cd asc"; break; case "odd": //目名降順 $order = "c.order_name desc,c.japanese_name asc,d.pref_cd asc"; break; case "fma": //科名昇順 $order = "c.family_name asc,c.japanese_name asc,d.pref_cd asc"; break; case "fmd": //科名降順 $order = "c.family_name desc,c.japanese_name asc,d.pref_cd asc"; break; case "jpa": //和名昇順 $order = "c.japanese_name asc,d.pref_cd asc"; break; case "jpd": //和名降順 $order = "c.japanese_name desc,d.pref_cd asc"; break; case "sca": //科名昇順 $order = "c.science_name asc"; break; case "scd": //科名降順 $order = "c.science_name desc"; break; case "pfa": //県名昇順 $order = "d.pref_cd asc,c.japanese_name asc"; break; case "pfd": //県名降順 $order = "d.pref_cd desc,c.japanese_name asc"; break; default: $order = "d.pref_cd asc,c.japanese_name asc"; break; } $sql = "select a.unified_rank_cd,b.biko,a.rdb_rank_name,d.pref_name,b.spec_cd,e.kind_name,c.kind_cd,c.japanese_name,c.ally_name,c.division_name,c.class_name,c.science_name,c.order_name,c.family_name,c.family_cd,b.rdb_cd,b.rdb_cd from mst_rdb_rank as a ,rdb_list as b ". "left join mst_spec as c on b.spec_cd=c.spec_cd and b.kind_cd=c.kind_cd ". "left join mst_pref as d on b.pref_cd=d.pref_cd ". "left join mst_kind as e on c.kind_cd=e.kind_cd ". "where $subq c.kind_cd=$kindcd and a.pref_cd=b.pref_cd and a.rdb_rank_cd=b.rdb_cd and a.book_cd=b.book_cd and a.unified_rank_cd=$uni_rank order by $order"; $res = $db->getAll($sql,DB_FETCHMODE_ASSOC); if( PEAR :: isError( $res ) ){ // エラー処理 echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $sql="select kind_name from mst_kind where kind_cd=$kindcd"; $kname = $db->getOne($sql); $db->disconnect(); //Pagerクラス作成 $perpage=15; $params =array( "perPage"=>$perpage, "totalItems"=>count($res), "prevImg"=>"前の15件","nextImg"=>"次の15件", "firstPagePre"=>"{","firstPageText"=>"先頭","firstPagePost"=>"}", "lastPagePre"=>"{","lastPageText"=>"最後","lastPagePost"=>"}"); $o_page = Pager::factory($params); $navi=$o_page->getLinks(); $start =($o_page->getCurrentPageID()-1)*$perpage; $q_encode = urlencode($_GET['q']); $sub_encode=urlencode($_GET['subn']); $uri= return_uri("s",""); $notkey_uri = return_uri("subn",$uri); $fm_uri = return_uri("cd",return_uri("t",$notkey_uri)); // 履歴メニューの出力 $_SESSION['first'] =array("RDBカテゴリ検索","?mode={$mode}"); $_SESSION['second']=array($mst_unirank[$uni_rank],"?mode={$mode}&q=$q_encode&pageID={$_GET['pageID']}"); $_SESSION['third']=array($kname,"?mode={$mode}&q=$q_encode&k={$kcd}&pageID={$_GET['pageID']}"); if(isset($_GET['t'])){ $_SESSION['third'] =array("$family_name","?$notkey_uri"); $_SESSION['forth'] =array("$subn","?$uri"); } else { $_SESSION['third'] =array("$subn","?$uri"); } //ページ出力 if(count($res)>0){ if(($start+$perpage)>count($res)) $perpage=count($res)-$start; $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty->assign("kindcd",$kcd); $o_smarty->assign("kname",$kname); $o_smarty->assign("pagelink",$navi['all']); $o_smarty->assign("hitcount",count($res)); $o_smarty->assign("unirank",$uni_rank); $o_smarty->assign("uri",$uri); $o_smarty->assign("fm_uri","?$fm_uri"); $o_smarty->assign("data",array_slice($res,$start,$perpage)); $o_smarty->assign("color",$mst_color); $o_smarty->assign("data2",$res2); $o_smarty->assign("kuri","?mode={$mode}&q={$_GET['q']}&subn={$_GET['subn']}"); switch($res[0]['KIND_CD']){ case "02": $o_smarty->display("rdb_rlist_bird.tpl"); break; default: $o_smarty->display("rdb_rlist.tpl"); break; } } else { $smarty = new Smarty(); $smarty->template_dir="../templates/"; $smarty->compile_dir="../templates_c/"; $smarty->assign("data2",$res2); $smarty->assign("kindcd",$kcd); $smarty->assign("kuri","?mode={$mode}&q={$_GET['q']}&subn={$_GET['subn']}"); $smarty->display("nothing2.tpl"); } } // 各分類群の概要データを表示する function searchFromKind($kindcd){ $db = & DB :: connect( DSN, true ); // 永続接続 if( PEAR :: isError( $db ) ){ // エラー処理 echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $kindcd = $db->quoteSmart(htmlspecialchars(strip_tags($kindcd))); $mode = htmlspecialchars(strip_tags($_GET['mode'])); $s = htmlspecialchars(strip_tags($_GET['s'])); $q = htmlspecialchars(strip_tags($_GET['q'])); $t = htmlspecialchars(strip_tags($_GET['t'])); $subn = htmlspecialchars(strip_tags($_GET['subn'])); $disp = htmlspecialchars(strip_tags($_GET['disp'])); $familycd = $db->quoteSmart(htmlspecialchars(strip_tags($_GET['cd']))); if(!empty($t) && !empty($familycd)){ $sql="select distinct family_name from mst_spec where family_cd=$familycd"; $family_name = $db->getOne($sql)."科"; $subq ="family_cd=$familycd and "; } if(isset($subn)){ //$subn = htmlspecialchars(mb_convert_kana(trim($subn),"as","EUC-JP")); $subn = htmlspecialchars(strip_tags(trim($subn))); $subt = explode(" ",$subn); foreach($subt as $indx){ if(strstr($indx,"目")){ $_str = $db->quoteSmart(str_replace("目","",$indx)); $subq .= "( a.order_name=$_str) and "; } else if(strstr($indx,"科")){ $_str= $db->quoteSmart(str_replace("科","",$indx)); $subq .= "( a.family_name=$_str) and "; } else if(!empty($indx)){ $indx = $db->quoteSmart("%".$indx."%"); $subq .= "( a.class_name like $indx or a.order_name like $indx or a.family_name like $indx or a.japanese_name like $indx or a.science_name like $indx or a.another_keyword like $indx ) and "; } } } $sort = htmlspecialchars($s); switch($sort){ case "jpa": $order = "japanese_name asc"; break; case "jpd": $order = "japanese_name desc"; break; case "oda": $order = "order_name,japanese_name asc"; break; case "odd": $order = "order_name desc,japanese_name asc"; break; case "fma": $order = "family_name,japanese_name asc"; break; case "fmd": $order = "family_name desc,japanese_name asc"; break; case "sca": $order = "science_name,japanese_name asc"; break; case "scd": $order = "science_name desc,japanese_name asc"; break; case "cna": $order = "regist_count desc,japanese_name asc"; break; case "cnd": $order = "regist_count asc,japanese_name asc"; break; case "ena": $order = "env_rankcd asc,japanese_name asc"; break; case "end": $order = "env_rankcd desc,japanese_name asc"; break; case "cla": $order = "catalog_no asc"; break; case "cld": $order = "catalog_no desc"; break; default: $order = "catalog_no asc"; break; } $sql="select catalog_no,kind_name,a.kind_cd,a.spec_cd,japanese_name,ally_name,division_name,class_name,order_name,family_name,science_name,regist_count,env_rankcd,family_cd from mst_spec as a ". "left join mst_kind as b on a.kind_cd=b.kind_cd ". "where $subq a.kind_cd=$kindcd order by ".$order; $res = $db->getAll($sql,DB_FETCHMODE_ASSOC); if( PEAR :: isError( $res ) ){ // エラー処理 echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } // $sql2 = "select kind_name from mst_kind where kind_cd=$kindcd"; $kname = $db->getOne($sql2); // //Pagerクラス実験 $perpage=15; $params =array( "perPage"=>$perpage, "totalItems"=>count($res), "prevImg"=>"前の15件","nextImg"=>"次の15件", "firstPagePre"=>"{","firstPageText"=>"先頭","firstPagePost"=>"}", "lastPagePre"=>"{","lastPageText"=>"最後","lastPagePost"=>"}"); $o_page = Pager::factory($params); $navi=$o_page->getLinks(); $start =($o_page->getCurrentPageID()-1)*$perpage; // 履歴出力 $sub_encode =urlencode($subn); $q_encode =urlencode($q); $uri= return_uri("s",""); $disp_uri= return_uri("disp",""); $notkey_uri = return_uri("subn",$uri); $fm_uri = return_uri("cd",return_uri("t",$notkey_uri)); $_SESSION['first'] =array("分類群検索","{$_SERVER['PHP_SELF']}?mode=$mode"); $_SESSION['second']=array($kname,"{$_SERVER['PHP_SELF']}?mode=$mode&q=$q_encode&pageID={$_GET['pageID']}&disp={$disp}"); if(isset($t)){ $_SESSION['third'] =array("$family_name","?$notkey_uri"); $_SESSION['forth'] =array("$subn","?$uri"); } else { $_SESSION['third'] =array("$subn","?$uri"); } //ページ出力 if(count($res)>0){ if(($start+$perpage)>count($res)) $perpage=count($res)-$start; $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty->assign("kname",$res[0]['kind_name']); $o_smarty->assign("pagelink",$navi['all']); $o_smarty->assign("hitcount",count($res)); $o_smarty->assign("data",array_slice($res,$start,$perpage)); $o_smarty->assign("uri",$uri); $o_smarty->assign("fm_uri",$fm_uri); $o_smarty->assign("disp_uri",$disp_uri); $o_smarty->display("rdb_klist.tpl"); } else { $smarty = new Smarty(); $smarty->template_dir="../templates/"; $smarty->compile_dir="../templates_c/"; $smarty->display("nothing.tpl"); } } // 種名リストを表示する function showSpecList($start,$cnt,$list){ $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; // $o_smarty->assign("kindcd",$kindcd); // 暫定処置 $o_smarty->assign("data",array_slice($list,$start,$cnt)); $o_smarty->display("rdb_list.tpl"); } function getMap(){ // 履歴出力 $smarty = new Smarty(); $smarty->template_dir="../templates/"; $smarty->compile_dir="../templates_c/"; $smarty->display("rireki.tpl"); ?>
  分類群検索 都道府県検索 種名検索 RDBカテゴリ検索  
都道府県指定状況を一覧表で表示 | 都道府県指定状況を地図で表示
"; echo die("ご迷惑をおかけします"); } $q = $db->quoteSmart(htmlspecialchars($_GET['q'])); $kind = $db->quoteSmart(substr(htmlspecialchars($_GET['q']),0,2)); // 一覧表作成のSQL $sql="select pref_cd,pref_name from mst_pref"; $sql2="select a.pref_cd,b.rdb_rank_name,b.unified_rank_cd,c.japanese_name,c.science_name from rdb_list as a ". "left join mst_rdb_rank as b on a.rdb_cd=b.rdb_rank_cd and a.pref_cd=b.pref_cd and a.book_cd=b.book_cd ". "left join mst_spec as c on a.spec_cd=c.spec_cd and a.kind_cd=c.kind_cd ". " where a.spec_cd=$q and a.kind_cd=$kind order by a.pref_cd"; $sql3="select pref_cd,another_name,another_sci_name from mst_anothername where spec_cd=$q"; $rs1 = $db->getAssoc($sql); if( PEAR :: isError( $rs1 ) ){ echo "システムエラーが発生しました1
"; echo die("ご迷惑をおかけします"); } $rs2 = $db->getASSOC($sql2); if( PEAR :: isError( $rs2 )){ echo "システムエラーが発生しました2
"; echo die("ご迷惑をおかけします"); } $rs3 = $db->getASSOC($sql3); if( PEAR :: isError( $rs3 )){ echo "システムエラーが発生しました3
"; echo die("ご迷惑をおかけします"); } //連想配列組みなおし foreach($rs1 as $index=>$val){ $spname =$rs2[$index][2]; $sciname =$rs2[$index][3]; if($rs3[$index][0]!=""){ $spname = $rs3[$index][0]; $sciname = $rs3[$index][1]; } array_push($plist,array("prefcd"=>"$index","prefname"=>"$val","rdbrank"=>"{$rs2[$index][0]}","sciname"=>"{$sciname}","spname"=>"{$spname}","unirank"=>"{$rs2[$index][1]}")); } // 順番入れ替え switch(htmlspecialchars($_GET['sort'])){ case s: krsort($plist); break; case n: ksort($plist); break; default: break; } // 一覧表出力 $envcd = $rs2["00"][0]; $o_smarty2 = new Smarty(); $o_smarty2->template_dir="../templates/"; $o_smarty2->compile_dir="../templates_c/"; $o_smarty2->assign("data",$plist); $o_smarty2->assign("color",$mst_color); $o_smarty2->display("pflist.tpl"); return $envcd; } // 地図を作成する function makeMap($envcd){ $db = & DB :: connect( DSN, true ); // 永続接続 if( PEAR :: isError( $db ) ){ // エラー処理 echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } $q = $db->quoteSmart(htmlspecialchars($_GET['q'])); $kind = $db->quoteSmart(substr(htmlspecialchars($_GET['q']),0,2)); $tlist = array(); $sql="select a.pref_cd,a.rdb_cd,b.unified_rank_cd from rdb_list as a ". "left join mst_rdb_rank as b on b.rdb_rank_cd=a.rdb_cd and b.pref_cd=a.pref_cd and b.book_cd=a.book_cd ". "where spec_cd=$q"; $rs = $db->getAll($sql,DB_FETCHMODE_ASSOC); if( PEAR :: isError( $rs )){ echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } // 種情報取得 $sql="select japanese_name,science_name,ally_name,division_name,class_name,order_name,family_name,another_keyword from mst_spec where spec_cd=$q and kind_cd=$kind"; $rs = $db->getRow($sql,DB_FETCHMODE_ASSOC); if( PEAR :: isError( $rs )){ echo "システムエラーが発生しました
"; echo die("ご迷惑をおかけします"); } // 地図出力 $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty->assign("envcd",$envcd); // $o_smarty->assign("output",$output); $o_smarty->assign("fileid",htmlspecialchars($_GET['q'])); $o_smarty->assign("data",$rs); $o_smarty->display("map.tpl"); } // 分類群選択画面 function getKind(){ $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty-> display("search_kind.tpl"); } // ランク選択画面 function RankMenu(){ $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty-> display("search_rank.tpl"); } // 種名検索の検索一覧を表示する function getSearchList(){ $linkurl=$_SERVER['PHP_SELF']."?mode=spec&ini="; $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty->display("search_keyword.tpl"); } // 都道府県検査画面 function getDataFromRank(){ $o_smarty = new Smarty(); $o_smarty->template_dir="../templates/"; $o_smarty->compile_dir="../templates_c/"; $o_smarty->display("search_region.tpl"); } function check($keyword){ if(empty($keyword)){ echo "キーワードが入力されていません"; ?> template_dir="../templates/"; $smarty->compile_dir="../templates_c/"; $mode = $_GET['mode']; switch($mode){ case 'kind': $smarty->display('search_kind.tpl'); break; case 'rank': $smarty->display('search_rank.tpl'); break; case 'spec': $smarty->display('search_keyword.tpl'); break; case 'region': $smarty->display('search_region.tpl'); break; } } // メインロジック function mainlogic(){ $mode =$_GET['mode']; switch($mode){ case 'spec': //種名検索 if(!isset($_GET['q'])){ menu(); } else { searchFromName(); } break; case 'key': // キーワード検索 searchFromKeyWord(htmlspecialchars($_GET['q'])); break; case 'sci': searchFromKeyWordSci(htmlspecialchars($_GET['q'])); break; case 'region': //地域検索 if(!isset($_GET['q'])){ menu(); } else { searchFromRegion(); } break; case 'kind': //分類群検索 if(!isset($_GET['q'])){ menu(); } else { searchFromKind($_GET['q']); } break; case 'rank': //RDBランク検索 if(!isset($_GET['q'])){ menu(); } else { searchFromRank(); } break; case 'map': if(isset($_GET['q'])) getMap($_GET['q']); break; case 'rank': break; default: getKind(); break; } } session_start(); ?> 日本のレッドデータ検索システム
レッドデータカテゴリレッドデータの歴史カテゴリと生物名称レッドデータ掲載種参考文献一覧リンク集