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 de ma requête MySql


Sujet :

PHP & Base de données

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Affichage de ma requête MySql
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    <?php
    try{
        $bdd=new PDO('mysql:host=localhost;dbname=pcg;charset=utf8', 'root','');
        $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);// afficher les erreurs php
    }catch(Exception $e){
        die('Erreur :' . $e->getMessage());
    }
     
    if(!empty($_POST)){
        echo'<script>window.location.href("grandlivre.php")</script>';
    }
    ?>
     
    <!DOCTYPE html>
    <html lang="fr">
     
    <head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="../css/bootstrap.css">
        <link rel="stylesheet" href="../css/style.css">
        <link rel="stylesheet" href="../css/carousel.css">
        <title>Comptabilité</title>
        <script src="../js/jquery.js"></script>
        <script src="../js/bootstrap.min.js"></script>
    </head>
     
    <body>
        <div id="grandlivre">
            <div class="container">
                <div class="row">
                    <div class="col-sm-12">
                        <h1 style="font-size:25px;text-align:center;color:black;">Grand livre</h1>
                        <table>
                            <thead>
                                <tr>
                                    <th class="journal">Journal</th>
                                    <th class="dateecritures">Date</th>
                                    <th class="libelle">Libellé écritures</th>
                                    <th class="debit">Débit</th>
                                    <th class="credit">Crédit</th>
                                    <th class="solde">Solde</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                $comptePrecedent = 0;
                                //Sélection des numéros et noms de compte dans le plan comptable
                                $response = $bdd->query('SELECT * FROM plancomptable');
                                $plancomptable = $response->fetchAll();
                                $response->closeCursor();
     
                                //Sélection des écritures comptables correspondant au numéro de compte
                                $responses = $bdd->query('SELECT * FROM ecriturescomptables E INNER JOIN plancomptable B ON E.numerocompte = B.compte ORDER BY E.numerocompte, E.date_operation');
                                $ecritures = $responses->fetchAll();
                                setlocale(LC_ALL, ['fr_FR.UTF8','fra', 'french']);
                                $responses->closeCursor();
     
                                    foreach( $ecritures as $ecriture ) {
                                        if( $comptePrecedent != $ecriture['compte'] ) {
                                            $dateoperation = new DateTime($ecriture['date_operation']);
                                            $debit = $ecriture['debit'];
                                            $credit = $ecriture['credit'];
                                            echo '<tr class="titrecompte"><th colspan="6">'.htmlspecialchars($ecriture['compte']).'. '.htmlspecialchars($ecriture['libelle_plan']).'</th></tr>'; 
                                        if($debit < 0){
                                            echo '<tr><td>'.htmlspecialchars($ecriture['journal']).'</td><td>'.utf8_encode(strftime('%d %B %Y', $dateoperation->format('U'))).'</td><td>'.htmlspecialchars($ecriture['libelle_comptable']).'</td><td>'.''.'</td><td>'.number_format($credit, 2, ',', ' ').'</td></tr>';
                                          }else {
                                             echo '<tr><td>'.htmlspecialchars($ecriture['journal']).'</td><td>'.utf8_encode(strftime('%d %B %Y', $dateoperation->format('U'))).'</td><td>'.htmlspecialchars($ecriture['libelle_comptable']).'</td><td>'.number_format($debit, 2, ',', ' ').'</td><td>'.''.'</td></tr>';
                                        }
                                        //Calcul des totaux débit et crédit et solde respectif
                                        $response1=$bdd->query('SELECT SUM(debit) AS totaldebiteur, SUM(credit) AS totalcrediteur FROM ecriturescomptables WHERE numerocompte = '.$ecriture['compte'].' GROUP BY numerocompte');
                                        $totaux=$response1->fetchAll();
                                        if (!empty($totaux)){
                                            foreach($totaux as $total){
                                                $compte = $ecriture['compte'];
                                                $libelle_plan = $ecriture['libelle_plan'];
                                                $totaldebiteur = $total['totaldebiteur'];
                                                $totalcrediteur = $total['totalcrediteur'];
                                                $soldedebiteur = $totaldebiteur - $totalcrediteur;
                                                $soldecrediteur = $totalcrediteur - $totaldebiteur;
     
                                                if($totaldebiteur > $totalcrediteur){
                                                    echo '<tr><td>'.'</td><td>'.'</td><td class="totaux">'.'Solde débiteur'.'</td><td class="totaux">'.number_format($totaldebiteur, 2, ',', ' ').'</td><td class="totaux">'.number_format($totalcrediteur, 2, ',', ' ').'</td><td class="totaux">'.number_format($soldedebiteur, 2, ',', ' ').'</td></tr>';
                                                }else {
                                                    echo '<tr><td>'.'</td><td>'.'</td><td class="totaux">'.'Solde créditeur'.'</td><td class="totaux">'.number_format($totaldebiteur, 2, ',', ' ').'</td><td class="totaux">'.number_format($totalcrediteur, 2, ',', ' ').'</td><td class="totaux">'.number_format($soldecrediteur, 2, ',', ' ').'</td></tr>';
                                                }
                                            }
                                        }
                                            // Insertion et Mise à jour solde
                                            $insertionMAJsoldes = $bdd->prepare('INSERT INTO balance (compte, libelle_plan, soldedebiteur, soldecrediteur) VALUES ( :compte, :libelle_plan, :soldedebiteur, :soldecrediteur ) ON DUPLICATE KEY UPDATE compte = :compte, libelle_plan = :libelle_plan, soldedebiteur = :soldedebiteur, soldecrediteur = :soldecrediteur;');
                                            $insertionMAJsoldes->execute( array(
                                                'compte' => $compte,
                                                'libelle_plan' => $libelle_plan,
                                                'soldedebiteur' => $soldedebiteur,
                                                'soldecrediteur' => $soldecrediteur
                                            ));
                                            $insertionMAJsoldes->closeCursor();
                                        }
                                $comptePrecedent = $ecriture['compte'];
                                }
                                ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
     
        <script type="application/javascript" src="../js/jquery-3.4.1.min.js"></script>
        <script src="../js/script.js"></script>
    </body>
     
    </html>
    Bonjour,

    Dans la partie "Sélection des écritures comptables correspondant au numéro de compte", ma requête Sql fonctionne parfaitement. Mon problème se situe dans l'affichage de résultats de ma requête à partir du foreach. Cela m'affiche qu'un seul résultat et non tous les résultats souhaités.

    Merci d'avance.
    Dernière modification par Invité ; 16/02/2020 à 17h14.

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

Discussions similaires

  1. [MySQL] Problème avec l'affichage de ma requête mysql
    Par vins31 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/06/2007, 20h18
  2. Problème d'affichage d'une requête
    Par alexandrebergercyr dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/05/2007, 20h40
  3. [MySQL] Problème d'affichage d'une requête
    Par frakosun dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/04/2007, 18h22
  4. Réponses: 1
    Dernier message: 07/08/2006, 10h22
  5. problème $_POST et $_SESSION et requête MYSQL
    Par GarGamel55 dans le forum Requêtes
    Réponses: 9
    Dernier message: 25/01/2006, 22h10

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