簡體   English   中英

PHP:多文本搜索

[英]PHP : Multiple Textform Search

所以,我得到了一個通過數據庫搜索求職者的表單。 表格包含姓名,身份證,工作崗位,學歷證書,年齡等。 我面臨的問題是,當我僅根據一個文本形式(例如,工作位置)搜索求職者時,顯示結果。 但是,如果我想根據工作崗位和學術水平搜索求職者,結果僅根據工作崗位顯示。 我的代碼有什么問題嗎? 這里需要幫助..抱歉我的英語不好..

工作職位:

$jawatan_arr = explode(',', $_POST['txt_jawatan']);
$jum_jawatan = count($jawatan_arr);
//echo "jum_didik = ".$jum_didik;
if($jum_jawatan > 0){
    $d = 0;
    foreach ($jawatan_arr as $value){
        $d++;
        //echo "; value::: ".$value." :::";
        if($d == 1){
            if($value != ''){
                if($str == ''){
                    $str = " WHERE ";   
            }
                else{
                    $str .= " AND ";    
            }
                $str_jawatan .= " (LOWER(jawatan) LIKE '%".strtolower(rtrim(ltrim($value)))."%' ";
            }
        }
        else{
            if($value != ''){
                $str_jawatan .= " OR LOWER(jawatan) LIKE '%".strtolower(rtrim(ltrim($value)))."%' ";
            }
        }
    }
    if($str_jawatan != ''){
        $str_jawatan .= ") ";

        $sql = "SELECT no_kp FROM jobseeker_pengalaman ".$str_jawatan;
        $res = mysql_query($sql);
        while($row = mysql_fetch_array($res)){
            if($row['no_kp'] != ''){
                if(!in_array($row['no_kp'], $senarai_kp)){
                    array_push($senarai_kp, $row['no_kp']); 
                }
            }
        }
    }
}

學術水平(復選框,而不是文本形式):

$didik_arr = explode(',', $_POST['txt_taraf_pendidikan']);
$jum_didik = count($didik_arr) - 1;
//echo "jum_didik = ".$jum_didik;
if($jum_didik > 0){
    $d = 0;
    foreach ($didik_arr as $value){
        $d++;
        //echo "; value::: ".$value." :::";
        if($d == 1){
            if($str == ''){
                    $str = " WHERE ";   
            }
            else{
                $str .= " AND ";    
            }
            $temp_didik .= $value;
        }
        else{
            if($value != ''){
                $temp_didik .= ",".$value;
            }
        }
    }

    //$str_didik .= " id_taraf_pendidikan IN (".$temp_didik.")";

    $sql = "SELECT no_kp FROM jobseeker_pendidikan WHERE id_taraf_pendidikan IN (".$temp_didik.")";

    $res = mysql_query($sql);
    while($row = mysql_fetch_array($res)){
        if($row['no_kp'] != ''){
            if(!in_array($row['no_kp'], $senarai_kp)){
                array_push($senarai_kp, $row['no_kp']); 
            }
        }
    }
}

我需要加入我的桌子嗎? 因為工作崗位是基於最近的工作經驗,學術是基於他們的學習。 它們都來自不同的桌子

可能你可以試試IN聲明嗎? 像這樣的東西:

$sql = "SELECT no_kp FROM jobseeker_pengalaman ".$str_jawatan." IN
(
 SELECT no_kp FROM jobseeker_pendidikan WHERE id_taraf_pendidikan IN (".$temp_didik.")
)";

因此,您將按照已經通過基於學術搜索的求職者的職位搜索。 我希望這種方法會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM