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 :

Alternance de couleur par ligne dans un tableau [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut Alternance de couleur par ligne dans un tableau
    Bonjour,

    Je souhaites alterner la couleur des lignes de mon tableau, ce qui n'est pas bien difficile, là ou je bloque c'est je souhaites alterner la couleur non pas 1 ligne sur 2, mais dès que le numéro du champs commande change, il peut y avoir pulsieurs lignes pour une meme commande et je souhaites surligner touts lignes lignes d'un meme commande par alternance, pour une meilleur visibilité.

    Merci par avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ben c'est le même principe !
    Il suffit de mémoriser la commande en cours de traitement dans la boucle et si c'est une commande sur la nouvelle ligne à traiter, tu changes la couleur et tu mémorises la nouvelle commande.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    C'est justement cette mémorisation qui me bloque je ne vois pas comment le faire.
    Pour l'aternance 1 sur 2 il suffit juste de mettre en place une boucle de 1/2 je ne mémorise rien

  4. #4
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,
    Ba suffit de faire un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $actualCmd = '';
    foreach ($commandes as $numCommande => $data) {
        if ($actualCmd != $numCommande) {
            $actualCmd = $numCommande;
        }
        ...
    }
    A adapter en fonction de ton code


    Les boutons et existent, servez-vous en

  5. #5
    Membre actif
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Points : 232
    Points
    232
    Par défaut
    Bonjour,
    Mince trop tard. Je laisse mes explications.

    Je n'ai pas testé, je fais ça de mémoire.

    Tu inialises une variable avant d'entrer dans ta boucle.
    $temp = ''; par exemple

    Dans ta boucle au début tu fais un test entre la variable temp et le numéro commande.

    Si elle est différente, donc tu es sur une autre commande tu appliques telle classe css.
    Sinon tu ne changes pas de class

    Toujours dans ta boucle mais à la fin, tu affectes le numéro commande à ta variable $temp.

    Natso

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    Là tu m'as perdue

    Je dois le mettre dans le <tr> ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     while( @odbc_fetch_row($resultat_Shipped))
    {		
    	echo "<tr bgcolor='red'>";
    	echo "<td>".odbc_result($resultat_Shipped, "COMMANDE")."</td>";
    	echo "<td>".odbc_result($resultat_Shipped, "PKUP")."</td>";
    	echo "</tr>";
    }

  7. #7
    Membre actif
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Points : 232
    Points
    232
    Par défaut
    Un truc comme ça. Voir également à travailler avec css
    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
     
    $actualCmd = ''; 
    while( @odbc_fetch_row($resultat_Shipped))
    {	
             if (odbc_result($resultat_Shipped, "COMMANDE") != $actualCmd) {	
    	echo "<tr bgcolor='red'>";
            }
           else{
              echo "<tr bgcolor='bleu'>";
           }
    	echo "<td>".odbc_result($resultat_Shipped, "COMMANDE")."</td>";
    	echo "<td>".odbc_result($resultat_Shipped, "PKUP")."</td>";
    	echo "</tr>";
      $actualCmd = odbc_result($resultat_Shipped, "COMMANDE") ;
     
    }

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    Merci mlebeguec, ca me parle plus, j'ai testé, j'ai bien les lignes qui change mais de manièere désordonnée ça ne suit pas les numéro de commande, la boucle doit beugé quelques part, pourquoi ajoutes-tu cette ligne à la fin?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $actualCmd = odbc_result($resultat_Shipped, "COMMANDE") ;

  9. #9
    Membre actif
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Points : 232
    Points
    232
    Par défaut
    C'est peut être à cause du test conditionnel.
    Teste sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (odbc_result($resultat_Shipped, "COMMANDE") == $actualCmd)
    On l'affecte uniquement à la fin ou après le test condifitonnel.

    Imagine, tu passe la première fois dans ta boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (odbc_result($resultat_Shipped, "COMMANDE") == $actualCmd)
    Si la commande est identique à ta variable actual Cmd donc tu appliques la couleur rouge sinon la couleur bleue.

    Ton script continue son traitement, il crée les td etc..

    Puis à la fin il affecte la commande traitée dans ta variable actualCmd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $actualCmd = odbc_result($resultat_Shipped, "COMMANDE") ;
    Ensuite, il fait son deuxième passage, il regarde si ta variable est actualCmd est identique à la commande de ta requète. Si ce n'est pas le cas il affecte la couleur bleue sinon la couleur rouge.

    Je te fais ça vite fait. Je suis en réunion là. Donc pas testé.

    Natso

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    Merci mlebeguec pour m'avoir mis sur la voie, j'ai trouvé une solution, je ne suis pas sure que ce soit tres propre comme code mais ça fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $actualCmd = ''; 
    $i = 0;
    while( @odbc_fetch_row($resultat_Shipped))
    {	
    if (odbc_result($resultat_Shipped, "COMMANDE") != $actualCmd) {	
    $row = ++$i % 2 ? 'Yellow':'Blue';	
    echo "<tr bgcolor='$row'>";
    $row2 = $row;
    }
    else if (odbc_result($resultat_Shipped, "COMMANDE") == $actualCmd) {	
    echo "<tr bgcolor='$row2'>";
    }

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/12/2008, 17h46
  2. Alterner la couleur des ligne dans un tableau html
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/01/2008, 14h57
  3. [MySQL] Alterner la couleur des lignes de mon tableau via un fichier CSS
    Par SONIA.GERET dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/01/2008, 17h11
  4. Comment définir une couleur par ligne dans un objet uicontrol de type Text
    Par VinceDA dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 28/05/2007, 12h13
  5. Alterner les couleurs des lignes d'un tableau
    Par kobe dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/06/2006, 21h13

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