Re: [請益] 請教陣列存取的問題

看板PHP作者 (銀色)時間13年前 (2012/04/24 15:07), 編輯推噓1(108)
留言9則, 2人參與, 最新討論串6/6 (看更多)
※ 引述《kerash (K.T)》之銘言: : 恕刪部分,假設考慮到只有 merge 問題要解決的話 : ※ 引述《sweetjp6 (水餃)》之銘言: : : for ($i=0 ; $i < sizeof($alldrama); $i++){ : : $take = "SELECT brand, action, sequence FROM robot where : : screenplayname= '".$alldrama[$i]."' " ; : : $result = mysql_query($take, $db_connect) ; : : $many = mysql_num_rows($result) ; : : for ($j=0 ; $j < $many ; $j++){ : // $mergeDtl[] = mysql_fetch_assoc($result) ; : // ^^ 問題在這大家都知道了,所以修正 : $mergeDtl = mysql_fetch_assoc($result); // array結果 : $action[] = $mergeDtl['action'] ; : // 假如是 array_merge 的方法 : // $action = array_merge((array)$action,(array)$mergeDtl['action']); : $brand[] = $mergeDtl['brand'] ; : : } : : } 來湊咖 XD 我的話的寫法: $all = implode ("', '", $alldrama); // 這邊懶惰沒做滲入過濾 :Q $sql = "SELECT `brand`, `action`, `squence` FROM `robot`" ." WHERE `secreenplayname` IN ('$all')"; $res = mysql_query ($sql, $db_connect); $mergeDtl = $action = $brand = Array (); while ($tmp = mysql_fetch_assoc ($res)) { $mergeDtl[] = $tmp; $action = array_merge ($action, (array) $tmp['action']); $brand[] = $tmp['brand']; } 不過我很懷疑,從資料庫拿出來的欄位資料型別應該不是陣列吧? $action = array_merge ($action, (array) $tmp['action']); 這樣湊的出 $action = ["hi", "i", "am", "trying", "it"] 嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.181.150.81

04/24 15:31, , 1F
請問 "從資料庫拿出來的欄位資料型別應該不是陣列吧" 是指?
04/24 15:31, 1F

04/24 15:32, , 2F
mysql_fetch_assoc 回傳是 array,還是我會錯意了?
04/24 15:32, 2F

04/24 16:24, , 3F
我是說單一欄位,像 $tmp['action'] 這個丟出來的應該不是
04/24 16:24, 3F

04/24 16:24, , 4F
array 吧? o_O
04/24 16:24, 4F

04/24 16:24, , 5F
基本上 MySQL 應該沒有可以儲存 Array 的欄位型態
04/24 16:24, 5F

04/24 16:25, , 6F
所以這個實做怎麼看都怪怪的… 囧
04/24 16:25, 6F

04/24 16:32, , 7F
他應該只是要把結果取出來存成陣列,$tmp['action']出來是
04/24 16:32, 7F

04/24 16:32, , 8F
字串,再把他用轉型成 array 吧~? @@
04/24 16:32, 8F

04/24 16:33, , 9F
我是這樣寫啦,至於結果因為我目前沒DB可以測,不確定..囧!
04/24 16:33, 9F
文章代碼(AID): #1Fbb4UHo (PHP)
文章代碼(AID): #1Fbb4UHo (PHP)