2012-09-27 21 views
0

如何構建一個唯一數組來檢查每個地址字段。PHP構建數據庫行中唯一地址的數組

E.g此刻我得到的一切:

$stmnt = "SELECT `location_id`, `location_address1`, `location_address2`, 
      `location_town`, `location_region`, `location_postcode` 
      FROM locations WHERE user_id = '{$id}'"; 
$results = $db->fetchAll($stmnt); 

    if(!empty($results)) { 
     foreach($results as $row) { 
      if($unique){ 
       $value = $row['location_id']; 
       $label = implode(", ", array(
        'address1'  => $row['location_address1'], 
        'address2'  => $row['location_address2'], 
        'town'   => $row['location_town'], 
        'region'  => $row['location_region'], 
        'postcode'  => $row['location_postcode'] 
       )); 
      } 

我在想,在那裏if($unique){是你會檢查這個地址1,地址等通過搜索一些這方面是如何存在的臨時數組中?

+2

爲什麼不只是做一個'SELECT DISTINCT ...'? –

+0

你是否想要獨特的行,或每行內的唯一值? –

+0

這可能會起作用,但會返回不同的{location_id,location_address1,... location_postcode}對。 我不是100%確定,如果這是OP想要的,或者他們想要所有不同的location_id,所有不同的location_address1等。 –

回答

2

使用SELECT DISTINCT將允許您返回一組唯一的結果,但不包括與另一個結果重複的結果。如果你打算,你甚至可以繼續使用ORDER BY,但要記住,對於DISTINCT選擇,ORDER BY中的任何內容也必須在SELECT語句中。

+0

這是否受到主鍵和其他字段的影響?我沒有給他們看,因爲我不認爲這會是相關的 –

+0

是的,在select語句中有一個唯一的列將會擊敗DISTINCT關鍵字的點。有些數據庫類型可能會有所不同,但如果您不需要它,我會忽略該ID。 – Flosculus