2012-02-16 7 views
0

ユーザは 'View Users'をクリックし、PHPロジックはMySQL SELECTを使用してデータをフェッチし、そのデータをtable_viewに渡してから、すべての 'Users'をシステム。mvc crudウェブサイトの動的更新機能を作成する方法

各テーブル行に配列またはフォーム要素をフェッチする '編集'ハイパーリンクがあり、フォーム要素のこの配列はフォーム配列のhtmlを生成する 'Form_Generator'に渡され、フォームの値も追加されます

したがって、ユーザーはフォーム要素の値がデータベースの値と一致するようなフォーム(たいていは20要素)に直面します。

私の質問は...

更新を動的にするにはどうすればよいですか?動的でない場合は、どうすればよいでしょうか?ユーザーは、彼らは形、そして検証を提出した値をedditedた私の現在のメソッドがそうである

...


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 

か、私が使用することができます

は、私は1つのフォームは、私のような各要素の更新文を書くことができ

リレーショナルデータベースの3つの以上のテーブルから構成されていることを追加される場合があります複数のフィールドを一度に更新するには、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

この例では、Userクラスがあります。各テーブルビューにクラスを用意することをお勧めしますか?ユーザークラスは?他のすべてのテーブルのクラス? –

+0

テーブルビューが正確にはどういう意味ですか?彼らはユーザーの属性ですか、いくつか例を挙げることができますか? –

+0

まあ、私は 'アドレス'テーブルと 'ユーザー'テーブルがあると言う。各ユーザーは、 'addresses'テーブルの主キーへの外部キー参照を持ちます。ユーザーが 'user'を見ると、 'user'情報と 'address'情報が見えるようになります。 (物事を言い表す私の方法で) –