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 :

Grouper par noms avec lignes dynamiques [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de c3dric49000
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2016
    Messages : 22
    Par défaut Grouper par noms avec lignes dynamiques
    Bonjour,

    Je vous explose en gros le fonctionnement de mon script :
    - J'ai deux Bases : Entreprises & Livraisons

    J'ai un formulaire pour les commandes, celui-est dynamique pour les intitulés, Quantité Prix et total (+ et -)
    Selon le nombre de commande effectuées, cela ajoute une ligne de plus dans ma table (si 3 intitulés = 3 lignes pour la facture)

    Mon probleme:

    J'ai un tableau qui m'affiche toutes les données de ma table Livraison que je doit faire ce jour.
    Actuellement celui-ci ressemble à ça :

    Code Tableau 1 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    23.06.2016 | ETS1 | ARTICLE1
    22.06.2016 | ETS1 | ARTICLE2
     
    22.06.2016 | ETS2 | ARTICLE1
    22.06.2016 | ETS2 | ARTICLE2
     
    22.06.2016 | ETS3 | ARTICLE1

    Comment je peut faire pour que mon tableau ressemble à cela

    Code Tableau 2 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    22.06.2016 | ETS1 
    -ARTICLE1 / ARTICLE2 / ARTICLE3 / ARTICLE4
     
    22.06.2016 | ETS2 
    -ARTICLE1 / ARTICLE2 
     
    22.06.2016 | ETS3 
    -ARTICLE1

    J'ai essayé avec des GROUP BY mais rien à faire, je me demande même si ma BDD est bien faite, à savoir que j'utilise un tableau dynamique http://www.jqueryscript.net/demo/jQu...ap-Table-Rows/

    Ma requete simple qui m'affiche le tableau 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $reponse = $bdd->query('SELECT * FROM tb_livraison_pro 
    INNER JOIN tb_professionnel ON tb_professionnel.id_entreprise = tb_livraison_pro.id_entreprise 
    WHERE datel <=> CURDATE()
    ORDER BY datel DESC ');
    Merci à vous, en espérant que j'ai été le plus clair possible.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Bonjour,

    Je n'ai pas assez de détail sur la structure de tes tables pour te faire un exemple, mais tu peux chercher autour de la fonction d'aggrégation "GROUP_CONCAT" de mysql pour obtenir ce que tu souhaites.
    La doc est ici.

    Espérant que cela t'aide.

  3. #3
    Membre averti Avatar de c3dric49000
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2016
    Messages : 22
    Par défaut
    Merci à toi je regarde cela je ne connais pas GROUP_CONCAT

    Voila mes tables de test :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TABLE `tb_professionnel` (
      `id_entreprise` int(11) NOT NULL,
      `nom_ets` text CHARACTER SET utf8 NOT NULL,
      `siret` text CHARACTER SET utf8 NOT NULL,
      `titre` text CHARACTER SET utf8 NOT NULL,
      `nom_contact` text CHARACTER SET utf8 NOT NULL,
      `prenom_contact` text CHARACTER SET utf8 NOT NULL,
      `adresse` text CHARACTER SET utf8 NOT NULL,
      `cp` text CHARACTER SET utf8 NOT NULL,
      `ville` text CHARACTER SET utf8 NOT NULL,
      `tel1` text CHARACTER SET utf8 NOT NULL,
      `tel2` text CHARACTER SET utf8 NOT NULL,
      `fax` text CHARACTER SET utf8 NOT NULL,
      `email` text CHARACTER SET utf8 NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE `tb_livraison_pro` (
      `id_livraison_pro` int(11) NOT NULL,
      `id_entreprise` int(11) NOT NULL,
      `datel` date NOT NULL,
      `heurel` text NOT NULL,
      `designation` text NOT NULL,
      `conditionnement` text NOT NULL,
      `quant` text NOT NULL,
      `pu` text NOT NULL,
      `total` text NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Un exemple :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nom_ets, datel, GROUP_CONCAT(Distinct designation separator ' - ') as listeArticles 
    FROM tb_livraison_pro INNER JOIN tb_professionnel ON tb_professionnel.id_entreprise = tb_livraison_pro.id_entreprise 
    WHERE datel <=> CURDATE() Group By nom_ets ORDER BY datel DESC

    Tu peux aussi faire un tri :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nom_ets, datel, GROUP_CONCAT(Distinct designation Order By designation desc separator ' - ') as listeArticles 
    FROM tb_livraison_pro INNER JOIN tb_professionnel ON tb_professionnel.id_entreprise = tb_livraison_pro.id_entreprise 
    WHERE datel <=> CURDATE() Group By nom_ets ORDER BY datel DESC

    Bref c'est une fonction assez puissante, qui vaut le coup d'être étudiée.

  5. #5
    Membre averti Avatar de c3dric49000
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2016
    Messages : 22
    Par défaut
    Merci à toi EddiGordo, en effet c'est assez puissant apparemment étant données que je n'arrive à rien dans mon fichier (alors qu'elle fonctionne très bien dans phpMyAdmin)

    Voici une partie du code que j'utilise dans l'ancienne version dynamique.

    Encore merci je replonge la dessus

    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
    $reponse = $bdd->query('SELECT * FROM tb_livraison_pro 
    INNER JOIN tb_professionnel ON tb_professionnel.id_entreprise = tb_livraison_pro.id_entreprise 
    WHERE datel <=> CURDATE()
    ORDER BY datel DESC ');
     
    while ($donnees = $reponse->fetch())
     
    {
    echo '<tbody>';
    echo '<tr>';
    echo '<td>' .$donnees['heurel']. '</td>';
    echo ' <td>' .$donnees['nom_ets']. '</td>';
    echo ' <td>' .$donnees['cp']. '</td>';
    echo ' <td>' .$donnees['ville']. '</td>';
    echo ' <td>' .$donnees['tel1']. '</td>';
    echo ' </tr>';
     
    echo '<tr>';
    echo ' <td colspan="5">';
    echo ' <ul>';
    echo '   <li>' .$donnees['quant']. ' ' .$donnees['conditionnement']. ' - ' .$donnees['designation']. '</li>';
    echo '   <li> PU: ' .$donnees['pu']. ' € / TOTAL: ' .$donnees['total']. ' €</li>';
    echo '  </ul></td>';
    echo '   </tr>';
     
    ?>

  6. #6
    Membre averti Avatar de c3dric49000
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2016
    Messages : 22
    Par défaut
    Encore merci à toi EddiGordo, ce matin j'ai réussi et cela fonctionne enfin

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/02/2007, 12h10
  2. probleme de valeur par défaut pour dsum
    Par galaad666 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/10/2006, 15h58
  3. Réponses: 1
    Dernier message: 18/07/2006, 16h44
  4. probleme pour le format jpeg par raport à access
    Par sailten dans le forum Access
    Réponses: 4
    Dernier message: 16/06/2006, 14h30
  5. Excel:probleme pour transformer du texte en nombre par macro
    Par pcheval dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/11/2005, 22h18

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