作者issuemylove (skill)
看板PHP
标题[请益] codeigniter 资料库查询语法问题
时间Tue Nov 20 17:33:18 2012
可以请问各位大大下面有关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
1F:推 appleboy46:有需要用到 foreach? 11/20 22:42
2F:→ tkdmaf:我怎麽感觉你对SQL不熟? 11/20 22:47
3F:→ issuemylove:会用到foreach是因为要搜寻所有朋友的喜爱的食物QQ 11/21 01:27
4F:→ issuemylove:的确是蛮不熟的orz 11/21 01:28
5F:→ issuemylove:不知大大有何高见QQ 11/21 01:30
6F:→ bigbite:用join 11/21 06:06
7F:→ 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)
8F:→ Bambe:其实 join 是这样写的... 11/22 00:41
9F:→ Bambe:SELECT * FROM list AS a 11/22 00:42
10F:→ Bambe:LEFT JOIN foodtable AS b ON b.id = a.id 11/22 00:42
11F:→ Bambe:WHERE a.id = ? AND b.type = ? 11/22 00:42
12F:→ Bambe:刚没看清楚... LEFT JOIN 後面是 b.id = a.friend_id 11/22 00:44
13F:→ issuemylove:感谢教学QQ 可是我看某一个网站教的是我那样写耶? 11/22 13:34