0

我按照说明从表中获取整个记录,并将它们加载到 html 表中。这是模型

private $namatabel;

public function __construct() {
    parent::__construct();
    $namatabel='ms_kategori_material';
}

function read()
{        
   $sql = $this->db->get($this->namatabel);  

   if($sql->num_rows() > 0)
    {     
        foreach($sql->result() as $row)
        {  
            $data[] = $row;  
        }     
        return $data;  
    } 
    else 
    {  
        return null;  
    }  

}

然后使用read()控制器上的功能

public function __construct() {
    parent::__construct();
    $this->load->model('m_kategorimaterial');
}

function index()
{
    $data['c_row'] = $this->m_kategorimaterial->read();
//pass the c_row into the views  
    $this->load->view('v/vkategorimaterial', $data);  
}

在视图上显示它们

<?php  
$no = 1;   
foreach ($c_row as $row) { ?>  
    <tr id="row">  
        <td id="no"><?php echo $no;?></td>  
        <td id="judul"><?php echo $row->Kode_Kategori_Material_Jasa;?></td>  
        <td id="kategori"><?php echo $row->Nama_Material_Jasa;?></td>                 
    </tr>  
<?php  
    $no++;  
}  
?>  

但后来我收到一条错误消息,提示未定义变量c_row和提供的参数无效foreach()。我以为我已经通过and 复制粘贴语句发送了c_row变量。什么地方出了错 ?c_kategorimaterial/indexforeach

4

2 回答 2

0

1)检查您是否通过使用正确获取数据print_r($data)。如果出现问题,您可能在查询中遗漏了某些内容。

2)如果你得到了完美的数据库数据,那么只需在你的模型中更改返回数组的名称。

function read()
{        
   $sql = $this->db->get('ms_kategori_material');  

   if($sql->num_rows() > 0)
    {     
        foreach($sql->result() as $row)
        {  
            $c_row[] = $row;  
        }     
        return $c_row;  //comment this return part while debugging
        // print_r($c_row);
        //exit;
    } 
    else 
    {  
        return null;  
    }  

}

于 2012-10-11T13:03:59.303 回答
0

如果您打印数据数组以准确了解您在该数组中得到的内容,那会更好。尝试以下格式,可能会有所帮助

function getPosts() {
$query = $this->db->get('posts');
$posts = array();

foreach ($query->result() as $row) {
    $posts[] = array(
        'id' => $row->id,
        'title' => $row->title,
        'content' => $row->content
    );
}

return $posts;
}
于 2012-10-11T13:17:48.417 回答