以下是我的编码。
在sent_invitation
表格中有3行user_id=11
从那里我试图根据user_id
获得所有三行的mobile_number
所有3行的mobile_number都不同
在mobile_number
表格中sent_invitation
之后
我将mobile_number
与用户数的mobile_number进行比较
我看到用户表中有3个mobile_numbers
的2个数字
我试图在用户表中显示mobile_numbers
,即2.
问题是我的代码显示了3个数组
2带有当前行(作为数组)。
并显示第3行为null,我不想要
我只想在用户表中出现mobile_numbers
,即2
答案 0 :(得分:0)
以下是您的解决方案:
$this->db->select('user_id,name,mobile_number');
$this->db->from('users');
$this->db->join('sent_invitation','sent_invitation.mobile_number=users.mobile_number');
$this->db->where('users.user_id',$user_id);
$query = $this->db->get();
return ($query->num_rows() > 0)?$query->result_array():FALSE;
答案 1 :(得分:0)
如果我理解正确你只想要与你的用户表匹配的结果 - 在这种情况下你可以尝试这样的简单连接
但是 - 因为你使用像mysql_query
这样的旧函数,所以它建议你也使用旧的PHP版本 - 所以我不确定你使用哪个CI版本 -
public function invitation_result()
{
$this->load->database();
$user_id =$this->input->get("user_id");
$query = $this->db
->select("*")
->from("sent_invitations AS si")
->join("users AS u","u.mobile_number = si.mobile_number")
->where("user_id", $user_id)
->get();
$arrUsers = [];
if ($query->num_rows() > 0)
{
foreach($query->result() AS $row)
{
$arrUsers[] = array("user_id" => $row->user_id, "name" => $row->name, "mobile_number" => $row->mobile_number);
}
}
return $arrUsers;
}
ps:下次你应该粘贴代码而不是上传图片 - 简单地忽略基本规则是非常粗鲁的......