如何将静态值分配给查询结果 - 代码点火器



所以我有这个网站,它有一个选择框,其中包含:

1
2
3
4

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

Travel
Housing
Gourmet
Medical

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

db 中唯一的字段名称是 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>

我该怎么做?

怎么办

$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>
<?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>

最新更新