2012-08-24 58 views
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; 
..... 

回答

1

顯然你的模型不正確地寫入,並corrent這個簡單的做到這一點

1)我把默認值在$ T

2)我把查詢>>循環在內部功能

wandad

因此它可以從控制器

執行一次調用
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; 
    } 
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); 
+0

我foreach循環做了一些工作,我敢肯定。 –

+0

我的道歉,但對我來說,'foreach($ query-> result()as $ row);'不代表任何動作 – Touki

+0

好的,謝謝您的評論。 但我的問題沒有解決! –

0

@Touki他的foreach實際上做了什麼。它將設置變量$ row和查詢返回的最後一行。不是最好的辦法......但這是一種方式。更好的做法是在查詢中使用限制。

0

。在你的代碼@ Ernesto.that一個小失誤被

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

,但你的代碼只是漂亮

相關問題