我在下面有这个功能,应该列出我数据库中存在的所有国家/地区代码,然后计算每个国家/地区代码的存在次数:
function getAvailableCountries(){
global $dbh;
$stmt = $dbh->prepare("SELECT country_code,country_name FROM users WHERE country_code!='NA' AND country_name!='NA'");
$stmt->execute();
$rows = $stmt->fetchAll();
foreach ($rows as $row){
$countryCode = $row["country_code"];
$countryName = $row["country_name"];
}
print "<option value='$countryCode'>$countryName</option>";
}
$countryCode
变量包含:USUSUSUSCA
(因为US在我的数据库中存在4次,CA存在一次)($ countryName变量由国家/地区的名称组成,格式相同如上所述。)
然后该函数返回:
<option value="US">United States of America</option>
我的问题是,如何从我的数据库中获取可用的国家/地区,然后将其打印出来,以便每个国家/地区只出现一次?
答案 0 :(得分:3)
将DISTINCT
添加到您的查询中:
$stmt = $dbh->prepare("SELECT DISTINCT country_code,country_name FROM users WHERE country_code!='NA' AND country_name!='NA'");
您还应该在循环中添加print
:
foreach ($rows as $row){
$countryCode = $row["country_code"];
$countryName = $row["country_name"];
print "<option value='$countryCode'>$countryName</option>";
}