2012-02-16 38 views
0

用戶點擊'查看用戶',PHP邏輯使用MySQL SELECT獲取數據,將數據傳遞給table_view,然後顯示所有'用戶'系統。如何爲mvc crud網站創建一個動態更新功能

每個錶行都有一個「編輯」超鏈接,它提取一個數組或表單元素,這個表單元素的數組被傳遞給一個'Form_Generator',它爲表單數組生成html,表單的值也被添加in。

因此,用戶面對的表單元素(有時20個元素大)與表單元素值匹配數據庫中的值。

我的問題是...

我該如何使更新動態?如果不是動態的,我該如何讓它變得更好?

我現在的方法是如此...


當用戶eddited他們提交表單,然後驗證值。

可能我補充說,一種形式可以在關係數據庫中

我可以寫一個更新語句像每個元素由3個或多個表:

if (isset ($user_input["firstname"])) 
{ 
    $this -> _database -> update("UPDATE users SET firstname = '{$user_input["firstname"]}' WHERE user_id = $user_id"); 
    $this -> _database -> execute(); 
} 
etc etc for ALL fields 

或者我可以用一個帶JOINS的UPDATE語句一次更新多個字段。像這樣:

$this-> _database -> custom("UPDATE fitters AS f INNER JOIN user_types AS ut ON f.fitter_id = ut.type_id INNER JOIN users AS u ON u.user_id = ut.user_id SET f.title = '{$user_input["title"]}', f.firstname = '{$user_input["firstname"]}', f.surname = '{$user_input["surname"]}', u.email_address = '{$user_input["email_address"]}' WHERE u.user_id = {$user_input["user_id"]}"); 

有沒有人知道更好的方法來做到這一點?

您是如何處理更新項目中的數據庫信息的?

回答

1

對應用程序使用框架使生活變得更加簡單。我個人喜歡使用CodeIgniter。 當使用像CodeIgniter這樣的框架時,數據庫操作變得更容易。這裏是它怎麼可能是一個例子:

public static function editProfile($data) 
{ 
    $user = User::find_by_pk($data['id']); 

    if (isset($data['username'])) { 

     $user->username = $data['username']; 
    } 

    if (isset($data['password'])) { 

     $user->hashed_password = User::hash_password($data['password']); 
    } 

    $user->save(); 
} 

http://codeigniter.com/

這是偉大的網站的教程,讓你開始關於這個問題的!

http://heybigname.com/2009/09/04/developing-a-website-with-code-igniter-part-1-configuration/

+0

在你的例子中你有一個用戶類。你是否建議我應該爲每個表格視圖創建一個類?說一個用戶類?和所有其他表的類? – 2012-02-16 10:07:31

+0

準確地說,表格視圖意味着什麼?他們是用戶的屬性還是..你能舉一些例子嗎? – 2012-02-16 11:15:44

+0

那麼說我有一個'地址'表和'用戶'表。每個用戶都有一個對「地址」表中主鍵的外鍵引用。當用戶查看「用戶」時,他們會希望看到「用戶」信息和「地址」信息,以便查看。 (以我的方式命名的東西) – 2012-02-16 13:13:14