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 :

Affecté une couleur selon le minimum [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut Affecté une couleur selon le minimum
    Bonjour
    Après avoir eu un sacré coup de main, je reviens encore vers vous

    J'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pilote 1 - 1.02.235 - ----- - ------
    Pilote 2 - 1.02.435 - 0.210 - +0.210
    Pilote 3 - 1.02.850 - 0.415 - +0.625
    Et je souhaiterai afficher comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pilote 1 - 1.02.235 - ----- -  Sec 1 - Sec 2  - Sec 3
    Pilote 2 - 1.02.435 - 0.210 - 10.210 - 21.345 - 40.265
    Pilote 3 - 1.02.850 - 0.415 - 11.625 - 20.998 - 41.215
    Comment procéder ?
    j'ai essayer avec une requete "select min(Sec1)as Sec1, min(Sec2)as Sec2, min(Sec3)as Sec3 from ma table"
    Puis je recupere l'infos et
    $Sec1="#00FF00";
    Mais bon je m'égare surement
    ca n'affiche rien.
    Pour être plus précis c'est d'affiché comme le tableau ci-dessus
    Couleur verte pour le meilleurs temps de chaque "Sec"
    C'est une question de couleur et rien d'autre ici
    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
    Si je comprends bien, tu veux colorier la valeur minimum d'une colonne.
    Je pense que tu peux récupérer les minimums via une requête à part (ce que tu as fait) et ensuite, quand tu construis ton tableau, comparer la valeur en cours au minimum.
    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]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    pourquoi toujours vouloir faire compliqué ?

    [Edit] code et explication supprimés.
    Quand je pense que c'est moi qui dit "pourquoi toujours vouloir faire compliqué ?"
    alors que c'est encore moi qui fait "une usine à gaz"
    Dernière modification par Invité ; 07/05/2012 à 15h49.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Salut
    Aucune importance si la couleur est idem pour le même minimum.mais ca doit être dans chaque colonne des "Sec" 1,2 et 3.
    pour le meilleurs temps il sera en haut de chaque tours par pilotes dans un order by LapTime, DriverName ASC

  5. #5
    Invité
    Invité(e)
    Par défaut
    Euh... Quelqu'un a parler de changement de couleur ?!?
    Pas moi, en tout cas.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Oui toi
    Après tout, seuls les id_pilote nous intéressent (pour savoir sur quelle ligne mettre la couleur !)
    Car je doit récupérer le meilleurs temps et lui attribue une couleur

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ben non. Je parle juste de récupérer l'id_pilote.
    Citation Envoyé par Kitetkat Voir le message
    Car je doit récupérer le meilleurs temps et lui attribue une couleur
    C'est là où, je pense, tu fais fausse route nous avons des conceptions différentes JE FAIS fausse route !

    [Edit] Je me suis égaré à faire une "usine à gaz" inutile...

  8. #8
    Invité
    Invité(e)
    Par défaut
    En fait, Celira a donné la réponse dès le début !
    Je pense que tu peux récupérer les minimums via une requête à part (ce que tu as fait) et ensuite, quand tu construis ton tableau, comparer la valeur en cours au minimum.
    Là où moi, je comparais les id_pilote, elle compare simplement les valeurs !
    Ce qui est BIEN PLUS SIMPLE !

    BREF !
    Il faut tout simplement faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reqMin = "SELECT MIN(Sec1) AS SecMini1, MIN(Sec2) AS SecMini2, MIN(Sec3) AS SecMini3 FROM matable;"
    Qui donne les valeurs mini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $SecMini1 = $rowMin['SecMini1'];
    $SecMini2 = $rowMin['SecMini2'];
    $SecMini3 = $rowMin['SecMini3'];
    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
    <?php
    while ($row=........]
    {
    	// [...]
    	// temps 1 :
    	$colorSec1 = ($row['Sec1']==$SecMini1) ' style="color:#00FF00;"' : '';
    	echo '<td '.$colorSec1.'>'.$row['Sec1'].'</td>';
    	// temps 2 :
    	$colorSec1 = ($row['Sec2']==$SecMini2) ' style="color:#00FF00;"' : '';
    	echo '<td '.$colorSec2.'>'.$row['Sec2'].'</td>';
    	// temps 3 :
    	$colorSec3 = ($row['Sec3']==$SecMini3) ' style="color:#00FF00;"' : '';
    	echo '<td '.$colorSec3.'>'.$row['Sec3'].'</td>';
    	// [...]
    <?php
    }
    ?>
    Bon, je pense qu'il est temps d'aller prendre un peu l'air..........
    Dernière modification par Invité ; 07/05/2012 à 16h09.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Exact j'avais commencer comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
               $Sec1min = mysql_query("select min(Sec1)as Sec1,min(Sec2)as Sec2,min(Sec3)as Sec3 from xlaps") or die (mysql_error());
               $res = mysql_numrows($Sec1min);
                 $Sec1 = mysql_result($Sec1min,$i,"Sec1");
                 $Sec2 = mysql_result($Sec1min,$i,"Sec2");
                 $Sec3 = mysql_result($Sec1min,$i,"Sec3");
                $i=0;
                while($res!=$i){
                   if($resultat2['Sec1']=='$Sec1'){$Sec1color="#00FF00";}
                   if($resultat2['Sec2']=='$Sec2'){$Sec2color="#00FF00";}
                   if($resultat2['Sec3']=='$Sec3'){$Sec3color="#00FF00";}
    Mais j'ai des différences d'infos alors que cela ne devrais pas
    Mon $resultat2 ne correspond pas au min
    Regarder http://www.sim-multi-racing-car.com/...2/monitor2.php
    les colonnes Sec1 à Sec3 le vert au début c'est ok mais meilleurs temps en 1 colonnes 22.478 et pas de couleur - et Sec3 rien aussi
    Je ne vois pas ou est mon erreur

    La suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    echo "<table width='85%' bgcolor='$bgcolor1' border='1' id='td2'>
    <td width='15%'>".$resultat2['DriverName']."</td>
                     <td width='15%'>".$resultat2['VehicleClass']."</td>                
                     <td width='10%'><div align='center'>".$resultat2['Lap']."</div></td>
                     <td width='10%'><div align='center'>";
                     echo formate1_temps($LapTime);
                     echo "<td width='10%'><div align='center'>";
                     echo formate1_temps($diff_LapTime);
                     echo "<td width='10%' bgcolor='$Sec1color'><div align='center'>".$resultat2['Sec1']."</div></td>
                             <td width='10%' bgcolor='$Sec2color'><div align='center'>".$resultat2['Sec2']."</div></td>
                           <td width='10%' bgcolor='$Sec3color'><div align='center'>".$resultat2['Sec3']."</div></td></tr></table>";

  10. #10
    Invité
    Invité(e)
    Par défaut
    1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                 $Sec1 = mysql_result($Sec1min,$i,"Sec1");
                 $Sec2 = mysql_result($Sec1min,$i,"Sec2");
                 $Sec3 = mysql_result($Sec1min,$i,"Sec3");
                $i=0;
    $i est défini après ?
    Ca donne quoi quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                 echo 'Sec1  : '. $Sec1 .'<br />';
                 echo 'Sec2  : '. $Sec2 .'<br />';
                 echo 'Sec3  : '. $Sec3 .'<br />';
    2/ Ici, des '...' en trop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                   if($resultat2['Sec1']=='$Sec1'){$Sec1color="#00FF00";}
                   if($resultat2['Sec2']=='$Sec2'){$Sec2color="#00FF00";}
                   if($resultat2['Sec3']=='$Sec3'){$Sec3color="#00FF00";}
    3/ les <div align='center'> et </div> ne servent à rien du tout.

    Ps : et ton code gagnerait en lisibilité (et en "débogabilité" !) si tu "sortais" le html du PHP...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Le code de cette partie complete
    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
    $req_xlaps = mysql_query("select DriverName,VehicleClass,Lap,Sec1,Sec2,Sec3,LapTime from xlaps order by LapTime, DriverName ASC");
    echo "<div align='center'><h1> Hotlaps $Track</h1><br /><table width='85%' bgcolor='#0000FF' border='1' id='td1'>
                     <td width='15%'>Pilotes</td>
                     <td width='15%'>Teams / Mods</td>
                     <td width='10%'>Nbr. Tours</td>
                     <td width='10%'><div align='center'>Best Lap</div></td>
                     <td width='10%'><div align='center'>Différence</div></td>
                     <td width='10%'><div align='center'>Sect. 1</div></td>
                     <td width='10%'><div align='center'>Sect. 2</div></td>
                     <td width='10%'><div align='center'>Sect. 3</div></td></tr></table>";
    $values[0] = '#FFEECC';
    $values[1] = '#CCCCCC';
    $i=0;
    $LapTime2 = 0;
    while($resultat2=mysql_fetch_array($req_xlaps)){
               $Sec1min = mysql_query("select min(Sec1)as Sec1,min(Sec2)as Sec2,min(Sec3)as Sec3 from xlaps") or die (mysql_error());
               $res = mysql_numrows($Sec1min);
                 $Sec1 = mysql_result($Sec1min,$i,"Sec1");
                 $Sec2 = mysql_result($Sec1min,$i,"Sec2");
                 $Sec3 = mysql_result($Sec1min,$i,"Sec3");
                $i=0;
                while($res!=$i){
                   if($resultat2['Sec1']==$Sec1){$Sec1color="#00FF00";}else{$Sec1color=" ";}
                   if($resultat2['Sec2']==$Sec2){$Sec2color="#00FF00";}else{$Sec2color=" ";}
                   if($resultat2['Sec3']==$Sec3){$Sec3color="#00FF00";}else{$Sec3color=" ";}
     
    $bgcolor1 = $values [$i % 2];
    $LapTime = $resultat2['LapTime'];
      //requete
      $LapTime1 = $resultat2['LapTime'];
      // différence :
      $diff_LapTime = $LapTime1 - $LapTime2;
      if($LapTime2=='$LapTime1'){
      $diff_LapTime="00.00.000";
      }
     
      $LapTime2 = $LapTime1; // (pour la boucle suivante)
     
    echo "<table width='85%' bgcolor='$bgcolor1' border='1' id='td2'>
    <td width='15%'>".$resultat2['DriverName']."</td>
                     <td width='15%'>".$resultat2['VehicleClass']."</td>                
                     <td width='10%'><div align='center'>".$resultat2['Lap']."</div></td>
                     <td width='10%'><div align='center'>";
                     echo formate1_temps($LapTime);
                     echo "<td width='10%'><div align='center'>";
                     echo formate1_temps($diff_LapTime);
                     echo "<td width='10%' bgcolor='$Sec1color'><div align='center'>".$resultat2['Sec1']."</div></td>
                           <td width='10%' bgcolor='$Sec2color'><div align='center'>".$resultat2['Sec2']."</div></td>
                           <td width='10%' bgcolor='$Sec3color'><div align='center'>".$resultat2['Sec3']."</div></td></tr></table>";
     
    $i++;
                     } $i++; }
    Ton code
    Dans mon éditeur j'ai toutes les couleurs donc mon code est très différencier cela me pose pas de problème à ce niveau
    HAPedit 3.1
    code HTML en bleu
    Code php en bleu marine et les variable, en vert donc ca va

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Tiens aussi regarde le temps a un certains moment si on met trop de temps l'affichage n'est plus très juste

  13. #13
    Invité
    Invité(e)
    Par défaut
    1/ Explique-nous $i.
    Il est partout.

    2/ Et $Sec1, $Sec2, $Sec3 : ça donne quoi (valeurs) ?

    Citation Envoyé par Kitetkat Voir le message
    l'affichage n'est plus très juste
    3/ tu parles de 23.8630000000001 ?
    => number_format()

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    si je ne le met pas il me fait une boucle
    alors comme je ne sais pas trop comment le faire
    En plus ce code est 3 fois dans ma page
    Le HotLaps, le Xlaps et Le raceLaps ce dernier s'affiche uniquement quand c'est la course car sinon elle est vide la table

    Les valeurs ce sont les trois champs Sec1 à 3
    Les trois derniers champs sur la page en lien au dessus

  15. #15
    Invité
    Invité(e)
    Par défaut
    1/ Je parlais des CES VALEURS (MINI !)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                 $Sec1 = mysql_result($Sec1min,$i,"Sec1");
                 $Sec2 = mysql_result($Sec1min,$i,"Sec2");
                 $Sec3 = mysql_result($Sec1min,$i,"Sec3");
    Comme quoi il faut toujours mettre des NOMS de variables EXPLICITES...

    2/ erreur ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if($LapTime2=='$LapTime1'){
    => à lire : Apostrophes ou guillemets : lesquels choisir ?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
               $Sec1min = mysql_query("select min(Sec1)as Sec1,min(Sec2)as Sec2,min(Sec3)as Sec3 from xlaps") or die (mysql_error());
               $res = mysql_numrows($Sec1min);
                 $Sec1 = mysql_result($Sec1min,$i,"Sec1");
                 $Sec2 = mysql_result($Sec1min,$i,"Sec2");
                 $Sec3 = mysql_result($Sec1min,$i,"Sec3");

  17. #17
    Invité
    Invité(e)
    Par défaut
    Ca tourne au dialogue de sourds....

    Je veux juste savoir si tu récupères les BONNES VALEURS MINI.

    PS : je n'ai ni accès à ton ordinateur, ni à ta tête.
    Seulement aux infos que tu me donnes ici.

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    plutot d'incompréhension sourd ca voudrait plutot dire que je le fait exprès lol et c'est loin d'être le cas.
    Vu que je code depuis pas mal de temps mais pas comme un pro et comme pas changer de facon de faire c'est vrai que sur certaine chose j'ai un peu de mal à piger désolé

    Pour les valeurs : pour moi valeur c'est ce qu"'il y a dans ma table donc ce qi s'affiche a l'écran se sont de plus des données changeante et qui ne reste pas une fois les qualifications ou la course fini elles sont détruite

    Maintenant si c'est n'est pas cela que tu me demande explique moi je suis à l'écoute

    Ok lol oui les bonnes valeurs elle sont exactes oui j'ai fait un echo et se sont bien les bonnes valeurs

  19. #19
    Invité
    Invité(e)
    Par défaut
    Pour les valeurs : pour moi valeur c'est ce qu"'il y a dans ma table donc ce qi s'affiche a l'écran
    C'est EXACTEMENT ca que j'aimerais savoir !
    Ok lol oui les bonnes valeurs elle sont exactes oui j'ai fait un echo et se sont bien les bonnes valeurs
    OK ! on avance !

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    ci je fait Je veux bien mais le $res correspond a quoi alors ?

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

Discussions similaires

  1. [Validator] affecter une couleur aux champs en erreur
    Par alexandre7 dans le forum Struts 1
    Réponses: 15
    Dernier message: 23/05/2009, 15h09
  2. Affecter une couleur à chaque face d'un polygone
    Par Pragmateek dans le forum OpenGL
    Réponses: 16
    Dernier message: 26/02/2009, 18h55
  3. Affecter une couleur à un contrôle placé dans une feuille de calculs
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/03/2008, 19h22
  4. Réponses: 4
    Dernier message: 27/05/2007, 19h09
  5. [D7] affecter une couleur à un TLabel
    Par raoulmania dans le forum Composants VCL
    Réponses: 8
    Dernier message: 05/09/2005, 14h06

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