Php 为foreach()提供的参数无效;

Php 为foreach()提供的参数无效;,php,codeigniter,Php,Codeigniter,我得到了这个错误 为foreach()提供的参数无效; 未定义变量:行…….视图行13中的错误 请帮帮我1.我不知道是什么错误 1.控制器 function customer_area() { $this->load->model('cus_model'); $data['rows']=$this->cus_model->cusall(); $this->load->view('customer_view',$data); } 2.型号

我得到了这个错误

为foreach()提供的参数无效; 未定义变量:行…….视图行13中的错误

请帮帮我1.我不知道是什么错误

1.控制器

function customer_area() {

  $this->load->model('cus_model');

  $data['rows']=$this->cus_model->cusall();

  $this->load->view('customer_view',$data);

}
2.型号

function cusall() {     
  $q = $this->db->get('customer');        
  $this->db->select('*');
  if($q->num_rows()>0) {    
    foreach($q->result() as $rows){      
      $data[]=$rows;
    }
    return $data;
  }
}`
<table border="1" height="200" width="200" bordercolor="#003366">
      <tr><th>ID</th></td><th>NAME</th><th>Type</th><th>Address</th><th>Mobile</th><th>Skype_Id</th><th>Email</th><th colspan="2">Actiom</th></tr>

      foreach($rows as $r)

    {
      echo "<tr>";
      echo "<td>". $r->id ."</td>";
      echo "<td>". $r->name ."</td>";
      echo "<td>". $r->type ."</td>";
      echo "<td>". $r->address ."</td>";
      echo "<td>". $r->mobile ."</td>";
      echo "<td>". $r->skype_id ."</td>";
      echo "<td>". $r->email ."</td>";
      echo "<td>". anchor('customer/input/'.$r->id,'Edit') ."</td>";    
      echo "<td>". anchor('customer/del/'.$r->id,'Delete') ."</td>";
      echo "</tr>"; 
      echo "<br>"; 
      }


      ?>
      </table>
3.视图

function cusall() {     
  $q = $this->db->get('customer');        
  $this->db->select('*');
  if($q->num_rows()>0) {    
    foreach($q->result() as $rows){      
      $data[]=$rows;
    }
    return $data;
  }
}`
<table border="1" height="200" width="200" bordercolor="#003366">
      <tr><th>ID</th></td><th>NAME</th><th>Type</th><th>Address</th><th>Mobile</th><th>Skype_Id</th><th>Email</th><th colspan="2">Actiom</th></tr>

      foreach($rows as $r)

    {
      echo "<tr>";
      echo "<td>". $r->id ."</td>";
      echo "<td>". $r->name ."</td>";
      echo "<td>". $r->type ."</td>";
      echo "<td>". $r->address ."</td>";
      echo "<td>". $r->mobile ."</td>";
      echo "<td>". $r->skype_id ."</td>";
      echo "<td>". $r->email ."</td>";
      echo "<td>". anchor('customer/input/'.$r->id,'Edit') ."</td>";    
      echo "<td>". anchor('customer/del/'.$r->id,'Delete') ."</td>";
      echo "</tr>"; 
      echo "<br>"; 
      }


      ?>
      </table>

IDNAMETypeAddressMobileSkype_ideMailAction
foreach($r行)
{
回声“;
回显“$r->id”;
回显“$r->name.”;
回显“$r->type.”;
回显“$r->地址”;
回声“$r->mobile.”;
回显“$r->skype_id”;
回显“$r->电子邮件”;
echo'.anchor('customer/input/'.$r->id,'Edit');
echo“.anchor('customer/del/'。$r->id,'Delete')”;
回声“;
回声“
”; } ?>
在模型中,返回$q->result(),而不是循环并将行放入数组中

实际上,你可以把它简化为:

新功能:

function cusall()       
{
    $q = $this->db->get('customer');
    return $q->result();
}

编辑。通过这种方式,它要么返回foreach将循环通过的结果对象,要么返回false,这将永远不会让foreach Trgger您根本不需要更改视图。用我编写的模型函数替换您的模型函数。您可以使用var_dump($data['rows'])来验证它从数据库中检索东西的能力;出口在加载视图之前,在控制器中