所以我的网站有一个包含以下内容的选择框:
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>
我该怎么做?
答案 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>