如何显示数组并将数字转换为字符串?

时间:2013-04-24 01:24:19

标签: php arrays

$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,";}

我试过这段代码。它运作良好!无论如何,谢谢你的帮助。 :)

3 个答案:

答案 0 :(得分: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' 

答案 1 :(得分:0)

我忽略了你的代码容易受到SQL注入的事实,如果你没有清理GET变量或使用预处理语句来执行查询,入侵者可以在你的数据库中做一些讨厌的事情。

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

漫长的方法是更改​​当前的数据库模式,为job_specialization提供两个表,其中包含一个id和一个名称列,并将这些表连接起来,以便从数据库中检索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;

然后,这可能不是性能最好的代码,但至少比你发布的更具可读性。

答案 2 :(得分: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;