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] Comparer 2 valeurs dans un tableau dynamique


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut [Tableaux] Comparer 2 valeurs dans un tableau dynamique
    Bonjour à tous,

    Je souhaiterai faire une comparaison entre deux enregistrements dans un tableau dynamique. C'est à dire comparer une valeur à celle de l'enregistrement précédent dans la boucle while.

    Le but étant de ne pas afficher un texte si la valeur est identique pour ne pas surcharger mon tableau.

    Est ce que quelqu'un aurait une idée ?

    Merci d'avance !

  2. #2
    Membre actif Avatar de pimpmyride
    Inscrit en
    Décembre 2005
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 321
    Points : 207
    Points
    207
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $premier = ""
     
     
    foreach($tab as $val){
    if($premier == "") $premier = $val;
    elseif{
    // et la tu compares $val avec l'enregistrement precedent : $premier
    $premier = $var; // pour la prochaine comparaison.
    }
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Merci pour ta réponse, mais je dois dire que je ne comprends pas tout (je suis un grand débutant en PHP, sic...)

    Est ce que tu peux me donner quelques explications supplémentaires sur les variables de ton code ?

    Merci d'avance !

  4. #4
    Membre actif Avatar de pimpmyride
    Inscrit en
    Décembre 2005
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 321
    Points : 207
    Points
    207
    Par défaut
    alors le foreach c'est pour parcourir une variable tableau
    $val prend la valeur correspondant à l'index du tableau
    $premier stock la valeur precedente

    en traduction ca donne ce ci :

    if($premier == "") $premier = $val;
    si $premier est egale a une chaine de caractere vide alors j'affecte à $premier la premiere valeur du tableau, donc $val.

    elseif{
    sinon (signifie que $premier contient une chaine de caractere non vide) je compare ma valeur precedente ($premier) avec la valeur actuelle ($val)

    $premier = $var;
    j'affecte à $premier la valeur actuelle pour la comparaison à la prochaine itération

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Merci pour tes explications, maintenant j'y vois un peu plus clair !

    Mais il reste encore quelques zones d'ombre, comme pour la valeur $tab, je ne sais pas trop comment faire vu que mon tableau dynamique est fait à l'aide de dreamweaver, un truc dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php 
    $i = '';
    do { ?>
    <table width="720" border="0" cellspacing="0" cellpadding="0">
     <tr>
        <td width="100" class="Style8"><?php echo $row_recordset1['code_appel']; ?></td>
        <td width="420" class="Style8"><div align="left"><?php echo $row_recordset1['champ1']; ?></div></td>
         <td width="50" class="Style8"><div align="center"><?php echo $row_recordset1['champ2']; ?></div></td>
         <td width="50" class="Style8"><div align="center"><?php echo $row_recordset1['champ3']; ?></div></td>
         <td width="50" class="Style8"><div align="center"><?php echo $row_recordset1['champ4']; ?></div></td>
         <?php } while ($row_recordset1 = mysql_fetch_assoc($recordset1)); ?>
    Et en fait, je souhaiterais faire le test sur la colonne du champ3.

    Merci encore !

  6. #6
    Membre actif Avatar de pimpmyride
    Inscrit en
    Décembre 2005
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 321
    Points : 207
    Points
    207
    Par défaut
    pfoulala deja ton code c'est le fouilli je sais pas si c'est toi ou dreamweaver mais alors y a pas mal de truc inutile, epurons deja le code :

    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
    16
    17
    18
     
    <table width="720" border="0" cellspacing="0" cellpadding="0">
    <?php 
    $i = '';
     
    while ($res = mysql_fetch_assoc($recordset1)){
    ?>
     <tr>
        <td width="100" class="Style8"><?=$res['code_appel']?></td>
        <td width="420" class="Style8"><?=$res['champ1']?></td>
         <td width="50" class="Style8"><?=$res['champ2']?></td>
         <td width="50" class="Style8"><?=$res['champ3']?></td>
         <td width="50" class="Style8"><?=$res['champ4']?></td>
    </tr>
    <?php
    }
    ?>
    </table>
    ton div est inutile, remplace dans ta classe Style8 par "text-align:left;" ca aura le meme effet

    ne donne pas le meme nom de variable à la variable qui contient le resultat du query ($row_recordset1) et la variable qui stocke les informations a afficher ($res)

    ensuite <?php echo $res ['champ4']; ?> peut s'ecrire : <?=$res ['champ4']?>


    Les quelques détails de programmation que je viens de te donner seront confirmé par les autres membres du forum je pense.

    Maintenant on passe à ta question. Il suffit de rajouter une simple structure de controle pour afficher ou pas le texte.


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <table width="720" border="0" cellspacing="0" cellpadding="0">
    <?php 
    $i = '';
    $precedent = "";
     
    while ($res = mysql_fetch_assoc($recordset1)){
    ?>
     <tr>
        <td width="100" class="Style8"><?=$res['code_appel']?></td>
        <td width="420" class="Style8"><?=$res['champ1']?></td>
         <td width="50" class="Style8"><?=$res['champ2']?></td>
         <td width="50" class="Style8">
    <?
    if($premier != $res['champ3']){ // != signifie different, c'est l'inverse de ==
    echo $res['champ3'];
    $premier = $res['champ3'];
    }
    ?>
    </td>
         <td width="50" class="Style8"><?=$res['champ4']?></td>
    </tr>
    <?php
    }
    ?>
     </table>
    Test dans ton script et dit moi si ca fonctionne

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Ca marche parfaitement, un grand merci pour ton aide et surtout tes explications !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/12/2009, 15h02
  2. [Tableaux] Comparer des valeurs dans un tableau
    Par Dirty Harry dans le forum Langage
    Réponses: 13
    Dernier message: 03/02/2007, 00h52
  3. [Tableaux] Problème de valeur dans un tableau (array)
    Par Flushovsky dans le forum Langage
    Réponses: 15
    Dernier message: 24/03/2006, 13h56
  4. [Tableaux] Extraction de valeur dans un tableau
    Par pirouette_07 dans le forum Langage
    Réponses: 6
    Dernier message: 21/10/2005, 17h54
  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