2012-02-16 2 views
0

Un utilisateur clique sur 'View Users' et la logique php récupère les données à l'aide de MySQL SELECT, transmet les données à table_view, puis affiche tous les 'Users' sur le système. Chaque ligne de table a un lien hypertexte 'edit' qui récupère un tableau ou des éléments de formulaire, ce tableau d'éléments de formulaire est passé à un 'Form_Generator' qui génère le html pour le tableau de formulaire, les valeurs pour le formulaire sont également ajoutées Donc, l'utilisateur est confronté à un formulaire (parfois 20 éléments de grande taille) avec les valeurs de l'élément de formulaire correspondant aux valeurs de la base de données.comment créer une fonction de mise à jour dynamique pour un site Web mvc crud

MA QUESTION EST ...

Comment puis-je faire la mise à jour dynamique? Si ce n'est pas dynamique, comment puis-je le rendre meilleur?

Ma méthode actuelle est si ...


Lorsque l'utilisateur a eddited les valeurs qu'ils soumettent le formulaire, puis validation.

que je pourrais ajouter qu'une forme peut consister en 3 ou plusieurs tables dans la base de données relationnelle

Je pourrais écrire une déclaration de mise à jour pour chaque élément comme:

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 

ou je pourrais utiliser un UPDATE instruction avec JOINS pour mettre à jour plusieurs champs à la fois. comme si:

$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"]}"); 

Quelqu'un sait d'une meilleure façon de le faire?

Comment avez-vous abordé la mise à jour des informations de base de données dans vos projets?

Répondre

1

L'utilisation d'une structure pour les applications facilite grandement la vie. Personnellement, j'aime travailler avec CodeIgniter. Lorsque vous utilisez un framework comme la base de données CodeIgniter, les opérations deviennent beaucoup plus faciles. Voici un exemple de la façon dont il pourrait être:

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/

Ceci est grand site avec des tutoriels pour vous aider à démarrer sur le sujet!

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

+0

Dans votre exemple, vous avez une classe User. Suggérez-vous que je devrais avoir un cours pour chaque vue de la table? dire une classe d'utilisateur? et des classes pour toutes les autres tables? –

+0

Que voulez-vous dire exactement par vues de table? Sont-ils les attributs d'un utilisateur ou .. pourriez-vous donner quelques exemples? –

+0

Eh bien, disons que j'ai une table 'addresses' et une table 'users'. Chaque utilisateur a une référence de clé étrangère à une clé primaire dans la table 'adresses'. Lorsque l'utilisateur voit cet 'utilisateur', il voudra voir les informations 'utilisateur' ET les informations 'adresse' pour que ce soit une vue. (dans ma façon de nommer les choses) –

Questions connexes