【问题标题】:Array PHP - Transforming数组 PHP - 转换
【发布时间】:2011-08-10 15:04:22
【问题描述】:

我通过查询从数据库中获取一些数据,然后通过 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 = 标准等等等等。

【问题讨论】:

  • 什么?你能提出你的问题吗?
  • 你想打印出'exposure = 1', 'exposure = 2'?

标签: php arrays variables


【解决方案1】:
if ($a['exposure'] == 1){
    echo "Mini";
}
elseif($a['exposure'] == 2){
    echo "Standard";
}

【讨论】:

    【解决方案2】:
    $labels = array(1 => 'Mini', 2 => 'Standart');
    echo $labels[$a['exposure']];
    

    【讨论】:

      【解决方案3】:

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

      $exposures = array(
          1    => 'Mini',
          2    => 'Standard',
          // and so forth
      );
      
      while($a = mysql_fetch_assoc($r)):
          echo $exposures[ $a['exposure'] ];
      endwhile;
      

      只需我的 0.02 美元就可以使代码更清晰。

      【讨论】:

        【解决方案4】:

        **另一种实现此目的的好方法是在数据库中维护一个表结构,将曝光次数与其描述相关联。通过这种方式,您可以直接从数据库中显示曝光描述(您还可以从 exposure_info 表中填充 Web 表单上的下拉菜单)。只需按照示例 SQL 看你是否理解。 **

        创建表 photo_clients( id INT AUTO_INCREMENT 主键, 客户名称 VARCHAR(100), 曝光 TINYINT );

        创建表曝光信息( 曝光 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
        

        【讨论】:

          猜你喜欢
          • 2020-11-16
          • 1970-01-01
          • 2013-08-06
          • 1970-01-01
          • 1970-01-01
          • 2014-08-17
          • 2021-08-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多