สอบถามเรื่องการ search แบบ list box หน่อยค่ะ (phpbb)

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: สอบถามเรื่องการ search แบบ list box หน่อยค่ะ (phpbb)

สอบถามเรื่องการ search แบบ list box หน่อยค่ะ (phpbb)

by M030 » 06/11/2015 2:05 pm

ตอนนี้ทำ search แบบ search text ธรรมดาค่ะ มัน search ได้แล้ว ก็เลยทำ search แบบ listbox ด้วย แต่ติดปัญหาตรงที่ เวลาเรา search แบบธรรมดา มัน error เพราะว่ามันติดค่าของ listbox มาด้วยค่ะ มันเลย search ไม่ได้ ลองใช้เงื่อนไขเช็กแล้วค่ะ ก็ยังติดอยู่ดี ยังไงช่วยดูให้หน่อยนะค่ะ

เวลาเรา search ที่ช่องสีเหลือง มัน error เพราะคิดค่าในช่องสีแดงมาด้วยค่ะ
list.png
list.png (6.29 KiB) Viewed 334 times
error แบบนี้ค่ะ
error_list.png
code ที่ใช้ search ค่ะ

Code: Select all

public function search($action) {

        global $db, $table_prefix, $phpbb_container, $config;
        // $keyword = request_var('keyword', '', TRUE);
        $action = request_var('keyword', '', TRUE);
        $search_txt = request_var('search_txt', '', true);
        $province_list = request_var('province', 'ALL',true);
        $subdistrict_list = request_var('district', 'ALL',true);
        $subdistrict_list = request_var('subdistrict', 'ALL',true);
        $cancel = request_var('cancel', '', true);
        $submit = request_var('submit', '',true);
        //echo $search_txt;
        
      $a_search[] = 1 . ' ';    
       
      if(!empty($submit)){
          if(!empty($search_txt)){
          $a_search[]= "( p.PROVINCE_ID = u.PROVINCE_ID
                 AND u.AMPHUR_ID =  t.AMPHUR_ID
                 AND p.PROVINCE_NAME LIKE '%". $db->sql_escape($search_txt) ."%'"
                  . " OR p.PROVINCE_ID = u.PROVINCE_ID
                 AND u.AMPHUR_ID =  t.AMPHUR_ID
                 AND u.AMPHUR_NAME LIKE '%". $db->sql_escape($search_txt) ."%'"
                  . " OR p.PROVINCE_ID = u.PROVINCE_ID
                 AND u.AMPHUR_ID =  t.AMPHUR_ID
                 AND t.DISTRICT_NAME LIKE '%". $db->sql_escape($search_txt) ."%'"
                  . "OR p.PROVINCE_ID = u.PROVINCE_ID
                 AND u.AMPHUR_ID =  t.AMPHUR_ID
                 AND p.PROVINCE_ID LIKE '%". $db->sql_escape($search_txt) ."%')";
                  
          }
           if (($province_list == 'ALL')) { // อันนี้เช็คว่า
                $a_search[] = "p.PROVINCE_NAME = '$province_list' AND p.PROVINCE_ID = u.PROVINCE_ID
                 AND u.AMPHUR_ID =  t.AMPHUR_ID";
            }
             if (($district_list == 'ALL')) { // อันนี้เช็คว่า
                $a_search[] = "GROUP BY u.AMPHUR_ID AND p.PROVINCE_ID = u.PROVINCE_ID
                 AND u.AMPHUR_ID =  t.AMPHUR_ID
                 AND u.AMPHUR_NAME = " . $district_list . " ";
            }
            if (($subdistrict_list == 'ALL')) { // อันนี้เช็คว่า
                $a_search[] = "GROUP BY t.DISTRICT_ID AND p.PROVINCE_ID = u.PROVINCE_ID
                 AND u.AMPHUR_ID =  t.AMPHUR_ID
                 AND t.DISTRICT_NAME = " . $subdistrict_list . " ";
            }
                
      }

        if (!empty($cancel)) {
            $cancel == $user->lang['CANCLE_SEARCH'];
            $redirect_uri = generate_board_url() . '/' . append_sid("app.$this->php_ext/m_thaipost");
            redirect($redirect_uri);
        }

            ////////////////// TEXT SEARCH /////////////////
            // echo $search_txt;

            $pagination = $phpbb_container->get('pagination');
            $start = request_var('start', 0);
            $per_page = request_var('per_page', 20);

            $sql_ary = array(
                'SELECT' => 'p.PROVINCE_ID, p.PROVINCE_NAME, u.AMPHUR_NAME, t.DISTRICT_NAME, u.POSTCODE, t.DISTRICT_ID ',
                'FROM' => array(
                    'mod_province' => 'p',
                    'mod_amphur' => 'u',
                    'mod_district' => 't'
                ),
                'WHERE' => implode('AND', $a_search),
            );

            $sql = $db->sql_build_query('SELECT', $sql_ary);
            //echo $sql; exit;
            $result = $db->sql_query_limit($sql, $per_page, $start);
            while ($row1 = $db->sql_fetchrow($result)) {
//                print_r($row1); exit();
                $id = $row1['PROVINCE_ID'];
                $province = $row1['PROVINCE_NAME'];
                $district = $row1['AMPHUR_NAME'];
                $subdistrict = $row1['DISTRICT_NAME'];
                $zipcode = $row1['POSTCODE'];
                $district_id = $row1['DISTRICT_ID'];
                 $province_list = $row1['PROVINCE_NAME'];
                $district_list = $row1['AMPHUR_NAME'];
                $subdistrict_list = $row1['DISTRICT_NAME'];
                $this->template->assign_block_vars('m_thai_search', array(
                    'ID' => $id,
                    'PROVINCE' => $province,
                    'DISTRICT' => $district,
                    'SUBDISTRICT' => $subdistrict,
                    'ZIPCODE' => $zipcode,
                    'U_MINDPHP_DISTRICT' => $redirect_uri = generate_board_url() . '/' . append_sid("app.$this->php_ext/m_thaipost/detail/" . $district_id),
                ));
                $this->template->assign_vars(array(
                    'U_MINDPHP_DETAIL' => $url,
                        )
                );
                
                 $this->template->assign_block_vars('m_thai_list', array(
               'PROVINCE' => $province_list,
            ));
                 
                  $this->template->assign_block_vars('m_thai_list1', array(
               'DISTRICT' => $district_list,
            ));
                  
                   $this->template->assign_block_vars('m_thai_list2', array(
               'SUBDISTRICT' => $subdistrict_list,
            ));
            }
            
            $sql_ary['SELECT'] = 'COUNT(t.DISTRICT_ID) as total_id';
            $sql = $db->sql_build_query('SELECT', $sql_ary);
            $result = $db->sql_query($sql);
            $total_id = $db->sql_fetchfield('total_id');
            $base_url = generate_board_url() . '/app.' . $this->php_ext . '/m_thaipost/keyword/';
            $pagination->generate_template_pagination($base_url, 'pagination', 'start', $total_id, $per_page, $start);

            
            
        return $this->helper->render('m_thaipost.html');
    }
 

Top