2009-12-17 119 views
1

我正在構建我的第一個真正的CI應用程序。我必須建立一個調查系統 - 如果細節很重要,我會詳細說明。Codeigniter - 如何存儲信息? (noob)

什麼是從用戶發佈信息到數據庫的最佳方式?在一行中,逗號是分隔的嗎?我是一個菜鳥,所以細節將不勝感激! :)

我應該補充一點:用戶需要有能力多次嘗試測試並將每個測試的得分繪製成圖。每次測試都需要付款。

這就是我所在的地方。這段代碼很有用,但我確定有一種更優雅的方式來做事。

$this->db->select('credits')->from('be_user_profiles')->where('user_id', $this->session->userdata('id')); 
$query = $this->db->get(); 
foreach ($query->result() as $row) 
{ 
    echo $row->credits; 
} 

這是怎麼回事?

+0

絕對需要更多的信息,你在談論什麼樣的信息? – 2009-12-17 15:00:51

+0

添加了一點細節,Nate! – 2009-12-17 15:05:27

回答

0

這更像是代碼組織/代碼結構問題而不是問題。

可以「通過手」抓取您的輸入數據,或者使用活動記錄CI圖書館這樣做(http://ellislab.com/codeigniter/user_guide/database/active_record.html#insert

如果CI有ORM實施,作業應該比這個更容易。

只需創建一個控制器並檢查其上(或模型內部)的輸入數據,並創建一個模型以將必要的清理,數據驗證和正確的數據分配應用於一個或多個模式表並進行設置。

編輯:比你展示的例子更優雅的是ORM,但我不確定CI是否已經實現了。

+0

檢查我的更新。 :) – 2009-12-17 21:34:13

+0

是的,CI有一個ORM庫。 – 2009-12-19 21:57:43

0

這取決於數據的結構,但最好的辦法是製作一個調查表,並將每個問題的答案存儲在不同的列中。

從MVC的角度來看,您將在視圖中擁有一個表單,讓控制器在提交時將模型中的數據傳遞給模型,然後讓模型清理數據並將其插入數據庫。

+0

你能否詳細說明一下?你是什​​麼意思「清理數據」? :) – 2009-12-17 15:04:07

+0

使用像mysql_real_escape_string()等函數來確保數據是安全的。絕不信任用戶輸入。 – GSto 2009-12-17 15:19:48

+0

我不確定我在追隨。這與驗證同義嗎? – 2009-12-17 15:51:28