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 :

Question sur tableau


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut Question sur tableau
    Bonjour, pour l'instant j'affiche un tableau à l'aide de ce 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
    19
    20
    21
    22
    23
    24
    25
     
    // debut du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres 
            echo '<tr>';
    		echo '<td bgcolor="#669999"><b><u>Liaison</u></b></td>';
           // echo '<td bgcolor="#669999"><b><u>Type de liaison</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>Site A</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>Site B</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>PCG</u></b></td>' ;
    	    echo '<td bgcolor="#669999"><b><u>Boucle ORS</u></b></td>' ;
    	    echo '<td bgcolor="#669999"><b><u>Routeur/Interface</u></b></td>' ;
    		echo '<td bgcolor="#669999"><b><u>Total</u></b></td>' ;
    		echo '</tr>'."\n";
        // lecture et affichage des résultats    
        while($row = mysql_fetch_array($resultliai)) {
    		      echo '<tr>';
          echo '<td bgcolor="#CCCCCC">'.$row["Col19"].'</td>';
          //echo '<td bgcolor="#CCCCCC">'.$row["TypeSup1"].'</td>';
    	  echo '<td bgcolor="#CCCCCC">'.$row["SiteA"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["SiteB"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["PCG"].'</td>';
    	  echo '<td bgcolor="#CCCCCC">'.$row["BoucleORS"].'</td>';
    	  echo '<td bgcolor="#CCCCCC">'.$row["Routeur_Interface"].'</td>';
    	  echo '<td bgcolor="#CCCCCC">'.$row["Total"].'</td>';
    Mais cela me donne un tableau avec 2 couleurs, une pour les titres des colonnes et une autre pour le reste.

    J'aimerais mettre deux couleurs pour les cellules contenant des infos et cela en fonction du contenu de la première colonne.

    Exemple :
    col1
    1 - couleur1
    2 - couleur2
    2 - couleur2
    3 - couleur1
    3 - couleur1
    4 - couleur2
    5 - couleur1
    5 - couleur1

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut
    Salut,

    et si tu fais un modulo sur ta col1 ?
    => si l'id est impaire, couleur1, sinon couleur2

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Doksuri Voir le message
    et si tu fais un modulo sur ta col1 ?
    => si l'id est impaire, couleur1, sinon couleur2
    Sauf que je ne veux pas mettre la couleur une fois sur deux, mais toutes les 2 cases en moyenne. Sauf que parfois, il y a une ligne qui est isolée. Bref comme dans l'exemple !

  4. #4
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut
    bah oui... c'est bien ce que je t'ai conseille...
    faire un modulo sur tes ids...
    1,2,2,3,3,4,5,5, etc.....
    si l'id est impare, couleur1 sinon, couleur2

    si tu sais que tes ids ne seront jamais plus de 2 fois ("mais toutes les 2 cases en moyenne") ca s'arrete la, sinon, tu ajout un compteur que tu reinitialise a chaque changement d'id.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Doksuri Voir le message
    bah oui... c'est bien ce que je t'ai conseille...
    faire un modulo sur tes ids...
    1,2,2,3,3,4,5,5, etc.....
    si l'id est impare, couleur1 sinon, couleur2
    Je me suis mal exprimé, la colonne 1 n'est pas une colonne d'id mais se sont bien des valeurs régulièrement égales deux à deux mais de temps en temps s'y glisse une valeur seule.

    J'ai bien une colonne id dans ma base d'origine mais elle s'incrémente automatiquement, et il y a tellement de données que c'est quasiment inutilisable.

  6. #6
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut
    aaaah d'accord... =)

    faire le modulo sur $row["Col1"] ?

    => a codition que tes valeures s'enchainent correctement.
    exemple : 1,2,2,4,5,5
    donnera couleur1,couleur2,couleur2,couleur2,couleur1,couleur1,
    du coup, il n'y aurait pas de changement de couleur entre la valeur 2 et 4

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Le problème c'est que se sont des valeurs du genre :

    20231101
    02905
    02905
    20207
    20207
    02359
    0010HVE0
    ...

  8. #8
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut
    .... quand tu nous auras expose toutes les contraites xD

    du coup, ce que tu peux faire, c'est un compteur qui s'incremente uniquement quand la valeur en cours est differente de la valeur precedente
    (et tu fais ton modulo sur ton compteur)

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Citation Envoyé par Doksuri Voir le message
    .... quand tu nous auras expose toutes les contraites xD

    du coup, ce que tu peux faire, c'est un compteur qui s'incremente uniquement quand la valeur en cours est differente de la valeur precedente
    (et tu fais ton modulo sur ton compteur)
    Euh, c'est se compliquer la vie quand même.
    S'il suit à chaque itération la comparaison de l'id courant avec le précédent, plus besoin de compteur et encore moins de modulo.

    Quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $prev = null;
    while($row = mysql_fetch_array($resultliai)) {
       if ($prev === $row['Col19']) {
          $color = '#CCCCCC';
       }
       else {
          $color = '#669999';
          $prev  = $row['Col19'];
       }
    }

  10. #10
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut

    la honte pour moi >_<

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Merci, je vais essayer ça !

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Je comprends pas ça fait l'inverse ! ça met la même couleur quand deux valeurs différentes se suivent ...

  13. #13
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Postes ton code, stp.
    Il faut adapter mon bout de code parce que le démarrage ne devrait pas être tip top.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Voila :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    	$prev = null ;	
        while($row = mysql_fetch_array($resultliai)) {
    		if ($prev==$row["Col19"]) {
    			if ($row["Total"]>15 AND $row["Total"]<1000) {
    			echo '<tr>';
    			echo '<td bgcolor="#CCCCCC">'.$row["Col19"].'</td>';
    			//echo '<td bgcolor="#CCCCCC">'.$row["TypeSup1"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["SiteA"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["SiteB"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["PCG"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["BoucleORS"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["Routeur_Interface"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["Total"].'</td>';
    			}
    			if ($row["Total"]>1000) {
    			echo '<tr>';
    			echo '<td bgcolor="#CCCCCC">'.$row["Col19"].'</td>';
    			//echo '<td bgcolor="#CCCCCC">'.$row["TypeSup1"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["SiteA"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["SiteB"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["PCG"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["BoucleORS"].'</td>';
    			echo '<td bgcolor="#CCCCCC">'.$row["Routeur_Interface"].'</td>';
    			echo '<td bgcolor="#DC143C">'.$row["Total"].'</td>';
    			}
     
    		}
    		else {
    			if ($row["Total"]>15 AND $row["Total"]<1000) {
    			echo '<tr>';
    			echo '<td bgcolor="#669999">'.$row["Col19"].'</td>';
    			//echo '<td bgcolor="#669999">'.$row["TypeSup1"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["SiteA"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["SiteB"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["PCG"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["BoucleORS"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["Routeur_Interface"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["Total"].'</td>';
    			}
    			if ($row["Total"]>1000) {
    			echo '<tr>';
    			echo '<td bgcolor="#669999">'.$row["Col19"].'</td>';
    			//echo '<td bgcolor="#669999">'.$row["TypeSup1"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["SiteA"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["SiteB"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["PCG"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["BoucleORS"].'</td>';
    			echo '<td bgcolor="#669999">'.$row["Routeur_Interface"].'</td>';
    			echo '<td bgcolor="#DC143C">'.$row["Total"].'</td>';
    			}
    			$prev=$row["Col19"];
    		}	
     
    	}

  15. #15
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Et avec ceci, c'est pas mieux ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $prev = null;
    while($row = mysql_fetch_array($resultliai)) {
       $color = ((null === $prev) || ($prev === $row['Col19'])) ? '#CCCCCC' : '#669999';
       $prev  = $row['Col19'];
    }

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Je sais pas, regarde par rapport à mon code s'il te plait

  17. #17
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Sauf erreur de ma part, ton code peut se résumer à :
    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
    <?php
     
    $prev = null ;
    while($row = mysql_fetch_array($resultliai)) {
       $color       = ((null === $prev) || ($prev === $row['Col19'])) ? '#CCCCCC' : '#669999';
       $total_color = ($row['Total'] > 1000) ? '#DC143C' : $color;
       $prev        = $row['Col19'];
     
       echo <<<WEB
          <tr>
             <td bgcolor="$color">{$row['Col19']}</td>
             <td bgcolor="$color">{$row['SiteA']}</td>
             <td bgcolor="$color">{$row['SiteB']}</td>
             <td bgcolor="$color">{$row['PCG']}</td>
             <td bgcolor="$color">{$row['BoucleORS']}</td>
             <td bgcolor="$color">{$row['Routeur_Interface']}</td>
             <td bgcolor="$total_color">{$row['Total']}</td>
          </tr>
    WEB;
    }
    Une question : quand le total est inférieur à 15, tu n'affiches rien ?

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Non ! C'est exprès !

  19. #19
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Maxime54 Voir le message
    Non ! C'est exprès !
    Ok, voici le code avec la limite de 15 :
    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
    $prev = null ;
    while($row = mysql_fetch_array($resultliai)) {
       $color       = ((null === $prev) || ($prev === $row['Col19'])) ? '#CCCCCC' : '#669999';
       $total_color = ($row['Total'] > 1000) ? '#DC143C' : $color;
       $prev        = $row['Col19'];
     
       if ($row['Total'] > 15) {   
          echo <<<WEB
             <tr>
                <td bgcolor="$color">{$row['Col19']}</td>
                <td bgcolor="$color">{$row['SiteA']}</td>
                <td bgcolor="$color">{$row['SiteB']}</td>
                <td bgcolor="$color">{$row['PCG']}</td>
                <td bgcolor="$color">{$row['BoucleORS']}</td>
                <td bgcolor="$color">{$row['Routeur_Interface']}</td>
                <td bgcolor="$total_color">{$row['Total']}</td>
             </tr>
    WEB;
       }
    }

  20. #20
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    ça refait la même chose, autrement dit : l'inverse.

    Il change de couleur pour deux valeurs identiques et garde la même quand c'est des valeurs différentes.

    Je pense que c'est du au "premier tour" quand il compare à null c'est forcement faux et donc ça décale tout ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [HTML] Question sur tableau
    Par Cheeper dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 19/05/2008, 15h03
  2. (Tres debutant) :Question sur Tableau array
    Par alexwolf dans le forum Langage
    Réponses: 5
    Dernier message: 28/11/2007, 14h49
  3. Question sur tableau
    Par Hurin dans le forum C#
    Réponses: 2
    Dernier message: 21/08/2007, 18h03
  4. Question sur tableau à deux dimenssions
    Par Loack- dans le forum C++
    Réponses: 19
    Dernier message: 29/10/2006, 19h55
  5. [langage] question sur tableau
    Par vince2005 dans le forum Langage
    Réponses: 1
    Dernier message: 24/10/2006, 15h12

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