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 par php des données mysql dans un tableau html [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2015
    Messages : 41
    Points : 25
    Points
    25
    Par défaut Affichage par php des données mysql dans un tableau html
    Bonjour,
    Mon problème
    J'ai une table mysql (table de rendez-vous) avec champs nom et date (plusieurs noms peuvent exister pour une même date, plusieurs dates peuvent exister pour un même nom.)
    date#1 nom#1
    date#2 nom#1
    date#2 nom#2
    date#2 nom#3
    date#3 nom#4
    date#3 nom#3
    date#4 nom#1
    date#4 nom#4
    date#5 nom#2

    je veux afficher sous forme de tableau.
    Nom : Capture.JPG
Affichages : 6554
Taille : 20,0 Ko

    La solution est peut-être très simple, mais je n'ai pas trouvé (je débute en PHP).
    J'ai fait une 1ère requête pour avoir les dates existantes de façon unique (j'ai pu les afficher comme souhaité) puis une boucle avec une requête pour chaque date pour avoir les noms correspondants à chaque date que je stocke dans une table puis je coince pour les afficher au bon endroit
    Toute idée sera bienvenue

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Classe tes résultats par date dans un tableau PHP :

    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 = $sth->fetch(PDO::FETCH_ASSOC)) {
       $data[$row['date']][] = $row['nom']:
    }
     
    foreach ($data as $date=>$noms) {
       ?>
        <div style="float:left;"><p><?php echo $date; ?></p>
          <ul>
          <?php
           foreach ($noms as $nom) {
                ?><li><?php echo $nom; ?></li><?php
           }
        ?></ul>
       </div>
    <?php
    }
    Pour la présentation exacte, tu defini le HTML/CSS que tu veux.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2015
    Messages : 41
    Points : 25
    Points
    25
    Par défaut
    Merci pour cette réponse rapide. Effectivement çà fonctionne à peu près. Je pensais utiliser un tableau HTML (<table>,<TR>, <TD>) mais je n'y parviens pas. Pour l'instant je perds à l'affichage systématiquement le premier enregistrement et la présentation n'est pas top. Je vais creuser un peu. Penses-tu qu'on puisse utiliser un vrai tableau?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    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
    <?php
    echo '<table>';
    $nligne = 0;
    echo '<tr>';
    foreach ($data as $date=>$noms) {
       $nligne = max(count($noms), $nligne);
       echo '<th>' . $date . '</th>';
    }
    echo '</tr>';
     
    for ($l = 0; $l < $nligne; $l++) {
        echo '<tr>';
         foreach ($data as $date=>$noms) {
             $value = (isset($noms[$l])) ? $noms[$l] : '';
             echo '<td>' . $value . '</td>';
          }
        echo '</tr>';
    }
    echo '</table>';

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2015
    Messages : 41
    Points : 25
    Points
    25
    Par défaut
    Merci pour ce code, çà fonctionne parfaitement

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2015
    Messages : 41
    Points : 25
    Points
    25
    Par défaut inutile de citer
    Bonjour
    désolé de te solliciter à nouveau pour le même problème. N'étant pas familier avec la syntaxe que tu proposes:
    "while ($row = $sth->fetch(PDO::FETCH_ASSOC))" j'ai utilisé celle-ci "while ($row = mysql_fetch_assoc($result)" ou $result est le resultat de ma query
    Mon problème: le premier enregistrement de ma requête est systématiquement oublié dans l'affichage qui suit.
    Est-ce du à la façon de fonctionner de mysql_fetch_assoc qui déplace le pointeur avant? ou au while?
    Je pourrais contourner en enregistrant un enregistrement bidon, mais j'aimerais comprendre.
    Encore merci de ton aide plus qu'efficace pour un neuneu comme moi.

  7. #7
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas un mysql_fetch_assoc() avant la boucle while() ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2015
    Messages : 41
    Points : 25
    Points
    25
    Par défaut
    Bravo pour la rapidité et la pertinence. Il y avait bien un mysql_fetch_assoc() qui trainait, résidu d'un copier/coller.
    Merci beaucoup

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

Discussions similaires

  1. recuparation des donnes mysql dans une liste
    Par Dina_light dans le forum JDBC
    Réponses: 1
    Dernier message: 16/02/2009, 15h23
  2. Insérer des données MySQL dans Oracle
    Par plou_fr dans le forum Bases de données
    Réponses: 7
    Dernier message: 02/02/2008, 15h25
  3. Réponses: 3
    Dernier message: 04/01/2007, 17h42
  4. Réponses: 1
    Dernier message: 23/12/2006, 23h39

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