PHP - Foreach循环获得结果

时间:2015-07-01 15:04:12

标签: php pdo foreach

我在下面有这个功能,应该列出我数据库中存在的所有国家/地区代码,然后计算每个国家/地区代码的存在次数:

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>

我的问题是,如何从我的数据库中获取可用的国家/地区,然后将其打印出来,以便每个国家/地区只出现一次

1 个答案:

答案 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>";
}