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

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

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

User avatar
M030
PHP Super Hero Member
PHP Super Hero Member
Posts: 532
Joined: 07/09/2015 10:06 am

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

Post 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 291 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');
    }
 

  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 118 guests