如何更改从$this->db->query('My Query');
得到的对象数组的值(结果是Object)。我试着使用foreach ($data->result() as $row)
——它工作得很好,我可以访问每个变量,但由于错误(php没有显示),我无法使用"&"(foreach ($data->result() as &$row)
)修改它。有什么想法吗?
使用一个额外的变量。
$result = $data->result();
foreach ($result as &$row) {
// enter code here
}
如果我理解你的意思,你假设修改你正在编辑的对象也会在数据库中取值。
如果是这种情况,您应该运行一个查询来更新数据库中的数据
$result = $data->result();
foreach ($result as &$row) {
$row->prop = 'new value';
$this->db->set($row)->where('id',$row->id)->update('table_name');
}
====================编辑====================
如果你想忽略像0000-00-00
这样的日期,你应该将它设置为一个空字符串,然后打印出表格。
$result = $data->result();
foreach ($result as &$row)
{
if( $row->date == '0000-00-00')
$row->date = '';
}
要打印出一个表,可以使用Codeigniter的HTML表类传递$result对象。
http://ellislab.com/codeigniter%20/user-guide/librarys/table.html
$this->load->library('table');
echo $this->table->generate($result);
由于某些原因,提供的方法不起作用。我找到了解决方案,如何解决我的问题:
<?php $result = $data->result_array();
foreach($result as &$row)
{
if($row['date'] == '0000-00-00')
{
$row['date'] = ' ';
}
$this->table->add_row($row['date'], $row['(other parameter)']...);
}
$this->table->set_template($template);
echo $this->table->generate(); ?>