2013-10-13 83 views
-2

我正在使用下面的代碼來循環記錄並顯示國家/地區值。如果存在重複值,則它們全部被列爲澳大利亞,澳大利亞,美國,美國,美國。我如何刪除任何重複內容並僅顯示澳大利亞,美國?我不能在mysql_query中使用DISTINCT,因爲我需要使用現有的mysql_query。謝謝MySQL提取數組問題

<?php 
while($row = mysql_fetch_array($result)) { 
    echo $row['Country']; 
} 

?> 

我不能在mysql_query中使用DISTINCT,因爲我需要使用現有的mysql_query。

我使用

$result = mysql_query("SELECT * FROM specials WHERE expiry > CURDATE() ORDER BY Country;") or die(mysql_error()); 
+3

向我們展示您的查詢。 –

+0

數據庫中有重複值嗎? – WebNovice

+1

在提取查詢中使用DISTINCT,僅提取一次記錄! –

回答

1

最好的方式做到這一點是使用DISTINCT子句中的MySQL查詢:

SELECT DISTINCT Country FROM table_name 

但是,但是由於你添加了這個:

我不能在mysql_query中使用DISTINCT,因爲我需要使用現有的mysql_query。

您可以簡單地存儲在陣列中的所有國家,然後使用PHP的內置功能array_unique()刪除重複值,就像這樣:

while($row = mysql_fetch_array($result)) { 
    $countries[] = trim($row['Country']); 
} 
$countries = array_unique($countries); 
+1

Amal與獨特的限定詞在正確的軌道上。要完成此操作,您需要進行分組,否則您將缺少信息。 @ user1823053,我假設你將總結一些價值以獲得所考慮國家的所有信息。 – crafter

+0

非常感謝您可以認爲我對此非常新穎 - 然後如何在頁面上顯示結果? – user1823053

+0

@ user1823053:'foreach($ countries as $ country){echo $ country; } - 應該這樣做,但請注意,這不是一個很好的方法。見上面的crafter的評論。 –