= '$kaishi_date' "; // 検索条件の文を作成 $jouken_str_list["kyoka_date"] = sprintf(date('Y(平成%\\d)年n月j日から', strtotime($kaishi_date)), $year - 1988); } if ($jouken["kyoka_shuuryou_year"]) { // 年月日をそれぞれ取得 $year = is_numeric($jouken["kyoka_shuuryou_year"]) ? $jouken["kyoka_shuuryou_year"] : '2000'; $month = $jouken["kyoka_shuuryou_month"] ? $jouken["kyoka_shuuryou_month"] : '1'; $day = $jouken["kyoka_shuuryou_day"] ? $jouken["kyoka_shuuryou_day"] : '1'; // 日付として整形 $shuuryou_date = sprintf("%04d-%02d-%02d", $year, $month, $day); // WHERE文の作成 $where[] = " g.gyousha_kyoka_date <= '$shuuryou_date' "; // 検索条件の文を作成 $jouken_str_list["kyoka_date"] .= sprintf(date('Y(平成%\\d)年n月j日まで', strtotime($shuuryou_date)), $year - 1988); } // 業の区分についてポストされた値と、DBの値のペアを取得 if ($jouken["unpan"] || $jouken["shobun"] || $jouken["tokubetu_unpan"] || $jouken["tokubetu_shobun"]) { /* $unpan_list = array("all" => array('0', '1'), "no_load" => array('0'), "load" => array('1'), "" => array('0', '1')); $shobun_list = array("all" => array('2', '3', '4'), "middle" => array('2'), "last" => array('3'), "middle_last" => array('4'), "" => array('2', '3', '4')); $tokubetu_unpan_list = array("all" => array('5', '6'), "no_load" => array('5'), "load" => array('6'), "" => array('5', '6')); $tokubetu_shobun_list = array("all" => array('7', '8', '9'), "middle" => array('7'), "last" => array('8'), "middle_last" => array('9'), "" => array('7', '8', '9')); */ $unpan_list = array("all" => array('0', '1'), "no_load" => array('0'), "load" => array('1')); $shobun_list = array("all" => array('2', '3', '4'), "middle" => array('2'), "last" => array('3'), "middle_last" => array('4')); $tokubetu_unpan_list = array("all" => array('5', '6'), "no_load" => array('5'), "load" => array('6')); $tokubetu_shobun_list = array("all" => array('7', '8', '9'), "middle" => array('7'), "last" => array('8'), "middle_last" => array('9')); // 業の区分 $search_kbn_list = array(); $search_kbn_list = (array)$unpan_list[$jouken["unpan"]]; $search_kbn_list = array_merge($search_kbn_list, (array)$shobun_list[$jouken["shobun"]]); $search_kbn_list = array_merge($search_kbn_list, (array)$tokubetu_unpan_list[$jouken["tokubetu_unpan"]]); $search_kbn_list = array_merge($search_kbn_list, (array)$tokubetu_shobun_list[$jouken["tokubetu_shobun"]]); // 検索条件があり、なおかつ全部ではない(もし4つとも全てだったら検索条件はなしになる) if ($search_kbn_list && count($search_kbn_list) < 10) { $where[] = " g.gyousha_gyou_kbn in (". join(",", $search_kbn_list) . ") "; foreach ($search_kbn_list as $kbn) { $kbn_name_list[] = $gyou_kbn_list[$kbn] . "(" .$gyou_kyoka_list[$kbn]. ")"; } // 検索条件の文 $jouken_str_list["gyou_kbn"] = join("
", $kbn_name_list); } } // 所在地 if ($jouken["address_pref"] && is_numeric($jouken["address_pref"])) { // 県名を取得する $pref_list = getPrefList(); $q_address_pref = mes($pref_list[$jouken["address_pref"]]); // 県名に加えての文字列があるかどうかを判定 if ($jouken["address"]) { $q_address = mes($jouken["address"]); $where[] = " g.gyousha_address like '$q_address_pref%$q_address%' "; } else { $where[] = " g.gyousha_address like '$q_address_pref%' "; } // 検索条件の文 $jouken_str_list["address"] = $q_address_pref . " " . $q_address; // 県名は指定していない } else if ($jouken["address"]) { $q_address = mes($jouken["address"]); $where[] = " g.gyousha_address like '%$q_address%' "; // 検索条件の文 $jouken_str_list["address"] = $q_address; } // 業者名 if ($jouken["name"]) { $q_name = mes($jouken["name"]); $where[] = " g.gyousha_name like '%$q_name%' "; // 検索条件の文 $jouken_str_list["name"] = $q_name; } } // WHERE文をまずは作成 $where_str = join(" AND ", $where); // 以下で完全なWEHRE文を作成 if (!$where_str) { $where_str = " WHERE gyousha_gyou_kbn != '#' "; } else { $where_str = " WHERE $where_str AND gyousha_gyou_kbn != '#' "; } // まずは全件数を取得する $sql = " SELECT count(*) FROM gyousha_t g $where_str "; $data_count = getOne($sql); // データない時は検索画面に戻る if (!$data_count) { $append = getQueryString($jouken); // Location("./search.php?error=notfound&$append"); Location("./search.php?error=notfound&$append"); exit; } /** * ページャーの作成 */ require_once("Pager/Pager.php"); // ページャーが1ページ当たりの表示数を認識できるようにするためのマジック if ($_REQUEST["20"]) { $_REQUEST["_perPage"] = "20"; unset($_REQUEST["p"]); unset($_GET["p"]); unset($_POST["p"]); } else if ($_REQUEST["50"]) { $_REQUEST["_perPage"] = "50"; unset($_REQUEST["p"]); unset($_GET["p"]); unset($_POST["p"]); } else if ($_REQUEST["100"]) { $_REQUEST["_perPage"] = "100"; unset($_REQUEST["p"]); unset($_GET["p"]); unset($_POST["p"]); } if ($_REQUEST["_perPage"]) { $_perPage = intval($_REQUEST["_perPage"]); } else { $_perPage = 20; } // 表示件数が不正な場合、以下に寄せる // 100以上 ⇒ 100 // 20以下 ⇒ 20 // 21〜99 ⇒ 50 if ($_perPage >= 100) { $_perPage = 100; } else if ($_perPage <= 20) { $_perPage = 20; } else { $_perPage = 50; } $_GET["_perPage"] = $_perPage; $_POST["_perPage"] = $_perPage; $params = array( 'mode' => 'Sliding', 'totalItems' => $data_count, 'perPage' => $_perPage, 'delta' => 2, 'altPrev' => '前のページに移動', 'altNext' => '次のページに移動', 'altFirst' => '最初のページに移動', 'altLast' => '最後のページに移動', 'altPage' => 'ページ番号', 'prevImg' => '前へ', 'nextImg' => '次へ', 'spacesBeforeSeparator' => 1, 'spacesAfterSeparator' => 1, 'useSessions' => false, // 'sessionVar' => "__pager", "urlVar" => "p" ); $pager =& Pager::factory($params); $link_list = $pager->getLinks(); // ページャーの機能を使用して、オフセットとリミットを取得する $offset = ($pager->getCurrentPageId() - 1) * $pager->_perPage; $limit = $pager->_perPage; // 2018/03/14 AMC ADD STR if ($_POST["nopaging"] === "1") { $offset = 0; $limit = (int)get_row_limit(); } // 2018/03/14 AMC ADD END $sql = " SELECT gyousha_name, gyousha_address, gyousha_koyuu_bangou, gyousha_kyoka_bangou, gyousha_kyoka_shutai, gyousha_gyou_kbn, gyousha_kyoka_date FROM gyousha_t g $where_str LIMIT $offset, $limit "; $data_list = getAll($sql); //print_r($data_list); /** * スマーティで描画 */ //$smarty = new mySmarty(); $tmpl = new MyTemplate(); // 検索条件をアサイン // 表示するための業者情報 //$smarty->assign("data_list", $data_list); $tmpl->data_list = $data_list; // 全件数、全ページ数、現在のページ番号 //$smarty->assign("data_num", $pager->numItems()); //$smarty->assign("page_num", $pager->numPages()); //$smarty->assign("now_page", $pager->getCurrentPageId()); $tmpl->data_num = $pager->numItems(); $tmpl->page_num = $pager->numPages(); $tmpl->now_page = $pager->getCurrentPageId(); // 前へ、次へのためのHTMLコード //$smarty->assign("link", $link_list["all"]); $tmpl->link = preg_replace("/\"ページ番号 (\d+)\"/", "\"$1ページに移動\"", $link_list["all"]); //ページ番号 2 // 何件目から何件目を表示するための数 //$smarty->assign("from_num", $offset + 1); //$smarty->assign("to_num", $offset + $limit); $tmpl->from_num = $offset + 1; $tmpl->to_num = $offset + $limit; // 業区分のIDと表示名の配列 //$smarty->assign("gyou_kbn_list", $gyou_kbn_easy_list); $tmpl->gyou_kbn_list = $gyou_kbn_easy_list; // 条件 //$smarty->assign("jouken", $jouken_str_list); $tmpl->jouken = $jouken_str_list; // 2006.03.06 Joe Add $jouken_list = array(); unset($jouken["20"]); unset($jouken["50"]); unset($jouken["100"]); unset($jouken["p"]); unset($jouken["0"]); unset($jouken["1"]); unset($jouken["2"]); $jouken["_perPage"] = $_perPage; foreach ((array)$jouken as $key => $val) { if (is_array($val)) { foreach ($val as $k => $v) { $jouken_list[urlencode($key)."[".urlencode($k)."]"] = urlencode($v); } } else { $jouken_list[urlencode($key)] = urlencode($val); } } //$smarty->assign("jouken_list", $jouken_list); $tmpl->jouken_list = $jouken_list; $append = getQueryString($jouken); //$smarty->assign("append", $append); $tmpl->append = $append; function getQueryString($jouken) { $str_list = array(); foreach ((array)$jouken as $key => $val) { if (is_array($val)) { $tmp_list = array(); foreach ($val as $k => $v) { $tmp_list[] = urlencode($key)."[".urlencode($k)."]=".urlencode($v); } // $tmp = join("&", $tmp_list); $tmp = join("&", $tmp_list); } else { $tmp = urlencode($key) ."=" . urlencode($val); } $str_list[] = $tmp; } // $ret = join("&", $str_list); $ret = join("&", $str_list); return $ret; } $tmpl->row_limit = (int)get_row_limit(); //$smarty->display("search_list.html"); $tmpl->show("search_list.html"); ?>