0

現在、次のエラーで問題が発生しています。

配列から文字列への変換

コードは次のとおりです。

コントローラ:

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?>;
4

2 に答える 2

1

CodeIgniter データベース メソッドresult()は、文字列リテラル (価格) ではなく、オブジェクトの配列を返します。さらにいくつかの変換を行う必要があります。たとえば、単一の行が必要な場合はrow()、単一のオブジェクトを返すものを試してください。次に、プロパティを参照できますprice

return $price->row()->price;

または、これを他のいくつかの方法で処理できます。

于 2013-05-19T04:56:43.200 に答える
0

CodeIgniter Active Result 関数の読み取り

この関数は、オブジェクト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;
   }
}
于 2013-05-19T04:56:33.770 に答える