Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要Mysql查询建议/帮助_Php_Mysql - Fatal编程技术网

Php 需要Mysql查询建议/帮助

Php 需要Mysql查询建议/帮助,php,mysql,Php,Mysql,我正在建立一个网站,求职者可以发布简历,雇主可以发布他们的工作 雇主可以发布一份具有多种资质的工作,我将其保存在数据库中,如下PHP、Javascript、ASP。现在我希望管理员能够选择谁是一个职位的候选人资格 我已经写下了这个问题: $sql = " SELECT cand_f_name, cand_l_name, cand_qualification, cand_phone,

我正在建立一个网站,求职者可以发布简历,雇主可以发布他们的工作

雇主可以发布一份具有多种资质的工作,我将其保存在数据库中,如下
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_资格,比如“$emp_q”
是错误的

我的tbl\u cand\u数据:

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'
如果要执行查询,则应包含通配符,因为它们将匹配包含的字符串,否则只需使用=:

// 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'
我把它保存在数据库中,比如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
我把它保存在数据库中,比如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

像“%$emp\U q%”
你试过这个吗?
像“%$emp\U q%”
你试过这个吗?我改成了像“%$emp\U q%”这样的cand\u资格,但是
var\u dump
仍然显示空数组。
echo sql
选择cand\u f\u姓名,cand\u姓名,cand\u资格,cand\u电话,cand\u电子邮件,cand\u经验,cand\u经验,cand_消息,来自tbl_cand_数据的cand_id,其中cand_限定符如“%BA,BSc,BCom%”
老实说,除非我们看到模式和几行,否则很难判断您想要什么。在我看来,您正在使用多个CSV(逗号分隔值)将数据存储在cand_qualifiation行中。你是否在寻找与“BA、BSc、BCom”完全匹配的人?没有。我想要拥有BA、BSc或BCom资格的候选人名单BCom@SurajHazarika:更新我的解决方案,查看
中的位置是否有效。执行
变量转储($emp\u q)
并发布值。我已更改为cand_限定,如“%$emp_q%”,但
var_dump
仍显示空数组。
echo sql
选择cand_f_名称、cand_l_名称、cand_限定、cand_电话、cand_电子邮件、cand_经验、cand_经验、cand_消息、,来自tbl_cand_数据的cand_id,其中cand_限定符,如“%BA,BSc,BCom%”
老实说,除非我们看到模式和几行,否则很难判断您想要的是什么。在我看来,您正在使用多个CSV(逗号分隔值)将数据存储在cand_qualifiation行中。你是否在寻找与“BA、BSc、BCom”完全匹配的人?没有。我想要拥有BA、BSc或BCom资格的候选人名单BCom@SurajHazarika:更新了我的解决方案,查看
中的位置是否有效。执行
var\u dump($emp\u q)
并发布值。感谢榴弹炮上校…我现在将修改对SO新手的相当严厉的攻击,我不反对别人指出代码或设计方法中的问题,但是让他放松一下。他可能根本没有机会接触到一个DBA。是的,但比其他所有传播的答案都好,而且让人感到安慰。多亏了Shrapnel上校……我现在会修改对新手的相当严厉的攻击,所以,我对其他人指出代码或设计方法中的问题没有问题,但让他放松一下。他可能根本找不到一个DBA。是的,但比其他所有传播的答案都好,让人感到安慰。