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

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
M030
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 532
ลงทะเบียนเมื่อ: 07/09/2015 10:06 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย M030 »

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

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

โค้ด: เลือกทั้งหมด

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');
    }
 
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 92