-2
$jobid = $_GET['idx'];
$sql2 = "SELECT * FROM job WHERE job_idx = '$jobid' ";
$result2 = mysql_query($sql2);
while($row = mysql_fetch_assoc($result2))
{
if($row["job_specialization"] == '228')
{ $spec.=" Accounting ";}
if($row["job_specialization"] == '24')
{ $spec.=" Admin / Clerical / Secretarial ";}
if($row["job_specialization"] == '3')
{ $spec.=" Audit & Taxation ";}
if($row["job_specialization"] == '5')
{ $spec.=" Banking / Finance / Investment / Credit Control ";}
}

echo "$spec";

在我的数据库中,我设法插入了一个最多只有 3 个值的数组,它们是 228,24,3。我可以在 preview-ad3.php 中显示这些数字,但是如何将值更改为如上所述的单词?例如。

echo $spec;

会像这样 会计,行政/文员/秘书,审计和税务

如果有人可以帮助我,我将不胜感激,因为我只留下这件事来完成我的工作。感谢:D


答案已更新

    $jobarr = explode(",", $row['job_specialization']); 

if(in_array("228", $jobarr))
{ $spec.=" Accounting,";}
    if(in_array("3", $jobarr))
{ $spec.=" Audit & Taxation,";}

我试过这段代码。而且效果很好!无论如何,谢谢你们的帮助。:)

4

3 回答 3

0

这样做的正确方法是创建一个表来保存有关工作详细信息的信息,以便您的查询如下所示:

SELECT j.*, i.title 
FROM job AS j INNER JOIN job_info AS i ON j.job_idx=i.id 
WHERE j.job_idx = '$jobid' 
于 2013-04-24T01:32:44.153 回答
0

跳这个帮助

$spec_map = array('228'=>'Accounting',
                '24'=>' Admin / Clerical / Secretarial',
                 '3' =>'Audit & Taxation',
                 '5'=>'Banking / Finance / Investment / Credit Control'
                );

$spec='';

while($row = mysql_fetch_assoc($result2))
{
$spec .= $spec?',':'';
$spec .= $spec_map[$row["job_specialization"]];
} 

echo $spec;
于 2013-04-24T01:43:45.773 回答
0

我将忽略您的代码容易受到 SQL 注入攻击的事实,如果您不清理 GET 变量或使用准备好的语句来执行查询,入侵者可能会在您的数据库中做一些令人讨厌的事情。

据我了解,您的数据库通过 ID 存储 job_specialization,并且您希望将数字映射到名称。

很长的路要走是改变你当前的数据库模式,有两个表,一个用于 job_specialization,一个 id 和一个 name 列,并将这些表连接起来,以便从数据库中检索 job_specialization 的名称。

另一种方式,只是为了让您的代码更具可读性,我会使用该define函数,因此您的代码如下所示:

define('ACCOUNTING','228');
define('SECRETARIAL','24');
define('AUDIT','3');
define('BANKING','5');

$jobid = mysql_real_escape_string($_GET['idx']);
$sql2 = "SELECT * FROM job WHERE job_idx = '$jobid' ";
$result2 = mysql_query($sql2);

while($row = mysql_fetch_assoc($result2)) {

    switch($row['job_specialization']) {
     case ACCOUNTING:
         $spec.=" Accounting ";
         break;
     case SECRETARIAL:
         $spec.="Secretarial ";
         break;
    }

}

echo $spec;

再说一次,这可能不是最好的代码性能,但至少比您发布的更具可读性。

于 2013-04-24T01:41:48.483 回答