繁体   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