[請益] codeigniter 資料庫查詢語法問題

看板PHP作者 (skill)時間13年前 (2012/11/20 17:33), 編輯推噓1(1013)
留言14則, 5人參與, 最新討論串1/1
可以請問各位大大下面有關CI的資料庫抓取語法有甚麼問題嗎? 內容主要是從一個list table 查出朋友id 再利用所有朋友id去query foodTable查出他們愛的食物 請問這程式碼有甚麼錯誤 我的php跑到這邊沒有反應,不知道是錯誤還是還是怎樣QQ 不過我確定資料庫中至少是有match的東西 謝謝各位大大幫忙! public function load_friends_food( $myId){ $sql = "SELECT friend_id FROM list WHERE id = ?"; $friend_list = $this->db->query($sql, array($myId)); $query = array(); foreach( $friend_list->result() as $row ){ $fid = $row->friend_id; $sql = "SELECT * FROM foodTable WHERE id = ? AND type = ?"; $food = $this->db->query( $sql, array($fid,0)); array_merge($query, $food->result_array()); } return $query; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.52.245

11/20 22:42, , 1F
有需要用到 foreach?
11/20 22:42, 1F

11/20 22:47, , 2F
我怎麼感覺你對SQL不熟?
11/20 22:47, 2F

11/21 01:27, , 3F
會用到foreach是因為要搜尋所有朋友的喜愛的食物QQ
11/21 01:27, 3F

11/21 01:28, , 4F
的確是蠻不熟的orz
11/21 01:28, 4F

11/21 01:30, , 5F
不知大大有何高見QQ
11/21 01:30, 5F

11/21 06:06, , 6F
用join
11/21 06:06, 6F

11/21 09:20, , 7F
高見不敢,是說active record還挺方便的怎麼你沒用?
11/21 09:20, 7F
後來我將array_merge( $query, $food->result_array()); 那一行換成 $temp = $food->result_array(); array_push( $query, $temp[0]); 就ok了 T_T||| 然後也試了 join 的方法,寫成如下: $sql = "SELECT b.* FROM list AS a, foodTable AS b WHERE a.id = ? AND a.friend_id = b.id AND b.type = ?"; $query = $this->db->query( $sql, array( $myId, 0)); 也成功了...當然也發現 我對SQL真的不熟orz||| 謝謝各位大大的幫助! ※ 編輯: issuemylove 來自: 114.36.52.245 (11/21 12:40)

11/22 00:41, , 8F
其實 join 是這樣寫的...
11/22 00:41, 8F

11/22 00:42, , 9F
SELECT * FROM list AS a
11/22 00:42, 9F

11/22 00:42, , 10F
LEFT JOIN foodtable AS b ON b.id = a.id
11/22 00:42, 10F

11/22 00:42, , 11F
WHERE a.id = ? AND b.type = ?
11/22 00:42, 11F

11/22 00:44, , 12F
剛沒看清楚... LEFT JOIN 後面是 b.id = a.friend_id
11/22 00:44, 12F

11/22 13:34, , 13F
感謝教學QQ 可是我看某一個網站教的是我那樣寫耶?
11/22 13:34, 13F

11/22 13:35, , 14F
http://ppt.cc/FQyw 1.inner join 那一行
11/22 13:35, 14F
文章代碼(AID): #1GgqvX-P (PHP)
文章代碼(AID): #1GgqvX-P (PHP)