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。是的,但比其他所有传播的答案都好,让人感到安慰。