【问题标题】:Adding row_array to result_array foreach loop with codeigniter?使用codeigniter将row_array添加到result_array foreach循环?
【发布时间】:2013-09-04 10:32:26
【问题描述】:

我目前正在构建一个网络应用程序上的功能,求职者可以在其中查看他们申请的工作,非常简单。

当他们“申请”时,此应用程序存储在数据库表“applications”中,其中包含“job_id”列,该列存储“jobs”数据库表中的作业“id”。

目前,我可以提取上述求职者所做的每个申请。

虽然,我无法遍历每个应用程序并找到与该应用程序对应的作业,然后将 row_array() 添加到更大的数组中,然后我将使用 foreach 循环输出作业。

本质上我是在问如何将数组添加到数组中,然后输出完整的数组?

appliedfor.php(控制器)

$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(查看)

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']
        . " &nbsp; </div><div class=\"floatLeft\">in</div><div class=\"blue floatLeft\"> &nbsp; "
        . $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,但这基本上是由第一个错误触发的。

感谢您的帮助。

【问题讨论】:

    标签: php mysql arrays codeigniter foreach


    【解决方案1】:

    你是对的:

    $data['jobs'] .= $data['job'];
    

    连接字符串,而不是数组,并且永远不会工作。

    请尝试以下方法:

    $data['jobs'][] = $data['job'];
    

    建立一个作业数组,然后使用 foreach() 或任何最合适的方法输出

    【讨论】:

      【解决方案2】:

      更改您的控制器代码:

      $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); 
      

      【讨论】:

        猜你喜欢
        • 2018-12-21
        • 1970-01-01
        • 2014-06-07
        • 2019-05-28
        • 1970-01-01
        • 2017-05-22
        • 2013-11-09
        • 2021-04-08
        • 2021-05-14
        相关资源
        最近更新 更多