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 :

[Tableaux] Comparaison de valeurs dans deux lignes d'un tableau indexé par php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 27
    Par défaut [Tableaux] Comparaison de valeurs dans deux lignes d'un tableau indexé par php
    Bonjour
    Auparavant merci à ceux qui m'ont aidé dans mon précédent post. Je souhaiterais connaitre un script qui me permettrait de comparer deux lignes d'un tableau indexé. Je n'arrive pas à trouver la syntaxe pour définir la variable temporaire ex tableau[indice].valeur champ, tableau[indice-1].valeur champ Ledit tableau a déja été créé à partir d'une table MySql avec mysql_fetch_assoc. Peux t'on décemment utiliser l'indice créé avec cette fonction pour comparer deux lignes d'un tableau? Merci d'avance de votre réponse.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    la fonction "mysql_fetch_assoc" utilise le nom du champ comme clé.
    après ça dépend de la façon tu construit ton tableau

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 27
    Par défaut
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $result = mysql_query($sql);
    $tableau_id = 0 ;
    while ($row = mysql_fetch_assoc($result)) {
       echo $tableau_id++ ;   
       echo $row["champ a comparer"];
    }
    L'index est créé avec une valeur incrémentée par tableau_id++ ;
    A++;

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 27
    Par défaut
    Ceci donne un index pour chaque enregistrement dans le tableau

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    je ne vois pas ce que tu cherches à faire, est ce que tu pourrais nous donner plus de détails : à quoi correspondent les données ? tu veux comparer quoi ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 27
    Par défaut
    Bonjour
    La table MySql comporte des données classées groupées selon un critère la requête sql d'interrogation peut avoir une clause "group by"
    Au résultat devient un tableau restitué avec un index pour une ligne créée pour chaque enregistrement de la table
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $result = mysql_query($sql); 
    $tableau_id = 0 ; 
    while ($row = mysql_fetch_assoc($result)) 
    {  
    echo $tableau_id++ ; 
    echo $row["champ a comparer"]; 
    }
    Le tableau devient en qulque sorte si l'on faisait un retour à la ligne à chaque enregistrement, pour plus de lisibilité

    Tableau
    ########################################
    index valeur des données
    0 enregistrement1 avec valeur du critère=A
    1 enregistrement1 avec valeur du critère=A
    2 enregistrement1 avec valeur du critère=A
    3 enregistrement1 avec valeur du critère=A
    4 enregistrement1 avec valeur du critère=A
    5 enregistrement1 avec valeur du critère=A
    6 enregistrement1 avec valeur du critère=A
    7 enregistrement1 avec valeur du critère=B
    8 enregistrement1 avec valeur du critère=B
    #########################################
    Ce que je cherche à faire c'est ceci pendant la boucle while
    si enregistrement à l'indice [ i ] <> enregistrement à l'indice [ i - 1 ]
    en fait comparer la valeur de l'enregistrement courant pendant le parcours du tableau avec le précédent en cas de divergence (si
    par exemple valeur du critère [à l'indice 7]<>valeur du critère [à l'indice 6] donc "A"<>"B", on affiche une ligne et un retour à la ligne
    alors afficher "<hr><br> "
    sinon on continue a afficher les données normalement avec le script du haut

    Je me demande alors s'il faut une boucle for imbriquée utilisant l'index créé avec $tableau_id (c'est d'ailleurs la finalité de cette variable) ou si simplement while suffit.
    Je pense qu'il faudra deux variables temporaires pour comparer les valeurs enregistrement à l'indice [ i ] et enregistrement à l'indice [ i - 1 ].
    J'ai aussi un script avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     while($array=mysql_fetch_array($result))
    Est -ce mieux?
    Merci d'avance.

Discussions similaires

  1. [XL-2010] Comparer des valeurs dans deux colonnes, repérer des lignes, pourcentage
    Par vwtroudy dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/06/2015, 09h38
  2. Réponses: 2
    Dernier message: 20/10/2008, 09h24
  3. Réponses: 4
    Dernier message: 23/04/2008, 17h03
  4. Comparaison de valeurs dans deux Hash
    Par KuK dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2008, 22h41
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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