如何为mvc crud网站创建动态更新功能


how to create a dynamic update function for a mvc crud website

用户单击"查看用户",php逻辑使用MySQL SELECT获取数据,将数据传递到table_View,然后显示系统上的所有"用户"。

每个表行都有一个"编辑"超链接,该超链接获取一个数组或多个表单元素,该表单元素数组被传递给"form_Generator",该生成器为表单数组生成html,表单的值也被添加到中

因此,用户所面对的表单(有时是20个大元素)的表单元素值与数据库中的值相匹配。

我的问题是

如何使更新动态?如果不是动态的,我该如何做得更好?

我目前的方法是…


当用户编辑了值后,他们会提交表单,然后进行验证。

我可以补充一下,一个表单可能由关系数据库中的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

或者我可以使用带有JOIN的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"]}");

有人知道更好的方法吗?

您是如何在项目中处理更新数据库信息的?

使用应用程序框架会让生活变得更轻松。我个人喜欢使用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/