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 :

Parcourir un tableau et comparer 2 enregistrements suite à une requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut Parcourir un tableau et comparer 2 enregistrements suite à une requête
    Bonjour,

    Je cherche à comparer les modifications entre 2 enregistrements MySQL.



    J'ai une table 'check_old' où je vais chercher les enregistrements comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $req = mysql_query( "SELECT * FROM check_old WHERE server =  '$hostname'
    ORDER BY id DESC  LIMIT 0 , 2" );
    A l'issue de cette requête, j'obtiens donc les 2 enregistrements les plus récents lié au serveur recherché.


    Voici la structure de la table check_old :

    ID | SERVER | CH1 | CH2 | CH3 | CH4


    Voici un exemple de résultat :

    12 | SERVER1 | YES | YES | NO | YES
    10 | SERVER1 | NO | YES| YES| NO

    J'aimerais faire quelque chose de très simple :

    Juste afficher les résultats où il y a eu des modifs :

    EX : SERVER 1 , Modification : CH1 (NO) ; CH3 (YES) ; CH4 (NO)

    Quelle est la meilleure méthode à utiliser pour réaliser cette tâche ?

    merci de votre aide :=)

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    La version bourrin consiste à récupérer tes deux enregistrements dans des tableaux, à boucler sur les champs à comparer et pour chaque champ, comparer les valeurs des tableaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $champsAComparer = array('CH1', 'CH2', 'CH3', 'CH4');
    $champsDifferents = array();
    foreach ($champsAComparer as $champ) {
    	if ($tab1[$champ] != $tab2[$champ]) {
    		$champsDifferents[$champ] = $tab2[$champ];
    	}
    }
    if (!empty($champsDifferents)) {
    	echo 'Modification : ';
    	foreach ($champsDifferents as $champ => $nouvelleValeur){
    		echo $champ.' ('.$nouvelleValeur.') ';
    	}
    } else {
    	echo 'Pas de modification';
    }
    Après il ya sans doute d'autres façons plus optimisées de faire.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/10/2013, 22h47
  2. [SQL Server 2008] Comparer deux enregistrements d'une meme table
    Par poupou63 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/06/2011, 13h37
  3. Exclure des enregistrements d'une requête
    Par beegees dans le forum Access
    Réponses: 2
    Dernier message: 20/06/2005, 13h01
  4. Comparer le résultat d'une requête
    Par VirginieGE dans le forum ASP
    Réponses: 3
    Dernier message: 10/08/2004, 15h15
  5. Nombre Total d'Enregistrements d'une Requête d'Union
    Par sqlnet dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/12/2003, 17h12

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