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

PHP & Base de données Discussion :

Comparaison entre deux requêtes PDO (postgres)


Sujet :

PHP & Base de données

  1. #1
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 370
    Points : 251
    Points
    251
    Par défaut Comparaison entre deux requêtes PDO (postgres)
    Bonjour,

    J'ai une application avec une base de donnée A0.
    J'effectue une action qui a pour but de purger la base de certain code. Une fois cette action réalisée, je sauvegarde de nouveau la base pour obtenir la base A1.

    Je sais afficher le résultat d'une requette dans un tabeau avec PHP. Ce dont j'ai besoin est de pouvoir comparer le résultat de cette requette dans les deux bases (A0, avant suppression de code et A1 apres suppression de code). Je veux savoir ce qui a été supprimé et ce qui n'a pas été supprimé. Comment faire?

    Il faut tout de même savoir que la requette est complexe dans le sens ou il y a des jointures avec différentes table. Ce n'est pas juste le parcours d'une liste de code qui a été nettoyé.

    Le résultat peut se présenté de la manière suivante:
    Liste complete des codes avant supression avec une information supplémentaire de suppression ou non
    ex:
    groupe plan comptable entite code supression?
    avance hospitaux paris aaa/00102/produit01 non
    avance hospitaux paris bbb/00102/produit01 oui
    recette hospitaux paris aab/00102/produit04 oui

    PS: Je ne suis pas encore assez familiarisé avec le développement WEB. Je ne fais que débuter, c'est pour ca que j'ai besoin de votre aide.

    Merci
    Vandman

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour,
    En dehors de PHP, il existe des outils qui permettent de réaliser cela.
    Sinon en PDO, je dirais que tu crées deux instance de db, deux requêtes que tu merges dans un seul tableau et tu fais le diff.

  3. #3
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 370
    Points : 251
    Points
    251
    Par défaut
    Bonjour,
    Sinon en PDO, je dirais que tu crées deux instance de db, deux requêtes que tu merges dans un seul tableau et tu fais le diff
    Je sais créer deux instance de db, deux requettes.
    Par contre je ne sais pas comment les "merger" dans un seul tableau et faire la différence?
    Surtout que la différence doit me donner les codes supprimés ou non?

    Cordialement,
    Vandman

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    ici FAQ

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    array_diff()

    Citation Envoyé par vandman Voir le message
    ...Je ne suis pas encore assez familiarisé avec le développement WEB. Je ne fais que débuter...
    Il va donc falloir être PLUS précis sur la "mécanique" et l'objectif de la manoeuvre.
    Car au lieu d'une usine à gaz, il existe peut-être des solutions et/ou une METHODOLOGIE plus adaptées.

  6. #6
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 370
    Points : 251
    Points
    251
    Par défaut
    Bonjour,

    Le travail que je dois mener intervient dans le cadre d'un travail de fin de gestion.
    J'ai un logiciel comptable dans lequel des codes ont été paramétrés pour que les entités les utilisent. Avant de lancer les modifications sur les parametres des codes dans les entités, nous allons lancer un nettoyage de la base de donnée des dit codes. Ceux qui n'ont jamais été utilisés, seront supprimés. Le problème vient des entité récemment paramétrées qui éventuellement n'auront pas encore pu utiliser tous les codes disponibles. Il faut que je puisse identifier ces codes. C'est pour ça que j'ai ma base A0 qui correspond à ma base avant nettoyage et ma base A1 qui correspondra à la même base nettoyée.
    Je veux comparer la base A0 et A1 pour savoir quels ont été les codes supprimé? Ceci pour reconfigurer les entités récemment déployés et qui n'auraient pas encore eu le temps d'utiliser ces codes. La sélection des entités se fera de manière arbitraire. C'est pour ca que j'ai besoin d'afficher les anciennes données et de savoir lesquelles ont été supprimées.

    Il s'agit d'un logiciel comptable en mode web, propriétaire. Je peux faire des copie de base de données. Il me semble qu'il n'est pas possible de faire des jointures sur des bases de données distinctes. De plus, nous serons plusieurs à travailler sur le sujet en même temps. Nous aurons tous la même information. Les autres intervenant ne connaissent rien à l'informatique et serons pilotés dans le travail d'identification et de paramétrage. Voila pourquoi j'ai pensé faire ce travail en mode Web.
    J'ai choisi de manière arbitraire de faire cela en php car il me semble que php peu traiter des données (via les tableau) et se connecter et lancer des requettes sur une ou plusieurs base de données...
    Comme je l'ai dit précédemment, je débute dans le développement Web. Je ne voulait pas commencer avec Java, Jison et autre sachant que je ne maîtrise pas encore. Je commence petit avec html (pour l'instant, c'est pas trop dure), css (idem), et php (plus complexe je trouve, c'est juste une histoire d'habitude).

    J'espère que le processus est assez clair?

    Cordialement,
    Vandman

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour,
    Citation Envoyé par vandman Voir le message
    Il me semble qu'il n'est pas possible de faire des jointures sur des bases de données distinctes.
    Vous travaillez avec la meilleur base de données open source, alors bien sur que oui il est possible de faire des jointures, mais i y a encore plus facile.
    Dans PostgreSQL, nous avons la notion de "schema", par défaut, et j'imagine que c'est ce que vous faites, il y a le "schema public", rien ne vous empêche dés lors de créer des schéma différentes contenant les même tables mais avec des données différentes, exactement ce que vous faites.

    Vous auriez alors un db disons 'comptable' définit comme ceci :

    comptable.A0
    comptable.A1

    ce qui permettrais de faire des requêtes sur vos sets de données avec un "UNION" par exemple.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    select A0.groupe,A0.entite,A0.supression from comptable
     
    UNION ALL
     
    select A1.groupe,A1.entite,A1.supression from comptable

    Pour avoir plus facile, vous pourriez utiliser les Common Table Expressions, qui vous permettrais de trier comme bon vous sembles les données de cette requête : cfr la doc PostgreSQL

Discussions similaires

  1. Addition entre deux requêtes
    Par tazmania dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/10/2006, 17h17
  2. Différence entre deux requêtes
    Par viny dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/10/2006, 16h28
  3. Comparaison entre deux dates dans une table
    Par Biskot75 dans le forum Access
    Réponses: 6
    Dernier message: 19/09/2006, 11h16
  4. Réponses: 6
    Dernier message: 18/04/2006, 13h11
  5. Comparaison entre deux champs de deux tables différentes
    Par liam81150 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/09/2005, 20h53

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