我对codeigniter很新,正在尝试JOIN操作。我的数据库表users
结构是
id username password user_type cust_id
8 abc xyz cust 7
和account_numbers
表是
bank_id customer_id ac_number creation_date
3 7 12345 2013-06-12
要获取已知用户ID的帐号,我写了
function get_ac_no($user_id)
{
//echo $user_id;
$this->load->database();
$this->db->select('ac_number');
$this->db->from('account_numbers');
$this->db->join('users','account_numbers.customer_id = users.id');
$this->db->where('customer_id ',$user_id);
$this->db->limit(1);
$q = $this->db->get();
$r = $q->result();
var_dump( $r );
return $r;
}
但它显示空洞的结果!你能说明我做错了吗?
答案 0 :(得分:0)
我认为users.id
中的问题会将其替换为users.cust_id
。
它可能会得到你的结果。
正确的代码是:
function get_ac_no($user_id)
{
//echo $user_id;
$this->load->database();
$this->db->select('ac_number');
$this->db->from('account_numbers');
$this->db->join('users','account_numbers.customer_id = users.cust_id');
$this->db->where('account_numbers.customer_id ',$user_id);
$this->db->limit(1);
$q = $this->db->get();
$r = $q->result();
var_dump( $r );
return $r;
}
答案 1 :(得分:0)
您没有匹配用户ID和customer_id的记录,因此您可以获得null结果集。 如果你的表记录像......
用户表
id username password user_type cust_id
8 abc xyz cust 7
account_numbers 表
bank_id customer_id ac_number creation_date
3 8 12345 2013-06-12
你可以得到一条记录..
在上表中使用您的结果,例如......
ac_number
12345
您的加入符合用户表 ID 和 account_numbers 表 customer_id ...
如果您在匹配用户ID和客户ID时获得记录。
抱歉我的英语.....