我目前在网络应用程序上有一个功能,我正在建立一个求职者可以查看他们申请的工作,非常简单。
当他们“申请”时,这个应用程序存储在数据库表'applications'中,并带有'job_id'列,该列存储'jobs'数据库表中作业的'id'。
目前,我能够提取所述求职者所提出的每份申请。
虽然,我无法遍历每个应用程序并找到与该应用程序对应的作业,然后将row_array()添加到更大的数组中,然后我将使用foreach循环输出作业。
基本上我问的是如何将数组添加到数组然后输出完整的数组?
appliedfor.php (CONTROLLER)
$applications_query = $this->db->get_where(
'applications', array('jobseeker_profile_id' => $user['id'])
);
$applications = $applications_query->result_array();
$data[] = array();
foreach ($applications as $application) {
$job_id = $application['job_id'];
$data['job'] = $this->db->get_where('jobs', array('id' => $job_id))->row_array();
$data['jobs'] .= $data['job'];
}
$data['jobs'];
$this->load->view('header');
$this->load->view('appliedfor', $data);
appliedfor.php (VIEW)
foreach ($jobs as $job) {
$single_job_id = $job['id'];
echo "<br>";
echo form_open('job/view' . '" id="eachJob');
echo "<div id=\"leftContain\" class=\"floatLeft\">";
echo "<h4 class=\"green\">" . $job['role'] . "</h4>";
echo "<div class=\"italic\"><div class=\"blue floatLeft\">" . $job['company']
. " </div><div class=\"floatLeft\">in</div><div class=\"blue floatLeft\"> "
. $job['location'] . "</div></div><br><br>";
echo "</div>";
echo "<div id=\"rightContain\" class=\"floatLeft\">";
echo "<input type=\"hidden\" name=\"job_id\" value=\"" . $single_job_id . "\">";
echo form_submit('submit' . '" class="jobButton floatRight"', 'View Job');
echo "</div>";
echo form_close();
}
我目前收到2个错误:未定义索引:作业和错误在此行中显然是$data['jobs']
在foreach中的控制器中。
另一个错误是视图文件中的foreach,但基本上是由第一个错误触发的。
感谢您的帮助。
答案 0 :(得分:0)
你是对的:
$data['jobs'] .= $data['job'];
连接字符串,而不是数组,并且永远不会工作。
相反,尝试类似:
$data['jobs'][] = $data['job'];
建立一个作业数组,然后使用foreach()或任何最合适的
输出答案 1 :(得分:0)
更改您的控制器代码:
$applications_query = $this->db->get_where(
'applications', array('jobseeker_profile_id' => $user['id'])
);
$applications = $applications_query->result_array();
$data = array(); //declare and init $data, an empty array
foreach ($applications as $job_id=>$application) {
// list jobs for job_id, you can using $job_id as array-key
$data['job'][$job_id] = $this->db->get_where('jobs', array('id' => $job_id))->row_array();
}
$this->load->view('header');
$this->load->view('appliedfor', $data);