/** * BBSを検索するためのwhere句の1部を作成 * * @param $form 条件 [id] => 1000 [move_id] => 2 [q_text] => 検索条件 //条件(※必須) [search_title] => title_in_serch //件名を選択 [search_all] => subject_in_serch //本文を選択 [open_level_code] => 00 //公開範囲(00は選択なし)(※必須) [search_all_about] => all_in_serch //すべてのCommunityを選択 * @return str_array($like_sql , $err_str , $str_count) */ static function set_bbs_where_list($form, $flag) { $str_array = array(); $str_array['like_sql'] = ""; //成功時の戻り値 $str_array['err_str'] = ""; //失敗時の戻り値 $str_array['str_count'] = 1; //成功時のキーワード数 // 検索キーワードの取得(注意!バイト単位で処理) $search_text = $form['q_text']; //formから検索文字列を取得 //〜〜〜〜〜〜〜〜〜〜〜〜〜〜配列として利用(Likeの作成)〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 if ($search_text != '') { $search_args = ACSLib::get_query_array_array($search_text); //検索文字列配列に変換 } if (count($search_args) > 0) { //検索文字列が存在する場合 $search_args = ACSLib::escape_sql_array($search_args); //キーワードwhere句の追記 //次のいずれかは必須 $str_like = ''; //件名を選択している場合 if ($form['search_title']) { $str_title = " bbs.subject"; $str_like_array = ACSDiary::create_sql_where_field($search_args, $str_title, $flag); $str_like = " (" . $str_like_array['str_like'] . ") "; $str_array['str_count'] = $str_like_array['str_count']; } //本文を選択している場合 if ($form['search_all']) { $str_body = " bbs.body"; if ($str_like != "") { $str_like = $str_like . " OR "; //件名と共に選択している場合 } $where_sql_array = ACSDiary::create_sql_where_field($search_args, $str_body, $flag); $where_sql = " (" . $where_sql_array['str_like'] . ") "; $str_like = $str_like . $where_sql; $str_array['str_count'] = $where_sql_array['str_count']; } //キーワードwhere句の追記終了 if ($str_like == "") { //キーワードがあるのに、対象がない場合 $str_array['err_str'] = ACSMsg::get_mdmsg(__FILE__, 'M005'); } else { $str_array['like_sql'] = $str_array['like_sql'] . $str_array['like_sql'] . " AND (" . $str_like . ") "; } } //〜〜〜〜〜〜〜〜〜〜〜〜〜〜特定日記検索〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 //必ずAND if (!$form['search_all_about']) { //すべての Communityを選択していない場合 $str_array['like_sql'] = $str_array['like_sql'] . " AND bbs.community_id = " . $form['community_id']; } // エラーメッセージが配列になってしまう暫定対処 return $str_array; }