2010-12-09 109 views
1

我已經成功地查詢一個表來獲得所需要查詢另一個表信息(如果你能看到一個更好的辦法,我將不勝感激!)我如何傳遞多個查詢結果,以新的查詢

我的問題是:如何從第一個查詢返回多個值,並讓我的第二個查詢返回多個結果。 正如你所看到的,我將查詢返回的結果插入查詢兩個「msg_id =?」(我使用'$ datas'來填充'?'),但是如果我的查詢結果有多個值,那麼這將如何工作?

我怎樣才能讓它從查詢一個得到多個結果?此刻如果在mysql中有多個值,它只會抓取它讀取的第一個值。

MODEL代碼如下:

function check() { 
    $this->db->select('msgto_message'); 
    $this->db->from('msgto'); 
    $this->db->where('msgto_display', 'y'); 
    $this->db->where('msgto_recipient', '1'); 

    $w = $this->db->get(); 

    if ($w->num_rows() > 0) { 
      $rowe = $w->row_array(); 

      $datas = $rowe['msgto_message']; 
    } 

    $sql = "SELECT msg_content FROM msg WHERE msg_id = ?"; 

$data = $this->db->query($sql, $datas) or die(mysql_error()); 

if ($data->num_rows() > 0) { 
    foreach($data->result_array() as $row) { 
     $data = $row; 
     } 

     return $data; 
    } 

} 

控制器代碼如下:

function index() { 
    $this->load->model('data_model'); 
    $data['rows'] = $this->data_model->check(); 

    $this->load->view('home', $data); 
} 

謝謝任何​​人幫助我,我非常感激!

回答

0

您可能會發現一個數據庫連接有用這裏的所有記錄。 (!尤其是在foreach循環)雖然我不能完全確定你想要做什麼在這裏,這樣的事情可能讓你更高效的方向發展:

function check() { 
    $this->db->select('msg.msg_content'); 
    $this->db->from('msgto'); 
    $this->db->join('msg', 'msgto.msgto_message = msg.msg_id'); 
    $this->db->where('msgto.msgto_display', 'y'); 
    $this->db->where('msgto.msgto_recipient', '1'); 

    $data = $this->db->get(); 

    if ($data->num_rows() > 0) { 
     return $data->result_array(); 
    } 
} 

這要求數據庫加盟msgmsgto表格基於msgto_message匹配msg_id,並且可以使用WHERE標記msgto,同時返回msg的結果。

0

權不是你從查詢一個 if ($w->num_rows() > 0) { $rowe = $w->row_array();

 $datas = $rowe['msgto_message']; 
} 

只得到第一行要獲得你需要循環的結果
if ($w->num_rows() > 0) {
foreach($rowe = $w->row_array() as $datas) {

$datas = $rowe['msgto_message']; 

    $sql = "SELECT msg_content FROM msg WHERE msg_id = ?"; 

    $data = $this->db->query($sql, $datas) or die(mysql_error()); 

    if ($data->num_rows() > 0) { 
     foreach($data->result_array() as $row) { 
      $data = $row; 
     } 

     return $data; 
    } 

}

}

+0

謝謝你指出!我正確地說,「foreach($ rowe = $ w-> row_array()){」應該是「foreach($ rowe = $ w-> row_array()爲$ datas){」? – Elgoog 2010-12-09 09:30:11

+0

是的,你說得對。我會更正它 – 2010-12-09 09:39:28

相關問題