如何将静态值分配给查询结果 - codeigniter

时间:2017-11-15 07:34:11

标签: php codeigniter

所以我的网站有一个包含以下内容的选择框:

1
2
3
4

但我想将它们改为静态值,如:

Travel
Housing
Gourmet
Medical

数据库中没有指定的字段名称,如Travel等。这是纯粹的数字。所以我必须指定代表每个数字的静态值。

数据库中唯一的字段名称是id, industry_id, company_name。我上面指定的那个(数字1-4)是industry_id

在我的控制器:

$params["filter"] = $this->Users->get_category();

型号:

$sql = "SELECT industry_id FROM company GROUP BY industry_id ORDER BY industry_id ASC";
$query = $this->db->query($sql);
return $query->result();

查看:

<select class="form-control" name="field">
<?php foreach($filter as $cat)
{ 
    echo '<option value="'.$cat->industry_id.'">'.$cat->industry_id.'</option>';
}
?>
</select>

我该怎么做?

2 个答案:

答案 0 :(得分:2)

那是什么

$sql = "SELECT industry_id, CASE WHEN industry_id = 1 THEN 'Travel' WHEN industry_id = 2 THEN 'Housing' WHEN industry_id = 3 THEN 'Gourmet' WHEN industry_id = 4 THEN 'Medical' END AS industry_description  FROM company GROUP BY industry_id ORDER BY industry_id ASC";
  

请注意,如果industry_id是INT,则此代码应该有效 - 如果它是VARCHAR,则必须使用例如WHEN industry_id = '1'

在您的视图中,您只需访问industry_description

即可
<select class="form-control" name="field">
<?php foreach($filter as $cat)
{ 
    echo '<option value="'.$cat->industry_id.'">'.$cat->industry_description.'</option>';
}
?>
</select>

答案 1 :(得分:0)

<?php
$a = array();
$b = ['Travel', 'Housing', 'Gourmet','Medical'];
$i = 0;
foreach ($filter as $cat) {
    $a[$cat->industry_id] = $b[$i];
    $i++;
}

?>
<select class="form-control" name="field">
    <?php foreach ($a as $k => $val) {
        echo '<option value="' . $k . '">' . $val . '</option>';
    }
    ?>
</select>