【问题标题】:How to query the database with infromation from another query?如何使用来自另一个查询的信息查询数据库?
【发布时间】:2012-10-09 17:05:57
【问题描述】:

我有一个 mysql 表,其中包含有关学生的信息和另一个有关付款的信息。我想显示一个包含学生姓名和付款信息的表格。我的代码正确吗?还是我误解了它的工作原理,因为这会导致一个空数组。 我想要它,对于它在 $data['students'] 中找到的每个学生,都可以搜索具有相同学生 ID 的付款信息来自今年,并且班级 ID 与 $id 相同。有没有更简单的方法来做到这一点?

    $data['students'] = $this->db->get_where('students', array('class_id' => $id), 40);

    foreach ($data['students']->result_array() as $student){        
        $data['student_info'] = $this->db->get_where('student_payments', array('class_id' => $id, 'student_id' => $student['id'], 'year' => date("Y")), 40);        
    }

提前致谢,

泰国蝎子。

【问题讨论】:

    标签: php arrays codeigniter activerecord


    【解决方案1】:
    $query = "SELECT * FROM students
    JOIN student_payments on student_payments.student_id = students.student_id
    WHERE students.class_id= $id"
    $result = my_sql_query($query);
    if($result->num_rows() >0)
    {
        return $result->result_array();
    }  else  {
        return array();
    }
    

    一旦我开始加入表格,我个人就会完全跳过 CI 的内容,有时它只会让事情变得比他们需要的更困难。我在您的代码中唯一没有看到的是您如何传递 class_id。

    【讨论】:

    • 感谢 Rick 的快速响应,我不敢相信我已经使用了这么长时间,而且从未见过 mysql 查询的 JOIN 函数:D 谢谢,我会试一试我会告诉你的进展如何。
    • 感谢 Rick,如果有人需要的话,这里可以完美运行是 CI 版本。 $this->db->select('*'); $this->db->from('学生'); $this->db->where('students.class_id', $id); $this->db->join('student_payments', 'student_payments.student_id = students.id', 'INNER');
    • 很高兴它成功了。过去我在使用 CI 的查询生成器时遇到了一些问题,所以我倾向于诚实地做普通 PHP 查询中的基本查询之外的任何事情,但是如果它有效,那就太好了!
    猜你喜欢
    • 2017-09-30
    • 2018-02-15
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多