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 :

Identifier les maximales de plusieurs colonnes


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2020
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2020
    Messages : 26
    Par défaut Identifier les maximales de plusieurs colonnes
    Bonjour à toutes et à tous,

    A l'aide d'un FOREACH, je parviens à afficher le contenu d'une base de données, jusque là, tout va bien. Là où ça se gâte pour moi, c'est pour identifier et mettre en caractère gras, la valeur la plus élevée dans plusieurs colonnes.

    Mon code est le suivant :

    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
     
    <tbody>
      <?php 
         foreach($lignes as $value):?>
            <tr>
                <td><?php echo $value->Libellé1;?></td>
                <td><?php echo $value->Libellé2;?></td>
                <td><?php if (date('d-m-Y', strtotime($value->DateDébut1))<>"01-01-1970") {echo date('d-m-Y', strtotime($value->DateDébut1));} else {echo "";};?></td>
                <td><?php echo date('d-m-Y', strtotime($value->DateFin1));?></td>
                <td><?php if (date('H:i:s', strtotime($value->DateDébut2))<>"01:00:00") {echo date('H:i:s', strtotime($value->DateDébut2));} else {echo "";};?></td>
                <td><?php echo date('H:i:s', strtotime($value->DateFin2));?></td>
                <td><?php if (date('H:i:s', strtotime($value->DateDébut2))<>"01:00:00") {echo gmdate("H:i:s", strtotime($value->DateFin2)-strtotime($value->DateDébut2));} else {echo "";};?></td>
            </tr>
         <?php endforeach
      ?>
    </tbody>
    Je voudrais pouvoir identifier la DateFin1 la plus élevée et qu'elle s'affiche en caractère gras (ou en couleur), j'imagine qu'il doit falloir utiliser un class="bold". Et de plus, je souhaite qu'une fois la DateFin1 la plus élevée identifiée, la DateFin2 qui lui correspond soit elle aussi mise en caractère gras (et qu'en cas de doublon sur le DateFin1 le plus élevé, ce soit le DateFin2 le plus élevé qui identifie les deux valeurs (DateFin1 et DateFin2) à mettre en gras).
    Mais que ce soit pour l'identification de la valeur la plus élevée de mon foreach, ou pour l'application du style que sur cette valeur, je suis complètement largué.


    Au "pire", si l'identification et la mise en gras du DateFin1 et DateFin2 (en cas de doublon sur le DateFin1) n'est pas possible, si quelqu'un a une idée de code pour obtenir ces deux valeurs à l'extérieur du foreach (mais calculées par rapport aux données affichées dans le tableau), je suis quand même preneur...

    Si une âme charitable pouvait m'aider, ça serait vraiment sympa.

    Un Enorme MERCI par avance à toutes et à tous.

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    On ne peut pas déterminer un maximum tant qu'on ne dispose pas de toutes les données.

    Je vois deux manières de contourner le problème, coté serveur ou coté client:
    • coté serveur: au lieu d'afficher dans ton foreach au fur et à mesure, tu stockes tous tes enregistrements dans un tableau. Une fois que c'est fait, tu as "les mains libres" pour chercher où se trouvent les valeurs maximales pour ensuite pouvoir les afficher avec le style de ton choix (utiliser une classe css est une bonne idée).
    • coté client: tu laisses ton script php tel quel, et tu écris un script javascript pour trouver les valeurs max présentes dans le tableau.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2020
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2020
    Messages : 26
    Par défaut
    Bonjour CosmoKnacki,

    Merci pour ces pistes :-)


    Tenté au départ par la solution Javascript, j'ai finalement opté pour la solution côté serveur.
    Dans mon contrôleur, j'ai rajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    		$data['heures']= array();
    		foreach ($data['lignes'] as $key => $value){
    			$data['heures']['date'][] = $value->DateFin1;
    			$data['heures']['heure'][] = $value->DateFin2;
    		}
    ce qui me permet de récupérer toutes mes dates et heures liées à un enregistrement ('lignes')... reste plus qu'à trier mon array par ordre décroissant sur ['date'] et ['heure'] pour avoir la combinaison date/heure la plus élevée...


    Un GRAND MERCI en tout cas pour les idées suggérées ;-)

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

Discussions similaires

  1. [XL-2003] Compter les "H" dans plusieurs colonnes
    Par bolide7 dans le forum Excel
    Réponses: 5
    Dernier message: 07/11/2012, 22h05
  2. Copier les données de plusieurs colonnes dans une nouvelle feuille
    Par lolonico1974 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2010, 07h51
  3. Filtrer les doublons sur plusieurs colonnes
    Par henri228 dans le forum Conception
    Réponses: 2
    Dernier message: 07/05/2010, 22h21
  4. [CR XI] section detail - afficher les données sur plusieurs colonnes
    Par Flamby38 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/09/2007, 14h44
  5. Réponses: 2
    Dernier message: 11/01/2007, 12h56

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