2013-03-17 45 views
0

我的主頁是www.respectmyplanet.org,我正在寫Codeigniter。免責聲明:我是金融分析師,只是一個業餘愛好者程序員,沒有正式的編程教育。從MySQL中的多個表中選擇和顯示

要看看我寫下面的例子:如果你點擊我的地圖在我的主頁任何標誌,你從一個AJAX調用,從我的地理模型運行此方法的信息窗口:

public function get_well_infowindow ($permit) { 
    $sql = sprintf("SELECT * FROM mi_oil_well_info WHERE Permit_No = '%s' LIMIT 1 ", 
    mysql_real_escape_string($permit)); 
    $query = $this->db->query($sql); 
    return $query->result(); 
} 

如果你看看infowindow,你會看到一個四位數字的操作符和四位數的地質編碼。所有數據來自MDEQ提供的密歇根州數據庫,我只是把它推到MySQL中。

我想讓我的infowindow在「大桌子」上代替「6450」說「Encana Gas Company」,我希望它能夠代表Collingwood頁岩地層代替CLGD在「大桌子」上說「Collingwood」 。我已經從密歇根州增加了兩張表,它們用代碼列出了所有公司的代碼和所有編排,但我不知道如何從多個表中提取我需要的數據,並使我的infowindow使用更多的人類可讀信息。

的其它表是真正簡單:

column1 - OpNo  column2 - OpName 
6450    Encana Gas Company 

column1-ObjForm column2 - FormName 
CLGD    Collingwood Shale 

我附和了,目前,$marker_info[0]->OpNo,並從一個調用的「大表」 $marker_info[0]->ObjForm,我想呼應了$marker_info[0]->OpName$marker_info[0]->FormName但他們來自那些其他表和我不知道如何從多個表中檢索或回顯出來。

任何人都可以幫助我:從我的「大桌子」中選擇一切,就像我現在工作的很好,但將公司名稱和地質編碼的公司代碼替換爲地質構造的長描述以及如何回顯退出?

+0

請,問一個具體的技術問題,你都試過,什麼不起作用。你不能期望在這裏發佈任務並獲得解決方案。主要想法:您的問題必須對其他人具有潛在價值。 – 2013-03-17 19:28:23

回答

0

通過加入SQL中的表來執行此操作。我沒有在你的問題中看到其他兩個表的名字,所以我只是將第一個表稱爲other_table_1。

替換此:

SELECT * FROM mi_oil_well_info WHERE Permit_No = '%s' LIMIT 1 

與此:

SELECT mi_oil_well_info.*, other_table_1.OpName 
FROM mi_oil_well_info 
LEFT JOIN other_table_1 ON mi_oil_well_info.OpNo=other_table_1.OpNo 
WHERE Permit_No = '%s' LIMIT 1 

您還可以通過運行另一個SELECT語句查找鑑於Permit_No名稱做到這一點,但不這樣做。如果您加入表格並讓數據庫查找其他字段,它將更快更高效地運行。

MySQL的SELECT語句更多信息:http://dev.mysql.com/doc/refman/5.0/en/select.html