Foreach错误变量无法识别

时间:2013-06-10 07:10:14

标签: php codeigniter foreach

我有这个功能

function c_del()
{
    $session_data = $this->session->userdata('logged_in');
    $uname  = $session_data['username'];
    $query  = $this->user_m->viewDetail($uname);
    foreach($query as $row)
        {
            $username=$row->username;
        }
    $id_calon_reg=$_GET['a'];
    $query1 = $this->candidate_m->del_calon($id_calon_reg);
    $query3 = $this->candidate_m->search_calon($id_calon_reg);
    foreach($query3 as $row)
        {
            $foto_calon=$row->foto_calon;
        }
    unlink($foto_calon);
    $query2 = $this->candidate_m->viewAll();
    $data=array(
        "query"=>$query2,
        "username"=>$username
    );
    $this->load->helper(array('form'));
    $this->load->view('candidate_view',$data);
}

我想取消链接存储在$ foto_calon中的路径,但是我收到此错误

  

遇到PHP错误

     

严重性:注意

     

消息:未定义的变量:foto_calon

     

文件名:controllers / candidate.php

     

行号:67

第67行是我调用unlink函数的地方。

但是我已经在foreach中定义了变量$ foto_calon。

第一个foreach,当我想将用户名存入$ username其成功但在第二个foreach中出错。

我无法找出问题所在。谁能告诉我?

2 个答案:

答案 0 :(得分:0)

尝试替换

foreach($query3 as $row)
{
   $foto_calon=$row->foto_calon;
}

if(is_array($query3)) {
    foreach($query3 as $row)
    {
        $foto_calon=$row['foto_calon'];
    }
}

如果你想在结果数组中取消关联foto_calon的每一行,那么将这个unlink放在这个foreach循环中,如

if(is_array($query3)) {
    foreach($query3 as $row)
    {
        $foto_calon=$row['foto_calon'];
        unlink($foto_calon);
    }
}

答案 1 :(得分:0)

尝试将unlink放入foreach中,如下所示:

    $id_calon_reg=$_GET['a'];
    $query1 = $this->candidate_m->del_calon($id_calon_reg);
    $query3 = $this->candidate_m->search_calon($id_calon_reg);
    foreach($query3 as $row)
        {
            $foto_calon=$row->foto_calon;
            unlink($foto_calon);
        }