我目前遇到此错误的问题:
数组到字符串转换
以下是代码:
控制器:
function get_tariff()
{
$this->load->model('model_tariff');
$data['destination']=$this->input->post('dest',true);
$data['lines']=$this->input->post('lines',true);
$data['weight']=$this->input->post('weight',true);
$data['priceperkg']=$this->model_tariff->get_tariff();
$data['pricetotal']=$data['priceperkg']* $data['weight'];
$this->load->view('tariff_result',$data);
}
模型:
function get_tariff()
{
$destination=$this->input->post('dest');
$lines=$this->input->post('lines');
$weightt=$this->input->post('weight');
$this->db->select('price');
$this->db->from('view_tariff');
$this->db->where('city_name',$destination);
$this->db->where('lines',$lines);
$price=$this->db->get();
return $price->result();
}
视图:
Price per kg <?php echo $priceperkg?>;
Bayar total <?php echo $pricetotall?>;
答案 0 :(得分:1)
CodeIgniter数据库方法result()
返回一个对象数组,而不是字符串文字(价格)。你需要做一些进一步的转换。例如,如果您期望单行,则尝试返回单个对象的row()
。然后,您可以引用属性price
:
return $price->row()->price;
或者,您可以采取其他几种方式。
答案 1 :(得分:0)
阅读CodeIgniter Active Result function
此函数在失败时将query result
作为对象数组或空数组返回。通常你会在http://ellislab.com/codeigniter/user-guide/database/results.html中使用它,如下所示:
$query = $this->db->query("YOUR QUERY");
foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->body;
}
上述功能是 result_object()的别名。
如果您运行的查询可能不会产生结果,建议您先测试结果:
$query = $this->db->query("YOUR QUERY");
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->body;
}
}