IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Db PHP Discussion :

Ajouter des lignes dans un rowset ? [ZF 1.9]


Sujet :

Zend_Db PHP

  1. #1
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut Ajouter des lignes dans un rowset ?
    Bonjour,

    Je souhaite gérer les profils utilisateurs et j'ai trouvé intéressante l'idée d'un livre sur le sujet, à savoir stocker les profils non pas sur une grande ligne avec toutes les colonnes possibles et potentiellement un grand nombre de colonnes vides, mais plutôt gérer comme ceci :

    userId key value (avec clé primaire (userId, key))

    Ainsi si l'utilisateur rentre son prénom, cela va créer une ligne :

    userId prenom monPrenom

    J'ai donc configuré mes classes afin, qu'à partir d'un utilisateur, je puisse récupérer un rowset contenant toutes les lignes du profil avec userId celui de l'utilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $userProfile = $user->getUserProfile ()
    Le soucis, c'est que j'aimerais pouvoir passer des données à cette classe (j'ai créé une classe qui hérite de Zend_Db_Table_Rowset_Abstract), et mettre à jour le profil, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $userProfile->setData ($dataFromForm);
    $userProfile->save ();
    Concrètement, si une des clés du tableau existe déjà dans une des lignes et que la valeur est différente, on met à jour la ligne en question (Zend_Db_Table_Row), autrement on ne fait rien. Si une ligne existe avec comme clé un élément du tableau dont la valeur avec cette clé est vide, cela signifie que l'utilisateur a supprimé cette information de son profil et donc on supprime la ligne. Enfin, si une clé existe dans les valeurs dont il n'existe pas de ligne, on créé une nouvelle ligne.

    Les deux premiers cas ne pose pas de problème, mais je n'arrive pas à trouver un moyen propre pour ajouter des lignes dans un rowset. Je peux effectivement faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $this->_rows[] = $maNouvelleLigne;
    $this->_count++;
    Mais je doute que cette solution soit... très propre, touchant directement aux variables membres de la classe de base.

    Y a t-il un moyen propre de faire ce que je souhaite ? Ou alors faut-il mieux revenir à une représentation plus standard des profils utilistaeurs ?

    Merci

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    au lieu d'associer le "RowSet" à l'instance Profile, associe plutôt le tableau de "Row" dans cette instance
    comme ça l'ajout d'une nouvelle valeur correspond à l'a création d'une nouvelle case du tableau dans l'objet Profile
    GNAP !

  3. #3
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Merci, c'est effectivement plus simple .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajouter des lignes dans un tableau dynamique
    Par yviii dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/06/2007, 12h15
  2. ajouter des lignes dans un tableau dynamique
    Par yviii dans le forum Windows
    Réponses: 1
    Dernier message: 20/06/2007, 11h28
  3. Ajouter des lignes dans un DataGridView au moment du design?
    Par ferradji dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/03/2007, 14h05
  4. Ajouter des lignes dans un fichier *.log
    Par Fred2209 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/12/2006, 15h15
  5. Réponses: 14
    Dernier message: 22/09/2005, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo