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

Langage PHP Discussion :

Mise à jour base de données, comparer avant - après [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Mise à jour base de données, comparer avant - après
    Bjour,
    J'ai un souci, dans le monde "mainframe", j'avais developpé une logique pour comparer la situation DB avant et après traitement, les comparer et décider automatiquement du traitement à effectuer sur ces DBs.

    J'essaye d'appliquer à PHP mais... j'ai commencé et voici mon souci.
    Je n'affiche pas tous les champs de la table que je veux mettre à jour!
    J'ai donc une liste de champs affiché sur mon écran:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $fields = array ( 	 "email" 		,		// 1
          	          	 "civilite" 	,
          	      		 "age" 			,
          	      		 "nom" 			,
          	      		 "prenom" 		,		// 5
    etc					
                             "connu"              	// 15
    	      	    ) ;
    Je transforme ce tableau associatif ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		$this->flip = array_flip($fields) ;
    Ce qui me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Flip :
    Array ( [email] => 0 [civilite] => 1 [age] => 2 [nom] => 3 [prenom] => 4 [question] => 5 [reponse] => 6 [numero] => 7 [boite] => 8 [voie] => 9 [nomvoie] => 10 [postcode] => 11 [ville] => 12 [pays] => 13 [connu] => 14
    Je fais un merge avec une définition complète et j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Merge :
    Array ( [email] => jecrapahute@gmail.com [civilite] => 3 [age] => 6 [nom] => Mathot [prenom] => Etienne [question] => 3 [reponse] => Victor [numero] => 1693 [boite] => [voie] => 6 [nomvoie] => dAulas [postcode] => 30120 [ville] => LE VIGAN [pays] => 1 [connu] => 1 [password] => 10f1858e02f14c7b5c70e89e020b9ab4 [rang] => 3 [backlink] => [inv_date] => 0000-00-00 [inv_cfr] => [sub_date] => 2010-07-31 13:38:53 [sub_cfr] => [reg_date] => 0000-00-00 [activ_date] => [activ_code] => oui )
    Mais les champs en gras sont de trop et je ne sais comment les éliminer !

    J'ai essayé array_diff, array_intersect(_assoc) mais sans résultat.

    Quelqu'un peut'il me montrer l'astuce à aplliquer ?
    Esteban

  2. #2
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Salut,
    tu peux faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    unset($flip['password'])

  3. #3
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Ok - Flip
    Ok, je peux les retirer un à un mais je souhaite faire ultérieurement une classe de cette logique et donc, pas de cas particulier.
    N'y a t(il pas une fonction array_quelconque comme merge mais qui ferait l'inverse, en fait j'ai pensé faire un array_intersect du résultat final avec le merge pour n'avoir que les colonnes de l'écran, et bien non....

    Merci quand même
    Esteban

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Salut,

    les fonctions applicables aux tableaux sont toutes définies ici

    Comment sais tu quelles clés tu dois supprimer ? Sont-elles déjà listées elles mêmes dans un autre tableau ?

  5. #5
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Màj DB BEFORE - AFER Image
    Joël,

    Si ce n'est toi, désolé mais si c'est toi, merci de suivre mes posts et je t'ai envoyé un message sur ta boite perso...

    Bon, j'ai trouvé une fonction qui me permettait d'avancer, c'est bien.... mais pas encore au bout même si je vois la fin du tunnel.

    Merci encore
    Esteban

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Oui c'est bien moi mais pour la 10ieme fois je m'appelle pas Joel

  7. #7
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Dsl Olivier
    Désolé Olivier, je ne le ferais plus !
    Esteban

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

Discussions similaires

  1. [MySQL] Mise à jour base de données
    Par edenfusion dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/11/2007, 11h15
  2. Réponses: 3
    Dernier message: 31/08/2007, 16h11
  3. Mise à jour base des données modifiées dans le DataGridView
    Par dolyne.b dans le forum Windows Forms
    Réponses: 9
    Dernier message: 26/04/2007, 15h58
  4. [Base de Registres]Comparer Avant-Aprés
    Par Jean_Benoit dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 21/06/2006, 20h14
  5. [SQL server][TDbRichEdit] Mise à jours base de donnée
    Par Revan012 dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/06/2004, 12h12

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