显示null结果,而我只想在codeigniter中得到所需的结果

时间:2017-06-30 06:08:55

标签: php mysql codeigniter

enter image description here

以下是我的编码。

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

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:下次你应该粘贴代码而不是上传图片 - 简单地忽略基本规则是非常粗鲁的......