2016-04-15 11 views
2

私はcodeigniterバージョン3.0.5を使用しています。私はmysqlの代わりにmysqliを使いたいと思います。これは私が$ db ['default'] ['dbdriver'] = 'mysql'を$ db ['default'] ['dbdriver'] = 'mysqli'に変更し、var $ dbdriver = 'mysql'をvar $ dbdriver = 'mysqli'(システム/データベース/ DB_driver.php)。今モデルでは、コントローラとビューから私のコードは次のようなものです:ciでmysqliドライバを使用

マイコントローラ:

public function home() 
{ 
    $this->load->model('Destination_model'); 
    $data['main_content']="home_view"; 
    $data['values']=$this->Destination_model->getAllLocation(); 
    $this->load->view('include/template',$data); 
} 

私のモデル:

public function getAllLocation() 
{ 
    $query=$this->db->get('tbl_location'); 

    if($query->num_rows > 0) 
     { 
    return $query->result(); 
    } 
    return 0; 
} 

、今、私のビュー:

<h3 class="search-head">Select list (select one)</h3></label> 
<?php 
     $extra='class="form-control border-radius"'; 
     echo form_error('source'); 

     $place=array(); 
     $place[]="Select"; 
    foreach($values as $val){ 
      $place[$val->place_id]=$val->place_name; 
    } 

    echo form_dropdown('source', $place, set_value('source'),$extra); 
?> 

Iコンボでロードするモデルの値にアクセスしようとしましたが、エラーが表示されます。 "重大度:警告 メッセージ:foreachのために供給無効な引数() ファイル名:ビュー/ home_view.php 行番号:?18 」

問題は何である任意のボディを助けることができますか?

public function getAllLocation() 
{ 
    $query=$this->db->get('tbl_location'); 

    if($query->num_rows() > 0) 
     { 
    return $query->result_array(); 
    } 
    return []; 
} 

ビュー:

モデルの使用$で
<h3 class="search-head">Select list (select one)</h3></label> 
<?php 
     $extra='class="form-control border-radius"'; 
     echo form_error('source'); 

     $place=array(); 
     $place[]="Select"; 
    foreach($values as $val){ 
      $place[$val['place_id']]=$val['place_name']; 
    } 

    echo form_dropdown('source', $place, set_value('source'),$extra); 
?> 

答えて

2

あなたは$query->result_array()

モデル使用してみてください代わりに$query->result()を使用するのではなく、オブジェクト上のforeachを実行することはできません()を$ query-> num_rowsの代わりに使用し、ビューファイルでforeachループの前に配列を常にチェックする

if(is_array($values) && count($values)>0){ 
    foreach($values as $val){ 
      $place[$val->place_id]=$val->place_name; 
    } 
} 
+0

あなたはあなたはそれが簡単に –

+0

は、私は私の答えを編集したと述べてみました.Iコードを表示することができます$ query-> num_rows'を '$ query-> num_rows()'に変更しました。 –

+0

エラーがなくなっているが、データがコンボ –

3

query-> NUM_ROWS

+0

コードも有効です。 –

関連する問題