看板 PHP 關於我們 聯絡資訊
可以請問各位大大下面有關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
appleboy46:有需要用到 foreach? 11/20 22:42
tkdmaf:我怎麼感覺你對SQL不熟? 11/20 22:47
issuemylove:會用到foreach是因為要搜尋所有朋友的喜愛的食物QQ 11/21 01:27
issuemylove:的確是蠻不熟的orz 11/21 01:28
issuemylove:不知大大有何高見QQ 11/21 01:30
bigbite:用join 11/21 06:06
tkdmaf:高見不敢,是說active record還挺方便的怎麼你沒用? 11/21 09:20
後來我將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)
Bambe:其實 join 是這樣寫的... 11/22 00:41
Bambe:SELECT * FROM list AS a 11/22 00:42
Bambe:LEFT JOIN foodtable AS b ON b.id = a.id 11/22 00:42
Bambe:WHERE a.id = ? AND b.type = ? 11/22 00:42
Bambe:剛沒看清楚... LEFT JOIN 後面是 b.id = a.friend_id 11/22 00:44
issuemylove:感謝教學QQ 可是我看某一個網站教的是我那樣寫耶? 11/22 13:34
issuemylove:http://ppt.cc/FQyw 1.inner join 那一行 11/22 13:35