数组PHP - 转换

时间:2011-08-10 15:04:23

标签: php arrays variables

我从我的数据库中获取一些数据,带有查询然后我通过While循环来循环:

$r=mysql_query("SELECT * FROM advertisement_packages");  
while($a = mysql_fetch_assoc($r)):
echo $a['exposure]; //This prints out 1,2,3,4

endwhile;

我怎么办,曝光= 1曝光= 1 =迷你曝光= 2 =标准等等。

4 个答案:

答案 0 :(得分:3)

if ($a['exposure'] == 1){
    echo "Mini";
}
elseif($a['exposure'] == 2){
    echo "Standard";
}

答案 1 :(得分:0)

$labels = array(1 => 'Mini', 2 => 'Standart');
echo $labels[$a['exposure']];

答案 2 :(得分:0)

独立存储值而不是使用(可能)巨大的if结构可能会有所帮助:

$exposures = array(
    1    => 'Mini',
    2    => 'Standard',
    // and so forth
);

while($a = mysql_fetch_assoc($r)):
    echo $exposures[ $a['exposure'] ];
endwhile;

只需0.02美元即可使代码更清晰。

答案 3 :(得分:0)

**执行此操作的另一个好方法是在数据库中维护一个表格结构,该表格结构将曝光编号与其描述相关联。这样,您可以直接从数据库中显示曝光描述(您还可以从exposure_info表中填充Web表单上的下拉菜单)。只需按照示例SQL查看您是否理解。 **

CREATE TABLE photo_clients(   id INT AUTO_INCREMENT PRIMARY KEY,   client_name VARCHAR(100),   曝光TINYINT );

CREATE TABLE exposure_info(   曝光INT AUTO_INCREMENT PRIMARY KEY,   描述VARCHAR(100) );

INSERT INTO exposure_info(description)VALUES('mini'),('standard'),('poster');

INSERT INTO photo_clients(client_name,exposure)VALUES('John Doe',2),('Jane Smith',1),('Johnny Walker',3);

SELECT a.client_name AS client,b.description AS exposure FROM photo_clients a,exposure_info b WHERE a.exposure = b.exposure;

上述陈述的输出应如下所示:

client          exposure
------------------------
Jane Smith      mini
John Doe        standard
Johnny Walker   poster