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 :

Création d'un tableau html à partir de donnée récuperer sur Mysql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 88
    Par défaut Création d'un tableau html à partir de donnée récuperer sur Mysql
    Bonjour à tous,

    Je dois créer un tableau à partir de donnée que je récupère dans ma BDD.
    Lorsque je lance ma requête dans PHPmyadmin, ça me sort toute les entrées (10 à peu près) donc parfait.

    Le code que j'ai me créer une seule ligne du tableau, alors que je voudrais qu'il m'en créer autant qu'il y a d'entrée.
    Pourtant j'ai utilisé à peu près la même chose pour créer un select et ça à marcher... La seule différence est que ici je récupère plusieurs colonne contre 2seulement pour mon select.

    Fonction qui créer les lignes de mon tableau : conges_all_employ.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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <?php 
    include("tableaux/affiche_statuts.php"); // j'inclus le code pour créer un select
     
        function affiche_conges()
        {
            $youpi = affiche_statut(); // récupère liste déroulante des statuts de la demande. c'est la fonction créer dans le fichier inclus
            $sql= "SELECT d.id_demande, d.dt_deb as debut, d.dt_fin as fin, t.name as type, w.name as souhait, s.name as statut, u.firstname, u.lastname FROM demandes d, users u, status_demande s, souhaits w, types_demande t WHERE d.id_types = t.id_types AND d.id_status = s.id_status AND d.id_users = u.id_users AND d.souhait = w.id_souhait ";
            $bdd = include 'db_mysql.php';
     
     
                                $reponse = $bdd->query($sql);
                                  while ($donnees = $reponse->fetch())  // boucle pour récupérer toute les données
                                        {
                                        $champ = "<tr>\n 
                                        <td>".$donnees['id_demande']."</td>
                                        <td>".$donnees['firstname']."</td>
                                        <td>".$donnees['debut']."</td> 
                                        <td>".$donnees['fin']."</td> 
                                        <td>".$donnees['type']."</td>
                                        <td>".$donnees['souhait']."</td>
                                        <td>".$donnees['statut']."</td>
                                        <td>".$youpi."</td>
                                        \n</tr>\n
                                        ";
     
     
     
                                        }
     
     
                                        return $champ;
            }
     
     
     
        ?>
    Page dans la quelle j'inclus la fonction de mon tableau: tab_conges_all
    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
     
    <table class="table table-bordered table-hover table-striped">
      <thead class="thead-dark">
        <tr>
          <th scope="col">N°Demande#</th>
          <th scope="col">Nom de l'employé</th>
          <th scope="col">date de début</th>
          <th scope="col">date de fin</th>
          <th scope="col">type de congés</th>
          <th scope="col">souhait</th>
          <th scope="col">statut</th>
          <th scope="col">validation</th>
        </tr>
      </thead>
      <tbody>
     
     <?php
        require_once("tableaux/conges_all_employ.php");
        $champ = affiche_conges();
        echo $champ;
    ?>
     
      </tbody>
    </table>
    Voila voila... Si vous avez des idées.. Merci

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Bonjour. Je ne dis pas que ça a un lien, mais tu devrais mettre des jointures explicites en SQL, les jointures ne sont pas des filtres.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT d.id_demande, d.dt_deb as debut, d.dt_fin as fin, t.name as type, w.name as souhait, s.name as statut, u.firstname, u.lastname 
     
    FROM demandes d
     
    inner join users u on u.id_users=d.id_users
    inner join status_demande s on d.id_status = s.id_status
    inner join souhaits w on d.souhait = w.id_souhait 
    inner join types_demande t on d.id_types = t.id_types

    Sur le fond maintenant, tu devrais également passer à PDO... Une initiation rapide ici :

    https://www.developpez.net/forums/bl...pdo-soupe-lit/
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 88
    Par défaut
    Bonjour Dentrite,

    J'étais partie pour faire des jointures au début, mais j'ai pas réussi du coup j'ai choisi la facilitée et la requête que tu m'as donnée ne fonctionne pas non plus...

    Et, j'utilise PDO... je l'utilise peut-être mal et c'est pour ça que sa ne marche pas

    Edit: j'ai modifié un peu, tu devrais préféré ça
    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
     
            $bdd = include 'db_mysql.php';
     
     
                                $reponse = $bdd->prepare($sql);
                                $reponse->execute();
                                  while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC))  // boucle pour récupérer toute les données
                                        {
                                        $champ = "<tr>\n 
                                        <td>".$donnees['id_demande']."</td>
                                        <td>".$donnees['firstname']."</td>
                                        <td>".$donnees['debut']."</td> 
                                        <td>".$donnees['fin']."</td> 
                                        <td>".$donnees['type']."</td>
                                        <td>".$donnees['souhait']."</td>
                                        <td>".$donnees['statut']."</td>
                                        <td>".$youpi."</td>
                                        \n</tr>\n
                                        ";
     
     
     
                                        }
     
     
                                        return $champ;
            }
     
     
     
        ?>

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 88
    Par défaut
    j'ai tenté un truc, mais j'obtiens des erreurs j'ai rajouter $donnees=array() et $donnees[]=$row .

    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
     
    $donnees=array();
     
                                $reponse = $bdd->query($sql);
                                  while ($row = $reponse->fetch())  // boucle pour récupérer toute les données
                                        {
                                            $donnees[]=$row;
                                        $champ = "<tr>\n 
                                        <td>".$donnees['id_demande']."</td>
                                        <td>".$donnees['firstname']."</td>
                                        <td>".$donnees['debut']."</td> 
                                        <td>".$donnees['fin']."</td> 
                                        <td>".$donnees['type']."</td>
                                        <td>".$donnees['souhait']."</td>
                                        <td>".$donnees['statut']."</td>
                                        <td>".$youpi."</td>
                                        \n</tr>\n
                                        ";
     
     
     
                                        }
     
     
                                        return $champ;
            }
    voilà l'erreur, et ça me le fait pour tout mes noms de colonnes (id_demande, firstname, lastname...)
    Nom : beug.PNG
Affichages : 3102
Taille : 15,9 Ko

  5. #5
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    1) SQL : Dis moi ce que t'affiche ton PHPmyadmin sur la requête que je t'ai modifiée.
    edit : c ok, j'ai corrigé... une faute de frappe... que tu aurais vu si tu avais testé la requête dans phpmyadmin.

    2) sur le lien que je t'ai donné, tu trouves ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($row= $stmt->fetch(PDO::FETCH_ASSOC)){
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     
    <?php 
    include("tableaux/affiche_statuts.php"); // j'inclus le code pour créer un select
     
        function affiche_conges()
        {
            $youpi = affiche_statut(); // récupère liste déroulante des statuts de la demande. c'est la fonction créer dans le fichier inclus
            $sql= "SELECT d.id_demande, d.dt_deb as debut, d.dt_fin as fin, t.name as type, w.name as souhait, s.name as statut, u.firstname, u.lastname FROM demandes d, users u, status_demande s, souhaits w, types_demande t WHERE d.id_types = t.id_types AND d.id_status = s.id_status AND d.id_users = u.id_users AND d.souhait = w.id_souhait ";
            $bdd = include 'db_mysql.php';
     
     
                                $reponse = $bdd->query($sql);
                                  while ($donnees = $reponse->fetch())  // boucle pour récupérer toute les données
                                        {
                                        $champ = "<tr>\n 
                                        <td>".$donnees['id_demande']."</td>
                                        <td>".$donnees['firstname']."</td>
                                        <td>".$donnees['debut']."</td> 
                                        <td>".$donnees['fin']."</td> 
                                        <td>".$donnees['type']."</td>
                                        <td>".$donnees['souhait']."</td>
                                        <td>".$donnees['statut']."</td>
                                        <td>".$youpi."</td>
                                        \n</tr>\n
                                        ";
     
     
     
                                        }
     
     
                                        return $champ;
            }
     
     
     
        ?>
    à chaque tour de boucle il pouvoir stocker chaque ligne de la table en l'ajoutant dans la variable $champ:

    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
     
     
    <?php 
    include("tableaux/affiche_statuts.php"); // j'inclus le code pour créer un select
     
        function affiche_conges()
        {
            $youpi = affiche_statut(); // récupère liste déroulante des statuts de la demande. c'est la fonction créer dans le fichier inclus
            $sql= "SELECT d.id_demande, d.dt_deb as debut, d.dt_fin as fin, t.name as type, w.name as souhait, s.name as statut, u.firstname, u.lastname FROM demandes d, users u, status_demande s, souhaits w, types_demande t WHERE d.id_types = t.id_types AND d.id_status = s.id_status AND d.id_users = u.id_users AND d.souhait = w.id_souhait ";
            $bdd = include 'db_mysql.php';
     
            $champ='';
     
                                $reponse = $bdd->query($sql);
                                  while ($donnees = $reponse->fetch())  // boucle pour récupérer toute les données
                                        {
                                        $champ .= "<tr>\n 
                                        <td>".$donnees['id_demande']."</td>
                                        <td>".$donnees['firstname']."</td>
                                        <td>".$donnees['debut']."</td> 
                                        <td>".$donnees['fin']."</td> 
                                        <td>".$donnees['type']."</td>
                                        <td>".$donnees['souhait']."</td>
                                        <td>".$donnees['statut']."</td>
                                        <td>".$youpi."</td>
                                        \n</tr>\n
                                        ";
     
     
     
                                        }
     
     
                                        return $champ;
            }
     
     
     
        ?>
    Après ta requête marche certes mais c'est ça reste du SQL1 , assez vieux. Avec SQL 2 on utilise les jointures évoluées(JOIN ...) comme proposé précédemment.

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 88
    Par défaut
    Dendrite,

    1) voici l'erreur que j'obtiens #1054 - Champ 'd.is_users' inconnu dans on clause

    2) oui j'ai vu après que c'est pas çe que j'ai fais PDO.

    Du coup j'ai ça maintenant: mais ça ne fonctionne toujours pas comme je veux...
    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
     
            $bdd = include 'db_mysql.php';
     
     
                                $reponse = $bdd->prepare($sql);
                                $reponse->execute();
                                  while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC))  // boucle pour récupérer toute les données
                                        {
                                        $champ = "<tr>\n 
                                        <td>".$donnees['id_demande']."</td>
                                        <td>".$donnees['firstname']."</td>
                                        <td>".$donnees['debut']."</td> 
                                        <td>".$donnees['fin']."</td> 
                                        <td>".$donnees['type']."</td>
                                        <td>".$donnees['souhait']."</td>
                                        <td>".$donnees['statut']."</td>
                                        <td>".$youpi."</td>
                                        \n</tr>\n
                                        ";
     
     
     
                                        }
     
     
                                        return $champ;
            }
     
     
     
        ?>
    Bonjour Armel,
    j'ai pas très bien compris ce que tu voulais dire, mais j'ai rajouter $champ='' et ça ne change rien

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

Discussions similaires

  1. Création d'une liste déroulante à partir des données d'un tableau
    Par LVSUser dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/04/2017, 16h49
  2. Création d'un tableau html à partir d'un array
    Par hardShield dans le forum Langage
    Réponses: 5
    Dernier message: 26/07/2013, 15h17
  3. [SQL] Limiter taille tableau html construit avec données sql
    Par syl2042 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/09/2007, 15h23
  4. Réponses: 7
    Dernier message: 16/05/2007, 10h40
  5. [IReport]Tableau a partir de donnée sous Java
    Par Devilpika dans le forum iReport
    Réponses: 3
    Dernier message: 31/01/2007, 10h30

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