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 :

affichage personnalisé résultat de requete mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Octobre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2013
    Messages : 51
    Par défaut affichage personnalisé résultat de requete mysql
    Bonjour à toutes et tous,

    Je suis confronté à un problème que je n'arrive pas à résoudre, n'étant vraiment pas développeur.

    J'ai une table Mysql avec 3 colonnes.
    date, début, fin

    Aucun souci pour y insérer des données, aucun souci pour voir les données.

    Juste que j'aimerais les formater de manière lisible.

    Actuellement, je n'arrive à les avoir que comme ceci :

    Date debut fin

    01-10-2013 08:40:00 16:30:00
    02-10-2013 08:00:00 09:25:00
    02-10-2013 10:30:00 13:10:00
    02-10-2013 13:30:00 14:30:00
    03-10-2013 07:10:00 08:15:00
    03-10-2013 08:55:00 13:10:00
    03-10-2013 15:10:00 18:00:00
    04-10-2013 07:15:00 09:30:00
    04-10-2013 11:45:00 13:00:00
    04-10-2013 15:00:00 18:30:00
    07-10-2013 07:15:00 09:30:00
    07-10-2013 10:15:00 18:00:00
    08-10-2013 08:30:00 12:45:00
    08-10-2013 13:40:00 18:10:00
    09-10-2013 08:15:00 16:00:00
    10-10-2013 08:10:00 11:00:00
    10-10-2013 11:55:00 17:30:00
    11-10-2013 07:20:00 09:35:00
    11-10-2013 10:00:00 17:30:00

    Vous constatez que certains jours, il y a plusieurs enregistrements.

    Aussi, l'idée est d'avoir un affichage qui se rapproche au plus d'un visuel qui n'affiche qu'une seule fois la date.
    Genre :

    01-10-2013 08:40 16:30
    02-10-2013 08:00-09:25 10:30-13:10 13:30-14:30
    03-10-2013 etc..

    Si l'un d'entre vous pouvais me donner une idée ou solution...

    Merci par avance

    Eric Eychenne

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tes données étant classées par date, on n'avance la date que s'il elle est différente de celle de la ligne précédente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $prev_date = '';
    while ($row = mysql_fetch_assoc($result)) {
         if ($row['date'] != $prev_date) {
                echo '<br/>' . $row['date'];
                $prev_date = $row['date'];
         }
         echo ' ' . $row['debut'] . '-' . $row['fin'];
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Octobre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2013
    Messages : 51
    Par défaut
    Heu

    ça fonctionne et à moi de mettre en page
    pour autant, je ne comprends pas bien.Pas du tout même.
    Si je pouvais avoir quelques explications.

    Toujours est-il, un grand merci

    Eric Eychenne

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $prev_date = ''; // on commence à rien
    while ($row = mysql_fetch_assoc($result)) {
         if ($row['date'] != $prev_date) { // si la date de la ligne en cours est différente de celle qu'on a stockée
                echo '<br/>' . $row['date']; // on saute une ligne et on affiche cette date
                $prev_date = $row['date']; // la date de la ligne en cours devient la nouvelle date stockée
         }
         echo ' ' . $row['debut'] . '-' . $row['fin']; // on afiche debut et fin
    }
    C'est la méthode la plus simple et rapide. Elle tire parti du fait qu'on a les données déjà classées.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Octobre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2013
    Messages : 51
    Par défaut
    Encore une fois, merci beaucoup

    Pour info, voici mon code avec un affichage comme je le voulais. Tes explications m'ont bien aidé.

    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
    <center>
    <table style="text-align: left; width: 60%;" border="0.1" cellpadding="1"
    cellspacing="1">
    <tbody>
    <tr>
    <td style="vertical-align: top;"><b>Date</b><br>
    </td>
    <td style="vertical-align: top;text-align: center;"><b>HPS</b><br>
    </td>
    <td style="vertical-align: top;text-align: center;"><b>HFS</b><br>
    </td>
    </tr>
     
        <?php
     
        $sql = "SELECT * from heure";  
     
    $result = requete($sql) or die(mysql_error());
     
     
                $prev_date = '';
                while ($row = mysql_fetch_assoc($result)) {
                  if ($row['date'] != $prev_date) {
                  	$madate = $row['date'];
                  	$datefr = $madate{8}.$madate{9}."-".$madate{5}.$madate{6}."-".$madate{0}.$madate{1}.$madate{2}.$madate{3}; 
     
     
                echo '<tr><td style="vertical-align: top; background-color: rgb(213, 229, 218); "><font color="blue">' . $datefr . '</font></td>';
                $prev_date = $row['date'];
                echo '<td style="vertical-align: top; background-color: rgb(213, 229, 218);"></td><td style="vertical-align: top; background-color: rgb(213, 229, 218);"></td></tr>';
         }
         echo '<td></td><td style="vertical-align: top;text-align: center;">' . $row['hps'] .'</td>' . '<td style="vertical-align: top;text-align: center;">' . $row['hfs'] . '</td></tr>';
    }
     
                 ?>
      </tbody>
    </table>
    </center>

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

Discussions similaires

  1. Classement personnalisé d'une requete mysql
    Par Dlteck2000 dans le forum Langage
    Réponses: 1
    Dernier message: 24/08/2010, 12h02
  2. mauvais résultat de requete sous mysql
    Par temperature dans le forum Requêtes
    Réponses: 5
    Dernier message: 14/04/2006, 15h54
  3. [MySQL] affichage du résultat d'une requete dans une page
    Par blackbird1 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/03/2006, 14h07
  4. résultat d'une requete mysql
    Par noinneh dans le forum MFC
    Réponses: 4
    Dernier message: 03/03/2005, 16h54

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