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 :

Jointure mysql : affichage en colonne des données de la table jointe (export Excel)


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Jointure mysql : affichage en colonne des données de la table jointe (export Excel)
    Bonjour à tous,

    Je suis nouveau sur ce forum et peu expérimenté en PHP (désolé).

    Le contexte : préparer la déclaration de TVA pour une activité de tourisme : les montants liés à la location sont à un taux de TVA de 20%, les montants liés aux repas sont à un taux de TVA de 10%.

    Les tables : j'effectue la jointure entre 2 tables :
    "ijpx_rentalot_plus_bookings" : table des données de location (nom, dates, adresse, montant location ...)
    "ijpx_rentalot_plus_bookingextras" : table des suppléments pour chaque location, pour faire simple considérons que cette table ne comporte que 2 types de suppléments :
    <> extra_id = 7 concerne un supplément de location (TVA à 20%)
    <> extra_id= 2 concerne les repas (TVA à 10%)

    Image de la table des suppléments
    Nom : table_supplements.jpg
Affichages : 360
Taille : 170,8 Ko

    L'objectif : exporter sous Excel les données de 2 tables jointes et de présenter en colonnes les données de la table jointe. L'idée est d'obtenir des colonnes de montant ayant des taux de TVA homogènes, et donc permettre des calculs simples sous Excel.

    Ci-dessous l'export obtenu et l'export souhaité
    Nom : exemple_export_excel.jpg
Affichages : 296
Taille : 169,2 Ko

    Ci-dessous un extrait de mon code
    Nom : extrait_code.jpg
Affichages : 320
Taille : 130,3 Ko

    Je remercie par avance toute idée ou piste de réflexion.
    A bientôt.

    Xavier

  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
    La prochaine met ton code directement dans le message au lieu de mettre une image.

    Pour ton affichage, tu peux simplement classer tes extras par booking :
    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
    <?php
    // on recupère et classe les extras :
    $reponse = $bdd->query('SELECT booking_id, extra_id, quantity, total_price FROM ijpx_rentalot_plus_bookingextras');
    while ($row = $reponse->fetch(PDO::FETCH_ASSOC)) {
       $dataExtra[$row['booking_id']][$row['extra_id']] = array('quantity'=>$row['quantity'], 'total_price'=>$row['total_price']);
    }
     
     
    $tblExtra = array(2, 7);
     
    // on recupère les booking 
    $reponse = $bdd->query('SELECT id, unit_name, surname, base_price FROM ijpx_rentalot_plus_booking');
    while ($row = $reponse->fetch(PDO::FETCH_ASSOC)) {
       echo $row['unit_name'] . ';' . $row['surname'] . ';' . $row['base_price'];
       // on affiche les extra correspondant s'ils existent
       foreach ($tblExtra as $extra_id) {
           if (isset($dataExtra[$row['id']][$extra_id])) {
                echo ';' . $extra_id . ';' . implode(';', $dataExtra[$row['id']][$extra_id]);
           }
           else {
                echo ';;;;';
           }
       }
       echo "\r\n";
    }
    Au passage n'écris pas des trucs comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (empty($_POST['Envoi'])) { $fichier = ''; }
    print $fichier;
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_POST['Envoi'])) {
     // ton traitement
    }
    car a quoi cela sert de faire tout le traitement du dessus si à la fin tu décrètes qu'il n'y a rien à faire si ton $_POST n'est pas là.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci infiniment, c'est vraiment très sympa d'avoir répondu aussi rapidement et si précisément.
    Je te tiens au courant si la mise en oeuvre est ok.
    Merci également pour les petits conseils annexes, par contre je n'ai pas trouvé comment insérer le code dans le message comme tu l'as fait.
    A bientôt.
    Xavier

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Points : 89
    Points
    89
    Par défaut
    Tu as une balise code avec le #, juste à droite de la bulle pour les balises "quote"

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci pour l'astuce

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour "Sabotage", je viens de tester, l'export fonctionne à merveille, les suppléments se placent bien sur une seule ligne de réservation.
    Merci encore et où dois-je envoyer les chocolats ?

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

Discussions similaires

  1. Importer des données d'une table Access dans Excel
    Par moussss86 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2013, 10h30
  2. Affichage en colonnes des données
    Par ogelix dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/07/2009, 12h53
  3. affichage des données d'une table mysql
    Par chrisl0 dans le forum Langage
    Réponses: 1
    Dernier message: 05/02/2009, 18h21
  4. Réponses: 1
    Dernier message: 23/12/2006, 23h39
  5. Réponses: 2
    Dernier message: 15/12/2006, 10h31

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