2

私は次のコードを持っています:

$get_countries = "SELECT country FROM blahs WHERE country IS NOT NULL ORDER BY country";
$data_get_countries = mysqli_query($dbc, $get_countries);

while ($row_get_countries = mysqli_fetch_array($data_get_countries)) {
    $country_tabs = array_unique($row_get_countries);
    foreach ($country_tabs as $country_tab) {
        echo '<div>' . $country_tab . '</div>';
        var_dump($country_tab);
        var_dump($country_tabs);

    }
}

今のところ var_dump($country_tab) 出力:

string 'DE' (length=2)
string 'GB' (length=2)
string 'SE' (length=2)
string 'US' (length=2)
string 'US' (length=2)
string 'US' (length=2)
string 'US' (length=2)

および var_dump($country_tabs):

array
    0 => string 'DE' (length=2)
array
    0 => string 'GB' (length=2)
array
    0 => string 'SE' (length=2)
array
    0 => string 'US' (length=2)
array
    0 => string 'US' (length=2)
array
    0 => string 'US' (length=2)
array
    0 => string 'US' (length=2)

私が達成したいことは、同じ国を表示しないようにコードを作成することです! 出力にさらに配列があるため、 array_unique($country_tabs) は機能しません。

4

4 に答える 4

3

使用するSELECT DISTINCT country FROM blahs WHERE country IS NOT NULL ORDER BY country

重複する値はすべて削除されます。

于 2012-08-02T18:22:23.283 に答える
2

次のように、データベース クエリで一意の値を取得することをお勧めします。

SELECT DISTINCT country FROM blahs WHERE country IS NOT NULL ORDER BY country

あなたが探していることをするために DISTINCT キーワードを追加したことに注意してください。

于 2012-08-02T18:21:27.073 に答える
2

一意の国のみを取得するようにクエリを変更します。

$get_countries = "SELECT DISTINCT country FROM blahs WHERE country IS NOT NULL ORDER BY country";
于 2012-08-02T18:21:47.147 に答える
2

mysql クエリで一意の国を取得します。

SELECT country 
FROM blahs 
WHERE country IS NOT NULL
GROUP BY country
ORDER BY country

これははるかに最適化されています!

于 2012-08-02T18:22:28.623 に答える