精華區beta PHP 關於我們 聯絡資訊
想請教各位大大 有沒有可能把主資料表跟子資料表一起顯示在一個重複區域 我有兩個資料表 1. ybids 訂單資料表 ┌───┬────┬────┐ │yco_id│yco_cid │收件地址│ └───┴────┴────┘ 主鍵 INDEX 2. ybidorders 訂單細節資料表 ┌───┬────┬────┬────┐ │yos_id│yos_cid │商品名稱│顏色款式│ └───┴────┴────┴────┘ 主鍵 INDEX 其中ybids訂單資料表是基本的收件資訊等等 訂單詳細內容 訂了那些商品 顏色款式等放在ybidorders 兩個資料表以yco_cid=yos_cid做關聯 (也就是一個yco_cid對應多個訂單細節) 我想把訂單詳細內容拉出來顯示在訂單的重複區域裡 像這樣: ┌───┬────┬────────────┬────┐ │yco_id│yco_cid │ 訂 單 細 節 │收件地址│ ├───┼────┼────────────┼────┤ │ 1 │ y01234 │yos_id-商品名稱-顏色款式│ │ │ │ │29-小熊維尼手機殼-泡泡款│ │ │ │ │64-方孔點點洞洞殼-紅色 │ │ │ │ │95-米妮按鍵貼-NULL │ │ │ │ │ │ │ │ │ │ │ │ └───┴────┴────────────┴────┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.3.21 ※ 編輯: shihyanyu 來自: 118.170.3.21 (11/25 16:31)
PTTLSboy: GROUP_CONCAT( CONCAT( b.p_name, b.p_standard ) ) 11/25 20:32
PTTLSboy:最後面再加上 GROUP BY a.yco_cid 11/25 20:32
PTTLSboy:b.p_name 是品名 b.p_standard是規格 a是訂單 b是訂單細 11/25 20:33
PTTLSboy:更正一下,剛沒看到還有yos_id要加上 11/25 20:59
PTTLSboy:group_concat(concat(cast(b.yos_id as char),'-',b.p_na 11/25 21:04
PTTLSboy:me,'-',b.p_standard) order by b.yos_id asc) 11/25 21:05
shihyanyu:謝謝PTTLSboy大人~我去試看看 11/26 13:52
> -------------------------------------------------------------------------- < 作者: shihyanyu (樂施者所求如意) 看板: PHP 標題: Re: [請益] 資料表關聯 時間: Mon Nov 26 15:15:31 2012 謝謝PTTLSboy大人教的這個函數, 但是不知道是不是我資料集寫得不正確 訂單細節是顯示了...可是原本訂單的重複區域變成沒有作用 加了GROUP_CONCAT以後 yco_id=1的訂單細節欄位可以正常顯示 可是也只顯示yco_id=1那筆訂單 然後訂單編號2,3就不顯示了@@ 把我的SELECT語法丟到PHPMyAdmin也是只跑出一筆紀錄...????? ┌───┬────┬───────────────────┬────┐ │yco_id│yco_cid │ 訂 單 細 節 │收件地址│ ├───┼────┼───────────────────┼────┤ │ 1 │ y01234 │<?php echo $row_Recordset1['pname'];?>│ │ │ │ │29-小熊維尼手機殼-泡泡款 │ │ │ │ │32-HELLO KITYY -粉藍款 │ │ │ │ │64-方孔點點洞洞殼-紅色 │ │ │ │ │ │ │ ├───┼────┼───────────────────┼────┤ │ 2 │ y01235 │61-NOTE2 保護套AA-香檳色 │ │ │ │ │ │ │ ├───┼────┼───────────────────┼────┤ │ 3 │ y01236 │12-xxxx-yyyy │ │ │ │ │49-sdsds-fgfgddf │ │ │ │ │ │ │ └───┴────┴───────────────────┴────┘ 我的資料集大概像這樣: $query_Recordset1 = "SELECT yco_id, yco_cid, yco_recev, yco_mobile, yco_add, yos_id, yos_cid, yos_pcolor, yos_num, yos_deal, GROUP_CONCAT(yos_pname SEPARATOR '<BR>') AS pname FROM ybids LEFT JOIN ybidorders ON yos_cid = yco_cid WHERE yco_deal LIKE '交易進行中' ORDER BY yco_id DESC"; 可以拜託各位大人再給我一些提示嗎?感激不盡! ※ 引述《shihyanyu (樂施者所求如意)》之銘言: : 我想把訂單詳細內容拉出來顯示在訂單的重複區域裡 像這樣: : ┌───┬────┬────────────┬────┐ : │yco_id│yco_cid │ 訂 單 細 節 │收件地址│ : ├───┼────┼────────────┼────┤ : │ 1 │ y01234 │yos_id-商品名稱-顏色款式│ │ : │ │ │29-小熊維尼手機殼-泡泡款│ │ : │ │ │64-方孔點點洞洞殼-紅色 │ │ : │ │ │95-米妮按鍵貼-NULL │ │ : │ │ │ │ │ : │ │ │ │ │ : └───┴────┴────────────┴────┘ : 推 PTTLSboy: GROUP_CONCAT( CONCAT( b.p_name, b.p_standard ) ) 11/25 20:32 : → PTTLSboy:最後面再加上 GROUP BY a.yco_cid 11/25 20:32 : → PTTLSboy:b.p_name 是品名 b.p_standard是規格 a是訂單 b是訂單細 11/25 20:33 : → PTTLSboy:更正一下,剛沒看到還有yos_id要加上 11/25 20:59 : → PTTLSboy:group_concat(concat(cast(b.yos_id as char),'-',b.p_na 11/25 21:04 : → PTTLSboy:me,'-',b.p_standard) order by b.yos_id asc) 11/25 21:05 : → shihyanyu:謝謝PTTLSboy大人~我去試看看 11/26 13:52 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.3.21 ※ 編輯: shihyanyu 來自: 118.170.3.21 (11/26 15:26) > -------------------------------------------------------------------------- < 作者: yuleen123 (.......................) 看板: PHP 標題: Re: [請益] 資料表關聯 時間: Mon Nov 26 19:59:04 2012 ※ 引述《shihyanyu (樂施者所求如意)》之銘言: : 想請教各位大大 有沒有可能把主資料表跟子資料表一起顯示在一個重複區域 : 我有兩個資料表 : 1. ybids 訂單資料表 : ┌───┬────┬────┐ : │yco_id│yco_cid │收件地址│ : └───┴────┴────┘ : 主鍵 INDEX : 2. ybidorders 訂單細節資料表 : ┌───┬────┬────┬────┐ : │yos_id│yos_cid │商品名稱│顏色款式│ : └───┴────┴────┴────┘ : 主鍵 INDEX : 其中ybids訂單資料表是基本的收件資訊等等 : 訂單詳細內容 訂了那些商品 顏色款式等放在ybidorders : 兩個資料表以yco_cid=yos_cid做關聯 : (也就是一個yco_cid對應多個訂單細節) : 我想把訂單詳細內容拉出來顯示在訂單的重複區域裡 像這樣: : ┌───┬────┬────────────┬────┐ : │yco_id│yco_cid │ 訂 單 細 節 │收件地址│ : ├───┼────┼────────────┼────┤ : │ 1 │ y01234 │yos_id-商品名稱-顏色款式│ │ : │ │ │29-小熊維尼手機殼-泡泡款│ │ : │ │ │64-方孔點點洞洞殼-紅色 │ │ : │ │ │95-米妮按鍵貼-NULL │ │ : │ │ │ │ │ : │ │ │ │ │ : └───┴────┴────────────┴────┘ 我的作法會像下面這樣 select a.yco_id, a.yco_cid, concat( b.yos_id, '-', b.商品名稱, '-', b.顏色款式 ) as detail, a.收件地址 from ybids as a, ybidorders as b where a.yco_cid = b.yos_cid order by a.yco_id asc 如果你的 yos_id 的型態是 INTEGER 的話要先轉成字串再塞到 concat 中 補充說明:   跑出來的資料會像下面這樣 ┌───┬────┬────────────┬────┐ │yco_id│yco_cid │detail │收件地址│ ├───┼────┼────────────┼────┤ │ 1 │ y01234 │yos_id-商品名稱-顏色款式│ │ │ 1 │ y01234 │29-小熊維尼手機殼-泡泡款│ │ │ 1 │ y01234 │64-方孔點點洞洞殼-紅色 │ │ │ 1 │ y01234 │95-米妮按鍵貼-NULL │ │ │ │ │ │ │ │ │ │ │ │ └───┴────┴────────────┴────┘ PHP 撈資料出來後要自己處理表格合併的工作 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.36.40 ※ 編輯: yuleen123 來自: 114.41.36.40 (11/26 20:04)
shihyanyu:謝謝yuleen123大人~我在試看看!! 11/26 23:27