【发布时间】:2012-03-28 19:02:23
【问题描述】:
作为一个自认是新手,我正在寻找一些建议和指导 :)
我的数据库中有一个名为 水坝 的表,它只是世界各地水坝的列表。该表中的一个字段称为Country;命名大坝所在的国家/地区。
我想在我的网站上放置一个搜索表单,允许某人搜索大坝,对于 Country 字段,我想将其显示为下拉列表,列出所有出现在该字段按字母顺序在每个国家/地区的名称后加上一个数字,以及该国家在该字段中出现的次数。例如,巴西有 15 座大坝,因此我希望巴西的下拉条目为“巴西(15 座大坝)”。
事情变得更加复杂,因为数据库中保存的大坝国家只是国家代码(美国、英国等),而不是我想要使用的实际国家名称(美国、英国等)。
我创建了一组国家代码/名称,如下所示:
$countries = array(
"AF" => "Afghanistan",
"AL" => "Albania",
"DZ" => "Algeria",
"AS" => "American Samoa",
...
"ZW" => "Zimbabwe"
);
我创建了下面的查询来从表中检索国家/地区字段内容,计算每个国家/地区出现的次数,并对结果进行分组:
$result = $this->db->query("select country,count(*) as count from default_dams group by country")->result_array();
现在我已经到了不知道该怎么做的地步了。
我已经尝试过使用这样的 foreach 循环:
foreach ($query as $row)
{
$dropdown[$row['country']] = $row['count'];
}
return $dropdown;
它正在给...
<option value="AL">3</option>
<option value="CN">94</option>
<option value="ZW">1</option>
...所以我觉得我到了某个地方,但我不知道如何引入我的 $countries 数组以提供如下输出:
<option value="AL">Albania (3 dams)</option>
<option value="CN">China (94 dams)</option>
<option value="ZW">Zimbabwe (1 dam)</option>
我猜我需要一个 foreach 循环来遍历 $result 并形成一个结果数组以从我的模型传递到视图,但是如何构建该数组?
顺便说一下,我的视图文件中显示下拉列表的代码 sn-p 是:
$first_field = '><option value="all">Any Country</option';
echo form_dropdown('dam-country', $dropdown, 'all', $first_field);
感谢所有帮助和建议。 :)
托尼。
【问题讨论】:
-
这个问题几乎每天都会被问到,发帖前请浏览档案寻找类似问题
标签: arrays forms codeigniter