在 codeigniter 中显示具有相同组名的多条记录
Posted
技术标签:
【中文标题】在 codeigniter 中显示具有相同组名的多条记录【英文标题】:display multiple records with same group name in codeigniter 【发布时间】:2014-02-05 10:38:02 【问题描述】:我想用 codeigniter 中的数据库中的optgroup
填充select
下拉列表,因为我写了以下内容:
表:
+---+-------------+--------------+
|id | group_name | location_name|
+---+-------------+--------------+
| 1 | top cities | Bangalore |
| | | |
| 2 | top cities | Chennai |
| | | |
| 3 | big cities | Mumbai |
| | | |
| 4 | small cities| mumbai |
| | | |
| 5 | small cities| mumbai |
+---+-------------+--------------+
要求:
<select id="location" name="location">
<option value="" selected="selected">Select Location</option>
<optgroup label="top cities">
<option value="Bangalore">Bangalore</option>
<option value="Chennai">Chennai</option>
</optgroup>
<optgroup label="big cities">
<option value="Mumbai">Mumbai</option>
</optgroup>
<optgroup label="small cities">
<option value="Mumbai">Mumbai</option>
<option value="Mumbai">Mumbai</option>
</optgroup>
</select>
型号:
function get_location()
$this->db->select('group_name,GROUP_CONCAT(location_name) AS locations');
$this->db->order_by("group_name");
$this->db->from('location');
$query = $this->db->get();
if ($query->num_rows() > 0)
foreach ($query->result() as $row)
$data[] = $row;
return $data;
return false;
查看:
<select id="location" name="location">
<option value="" selected="selected">Select Location</option>
<?php
$CI = & get_instance();
$CI->load->model('Common', 'Common', TRUE);
$results = $CI->Common->get_location();
foreach ($results as $row)
echo '<optgroup label="'.$row->group_name.'">';
$location = explode(',', $row->locations);
foreach ($location as $loc)
echo '<option value="'.$loc.'">'.$loc.'</option>';
echo "</optgroup>";
?>
</select>
但结果与我要求的不同......
输出:
<select id="location" name="location">
<option value="" selected="selected">Select Location</option>
<optgroup label="top cities">
<option value="Bangalore">Bangalore</option>
<option value="Chennai">Chennai</option>
<option value="Mumbai">Mumbai</option>
<option value="Mumbai">Mumbai</option>
<option value="Mumbai">Mumbai</option>
</optgroup>
</select>
请帮助任何人...在此先感谢
【问题讨论】:
你能显示当前的输出是什么吗? 我已经用输出更新了问题 【参考方案1】:也尝试不同的
$this->db->distinct();
您放置查询的位置
【讨论】:
【参考方案2】:这是因为您的查询错误。您应该在查询中添加以下行:
$this->db->group_by('group_name');
另一件事,您不应该从您的视图中访问您的模型。您应该使用控制器从模型中获取数据并将其传递给视图。
【讨论】:
以上是关于在 codeigniter 中显示具有相同组名的多条记录的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP/CodeIgniter 从具有多对多关系的两个表中显示数据
在 codeigniter 中显示 2 个具有活动记录的表中的 3 个最新数据