所以我有这个网站,它有一个选择框,其中包含:
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>