我试图在codeigniter中找出这个东西,但因为我是初学者,我在寻找解决方案时遇到了一些麻烦。
我有一个名为tasks
的表和另一个名为progress
的表。因此,在tasks
表中插入了许多任务,并在progress
表中插入了这些任务的进度。我使用不同的表来跟踪进度,因为我可能需要稍后跟踪每个任务的进度历史记录。
$all_tasks = $this->task_m->get_by(array('user_id'=> $this->session->userdata('id')));
foreach ($all_tasks as $task) {
$progress = $this->progress_m->get_by(array('task_id'=> $task->id));
};
所以我要做的是将$task
和$progress
的条目添加到数组中,以便我可以遍历它并一次显示任务的组合结果。
tasks
表中有两个条目,$tasks
的值为:
array(2) {
[0]=>
object(stdClass)#24 (8) {
["id"]=>
string(1) "6"
["user_id"]=>
string(1) "2"
["name"]=>
string(28) "Sample task to do sometihing"
["description"]=>
string(28) "Sample task to do sometihing"
["priority"]=>
string(4) "high"
["status"]=>
string(7) "pending"
["created"]=>
string(19) "2014-02-27 23:26:09"
["modified"]=>
string(19) "2014-02-27 23:26:09"
}
[1]=>
object(stdClass)#25 (8) {
["id"]=>
string(1) "7"
["user_id"]=>
string(1) "2"
["name"]=>
string(13) "Sample task 2"
["description"]=>
string(11) "Sample desc"
["priority"]=>
string(1) "1"
["status"]=>
string(0) ""
["created"]=>
string(19) "2014-02-28 00:20:17"
["modified"]=>
string(19) "2014-02-28 00:20:17"
}
}
progress
表中有两个条目,每个$progress
的值为:
array(1) {
[0]=>
object(stdClass)#26 (6) {
["id"]=>
string(1) "1"
["task_id"]=>
string(1) "6"
["percentage"]=>
string(2) "68"
["description"]=>
string(17) "About to complete"
["created"]=>
string(19) "2014-02-18 00:00:00"
["modified"]=>
string(19) "2014-02-12 00:00:00"
}
}
array(1) {
[0]=>
object(stdClass)#27 (6) {
["id"]=>
string(1) "2"
["task_id"]=>
string(1) "7"
["percentage"]=>
string(2) "56"
["description"]=>
string(6) "Sample"
["created"]=>
string(19) "2014-02-05 00:00:00"
["modified"]=>
string(19) "2014-02-14 00:00:00"
}
}
答案 0 :(得分:1)
你快到了:
$all_tasks = $this->task_m->get_by(array('user_id'=> $this->session->userdata('id')));
foreach ($all_tasks as $task) {
$task->progress_list = $this->progress_m->get_by(array('task_id'=> $task->id));
};
答案 1 :(得分:0)
为什么不直接使用ActiveRecord连接两个表,运行查询然后你有一个带有所有信息的结果对象?我假设他们共享一个共同密钥正确吗?如果没有,您可能需要重新考虑数据库的布局方式。如果您不想使用ActiveRecord,可以在标准MySQL中编写查询并使用query()方法。