需要Mysql查询建议/帮助

时间:2011-11-19 05:55:11

标签: php mysql

我正在建立一个网站,候选人可以发布他们的简历,雇主可以发布他们的工作。

雇主可以发布具有多种资格的工作,并将其保存在数据库PHP,Javascript,ASP中。现在我希望管理员能够选择有资格获得帖子的候选人。

我写过查询:

$sql = "
        SELECT
            cand_f_name,
            cand_l_name,
            cand_qualification,
            cand_phone,
            cand_email,
            cand_experience_yr,
            cand_experience_mn,
            cand_message,
            cand_id
        FROM
            tbl_cand_data
        WHERE
            cand_qualification LIKE '%$emp_q%' 

但它没有显示出预期的结果。我认为我的病情cand_qualification LIKE '$emp_q'是错误的。

我的tbl_cand_data:enter image description here

3 个答案:

答案 0 :(得分:2)

如果您正在进行LIKE查询,则应该包含通配符,因为它们将匹配包含的字符串,否则只需使用=执行完全匹配:

// String match
WHERE
    cand_qualification LIKE '%emp_q%';

// Exact match
WHERE
    cand_qualification = '$emp_q';

// You could try a WHERE IN clause as well
WHERE cand_qualification IN ('$emp_q');

// Values have to be quoted individually
WHERE cand_qualification IN ('BA','BSc','BCom');

// If you have an array you can do this:    
$myArray = array('BA', 'BSc', 'BCom');
$emp_q = "'" . implode("','", $myArray) . "'"; //Output 'BA', 'BSc', 'BCom'

答案 1 :(得分:2)

  

我将它保存在数据库中,如PHP,Javascript,ASP

这就是你做错了。

你必须创建一个相关的表(这就是为什么我们的ratabase称为 relational one!)存储资格和互连表,由与候选ID相关联的资格id组成。
并使用基本连接查询它们。

请注意,尽管您目前的决定,即使您决定继续使用您的蹩脚架构,您也必须迟早以适当的方式重新制作(但更快会让您减少工作量)。
这是数据库架构的基础知识,没有人可以反对它。

SELECT fields FROM tbl_cand_data d, qualification q, qual_cand qc 
WHERE q.name = 'ASP' AND q.id=qc.qid AND d.id=qc.did

答案 2 :(得分:-1)

喜欢百分比% 试试吧