2012-02-17 72 views
0

基本上我做while兩次拿到主組&組值。例如如何在MySQL中加入相同的數據庫名稱?

$group_query = $db->query(" 
     SELECT opt_id, opt_type 
      FROM ads_options 
      WHERE opt_id = '" . intval($data['ad_id']) . "' 
      GROUP BY opt_type"); 
while ($group_data = $db->fetch($group_query)) { 
    $option_query = $db->query(" 
     SELECT * 
      FROM ads_options 
      WHERE opt_id = '" . intval($data['ad_id']) . "' 
      AND opt_type ='" . $group_data['opt_type'] . "' 
      ORDER BY opt_id DESC"); 
    while ($option_data = $db->fetch($option_query)) { 
    } 
} 

輸出:

Size : S 
     M 
     L 
Color : White 
     Black 

問:

如何加入以上單個語句當前查詢?

更新:

當前的數據庫結構

opt_id opt_type opt_name opt_price 
1236 Size  S   0 
1236 Size  M   1 
1236 Color  Black  1 
1236 Color  White  2 

回答

1

像這樣的事情會得到獨特的組合,可能會有所幫助

$group_query = $db->query(" 
    SELECT 
     DISTINCT opt_id, opt_type, opt_size 
    FROM ads_options 
    WHERE opt_id = " . intval($data['ad_id']) . " 
    ORDER BY opt_type, opt_size"); 

如果你能提供更多的細節至於你正在努力實現什麼,以及ads_options的完整設計,那麼提供更多規格會更容易IFIC建議

而且未成年人的注意,如果opt_id是數字那麼你就不在查詢中需要使用單引號(')周圍(所以把他們趕走例子)

編輯 類似於下面的東西將返回你的ID,類型的列表,然後根據第三場以逗號分隔值的列表,如果這是更多的幫助

$group_query = $db->query(" 
    SELECT 
     opt_id, opt_type, GROUP_CONCAT(opt_name) AS opt_names 
    FROM ads_options 
    WHERE opt_id = " . intval($data['ad_id']) . " 
    ORDER BY opt_type"); 

欲瞭解更多有關GROUP_CONCAT看看這個鏈接http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

我不知道如果PHP編程有某種解決這個問題,我傾向於所以如果有人這樣做的一個PHP版本知道要使用的ColdFusion以下則似乎以匹配OP被要求

<cfoutput query="qryAdOptions" group="opt_type"> 
    #qryAdOptions.opt_type# 
    <cfoutput> 
     #qryAdOptions.opt_name# 
    </cfoutput> 
</cfoutput> 

http://bytes.com/topic/php/answers/11929-grouping-results-query#post50606似乎在暗示潛在下面的匹配上面貼的我,可能是有用的

$answer = array(); 
while ($row = pg_fetch_array($results)) { 
    if (!isset($answer[$row["obj_type"]])) { 
    $answer[$row["obj_type"]] = array(); 
    } 
    $answer[$row["obj_type"]][] = $row; 
} 

然後遍歷$答案。這會很好地發揮

SELECT * FROM ads_options WHERE opt_id = ...... 
+0

謝謝西蒙..很多關於您的答案的信息,我很感激。 – kampit 2012-02-17 12:26:36

+1

NP,你的問題碰巧出現在我等待測試:) – 2012-02-17 12:28:38

+0

我做了什麼.. http://pastebin.com/raw.php?i=h3VV9C0y – kampit 2012-02-17 12:53:03

相關問題