【问题标题】:How to write normal sql query in active records form如何以活动记录形式编写正常的 sql 查询
【发布时间】:2015-10-27 19:27:04
【问题描述】:
$ba = $this->db->query("select * from result, users, exam_title, states, user_zone, detailed_result, answers
            WHERE users.user_id = result.user_id AND exam_title.title_id = result.exam_id AND users.state = states.state_id AND
            users.user_zone = user_zone.user_zone_id AND detailed_result.given_ans_id = answers.ans_id 
            AND detailed_result.ques_id = answers.ques_id AND users.user_id = detailed_result.user_id AND
            result.exam_id = '".$exid."' AND detailed_result.ques_id = '".$qid."' ")
            ->result();

如何在codeignitor活动记录表单中编写上述sql查询

我尝试使用下面的代码,但它显示错误

 $ba = $this->db->select('*')
            ->from('result')
            ->where('detailed_result.ques_id', $qid)
            ->where('result.exam_id', $exid)

            ->where('answer.ans_id', 'detailed_result.given_ans_id')

            ->where('users.user_id', 'detailed_result.user_id')

            ->join('users', 'users.user_id = result.user_id', 'left')
            ->join('exam_title', 'exam_title.title_id = result.exam_id', 'left')
            ->join('states', 'users.state = states.state_id', 'left')
            ->join('user_zone', 'users.user_zone = user_zone.user_zone_id', 'left')

            ->join('detailed_result', 'result.exam_id = detailed_result.exam_id', 'left')
            ->join('answers', 'detailed_result.ques_id = answers.ques_id', 'left')
            ->get()
            ->result();

【问题讨论】:

  • 也发布错误详情
  • 它显示“此网页不可用”

标签: mysql sql codeigniter activerecord


【解决方案1】:

试试这个代码

 $ba = $this->db->select('*')
        ->join('users', 'users.user_id = result.user_id', 'left')
        ->join('exam_title', 'exam_title.title_id = result.exam_id', 'left')
        ->join('states', 'users.state = states.state_id', 'left')
        ->join('user_zone', 'users.user_zone = user_zone.user_zone_id', 'left')
        ->join('detailed_result', 'result.exam_id = detailed_result.exam_id', 'left')
        ->join('answers', 'detailed_result.ques_id = answers.ques_id', 'left')

        ->where('detailed_result.ques_id', $qid)
        ->where('result.exam_id', $exid)
        ->where('answer.ans_id', 'detailed_result.given_ans_id')
        ->where('users.user_id', 'detailed_result.user_id')
        ->get('result');

然后从查询中得到结果数组

$result = $ba->result_array();

【讨论】:

    【解决方案2】:

    如下使用它,如果有任何错误,请告诉我。

           $ba = $this->db->select('*')
            ->from('result')
    
            ->join('users', 'users.user_id = result.user_id', 'left')
            ->join('exam_title', 'exam_title.title_id = result.exam_id', 'left')
            ->join('states', 'users.state = states.state_id', 'left')
            ->join('user_zone', 'users.user_zone = user_zone.user_zone_id', 'left')
    
            ->join('detailed_result', 'result.exam_id = detailed_result.exam_id', 'left')
            ->join('answers', 'detailed_result.ques_id = answers.ques_id', 'left')
             ->where('detailed_result.ques_id', $qid)
            ->where('result.exam_id', $exid)
    
            ->where('answers.ans_id', 'detailed_result.given_ans_id')
    
            ->where('users.user_id', 'detailed_result.user_id')
    
            ->get()
            ->result();
    

    【讨论】:

    • 进行了更改,再次使用并分享发现的错误。
    • 此网页不可用 ERR_INVALID_RESPONSE
    • @zub,使用 $this->db->last_query();并得到完整的查询并在mysql界面上运行,然后如果数据库错误,则将是查询错误,否则您需要检查整个脚本页面,可能是php错误。
    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多