พัฒนา phpBB 3.1 : ตัวอย่างการเขียนค้นหาด้วย text field + List box + cancel

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

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

Post Reply
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 19892
Joined: 31/03/2014 10:02 am
Contact:

พัฒนา phpBB 3.1 : ตัวอย่างการเขียนค้นหาด้วย text field + List box + cancel

Post by thatsawan » 03/11/2015 12:43 am

Code: Select all

$search = request_var('search_word', '', true); // รับค่าจาก text ธรรมดากรอกเข้าไปเอง
        $search_status = request_var('search_status', 'ALL', true); // รับค่าจาก List box
        $search_position = request_var('search_position', 'ALL', true);  // รับค่าจาก List box
        $cancel = request_var('cancel', '', true);  // การสร้างเมนู cancel
        $start = request_var('start', 0); // ตัวแปรที่จะเอาไว้เเบ่งหน้า
        
         $bottum_search = request_var('search', '', true); // รับค่าจาก button search
        
เช็ค if เพิ่มใส่ sql

Code: Select all

  $a_search[] = 1 . ' ';
        if (!empty($bottum_search)) {  //เช็คว่ามีการค้นหาหรือไม
            if (!empty($search)) {
                $a_search[] = " (ads_name LIKE '%" . $db->sql_escape($search) . "%' OR ADS_LINK LIKE '%" . $db->sql_escape($search) . "%' OR ads_detail LIKE '%" . $db->sql_escape($search) . "%' ) ";
            }
            if (($search_status != 'ALL')) { // อันนี้เช็คว่า
                $a_search[] = " ads_status = " . (int) ($search_status) . " ";
            }
            if (($search_position != 'ALL')) {
                $a_search[] = " ads_position = '" . $db->sql_escape($search_position) . "' ";
            }
        }
2015-11-03_0-45-33.png
2015-11-03_0-45-33.png (12.96 KiB) Viewed 486 times

Code: Select all

Array
(
    [0] => 1 
    [1] =>  (ads_name LIKE '%กลาง%' OR ADS_LINK LIKE '%กลาง%' OR ads_detail LIKE '%กลาง%' ) 
)
2015-11-03_0-46-19.png
2015-11-03_0-46-19.png (11.41 KiB) Viewed 486 times

Code: Select all

Array
(
    [0] => 1 
    [1] =>  (ads_name LIKE '%กลาง%' OR ADS_LINK LIKE '%กลาง%' OR ads_detail LIKE '%กลาง%' ) 
    [2] =>  ads_position = 'c' 
)
2015-11-03_0-47-38.png
2015-11-03_0-47-38.png (12.73 KiB) Viewed 486 times

Code: Select all

Array
(
    [0] => 1 
    [1] =>  (ads_name LIKE '%กลาง%' OR ADS_LINK LIKE '%กลาง%' OR ads_detail LIKE '%กลาง%' ) 
    [2] =>  ads_status = 1 
    [3] =>  ads_position = 'c' 
) 

Code: Select all

  $sql_ary = array(
            'SELECT' => '*',
            'FROM' => array(
                $table_prefix . 'm_slide_ads' => 'f',
            ),
            'WHERE' => implode('AND', $a_search),
            'ORDER_BY' => 'ads_name'
        );
        $sql = $db->sql_build_query('SELECT', $sql_ary);

        $per_page = request_var('list', $config['topics_per_page']); //$config['topics_per_page']
        $result = $db->sql_query_limit($sql, $per_page, $start);
        while ($row = $db->sql_fetchrow($result)) {
            $template->assign_block_vars('links', array(
               //...
            ));
        } 

Post Reply

Return to “PHP Knowledge”

Users browsing this forum: No registered users and 7 guests