0

質問があります。モデルからコントローラーにデータを渡すことができません。私のコードの一部を見ることができます。助けてください。それは動作しません!

これは私のモデル「mymodel.php」です

 ....

$query = $this->db->query("SELECT * FROM `rand` WHERE `used` = 0 LIMIT 0, 1");
    if($query){
    foreach ($query->result() as $row);
    }
    $t = "EXAMPLE/{$row->code}";
    function wandad() {
        return $t;
    }
.....

これは私のコントローラー mycont.php です

 ...
 $this->load->model('mymodel');

$data['new'] = $this->Mymodel->wandad();
$this->load->view('myview',$data);
 ...

これが私のビュー myview.php です

 ....
 echo $new; 
 .....
4

4 に答える 4

1

明らかにあなたはモデルが適切に書かれておらず、これを簡単に修正するためにこれを行います

1.) $t にデフォルト値を設定しました

2.) 内部関数にクエリ >> ループを配置します

ワンダッド

そのため、コントローラーから呼び出されると実行できます

function wandad() {
    $query = $this->db->query("SELECT * FROM `rand` WHERE `used` = 0 LIMIT 0, 1");
    $t = "";
    if($query){

       foreach ($query->result() as $row){
          $t = "EXAMPLE/{$row->code}".'<br>';
       }
     }

    return $t;
    }
于 2012-08-25T09:36:42.297 に答える
1

モデルにいくつかの問題があります

  • あなたの Foreach 関数は何もしません
  • $tと同じ名前空間にありませんwandad()
  • 関数 wandad がモデル クラスに定義されていません

関数で何を得たいのかわかりませんwandad()が、ここにパターンがあります。

function yourFunction()
{
    /* This will return the full query as an array */
    $query = $this->db->query("SELECT * FROM `rand` WHERE `used` = 0 LIMIT 0, 1")->result_array();
    /* Store variable in the same class */
    $this->t = "EXAMPLE/".$query[0]['code'];
/* Close yourFunction() */
}
public function wandad() {
    return $this->t;
}

次に、コントローラーに、代わりにそれを行います:

$this->load->model('mymodel');
$this->mymodel->yourFunction();
$data['new'] = $this->mymodel->wandad();
$this->load->view('myview',$data);
于 2012-08-24T21:06:51.807 に答える
0

あなたのコード @Ernesto. には小さな間違いがあります。

foreach ($query->result() as $row){
      $t. = "EXAMPLE/{$row->code}".'<br>';
   }

しかし、あなたのコードは単に素晴らしかった

于 2012-08-27T07:29:57.330 に答える
0

@Touki 彼の foreach は実際に何かをします。クエリから返された最後の行で変数 $row を設定します。それを行う最善の方法ではありません...しかし、それは方法です。クエリで制限を使用することをお勧めします。

于 2012-08-25T06:28:06.030 に答える