Besoin d'aide s'il vous plait en php/mysql

issof16 Messages postés 4 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
j'ai une base de donnée (Gestion_Contrats) qui contient une Table contrats (ID, année, maitre_ouvrage ,n_contrat, objet_contrat, date_signature, délai_contrat, date expiration ,montant_ttc, consommation financière),
- dans la page index.php j'ai un formulaire pour l'ajout des nouveau contrats
- dans une deuxième page (contrats.php) s'affichent les contrats avec les détails suivants ( année, maitre_ouvrage , objet_contrat, délai_contrat, date expiration), jusqu'ici tout marche très bien.

mon problème:
j'ai une page detail.php qui m'affiche tout les détails des contrats lorsque je clique sur un objet d'une contrat dans la page (contrats.php) et ce n'est pas ce que je veux (je veux afficher que les champs (detail) de contrat sélectionné et pas les autres.

Configuration: Windows / Chrome 77.0.3865.75

3 réponses

  1. issof16 Messages postés 4 Statut Membre
     
    bonjour voila mon code de la page détail.php
    <!DOCTYPE [/html/htmlintro.php3 html]>
    <html lang="fr" dir="ltr">
      <head>
        <meta charset="utf-8" content="c'est une application qui sert a afficher les diffirents contrats, avenants et offres">
        <title> Gestion des Contrats et Avenants - EPIC / CNIC</title>
        <link rel="stylesheet" href="css/style_det.css">
      </head>
      <body>
         <?php
    
                 $con = mysqli_connect('localhost','root','','gestion_contrats') or die(mysqli_error());
                 $[/sql/sqlintro.php3 sql] = "[/contents/1068-sql-commande-select SELECT] annee,maitre_ouvr,n_contrat,objet_contrat,date_signature,delai_contrat,DATE_ADD(date_signature, INTERVAL (delai_contrat) MONTH)date_exp,montant_ttc,consom_fin,(montant_ttc - consom_fin) AS reste_consom,((consom_fin * 100)/montant_ttc) AS reste_pourcon FROM contrats;
                 $ligne = mysqli_query($con,$sql);
                 while ($data = mysqli_fetch_array($ligne)){
                 ?>
                 <tr>
                   <th>Année</th>
                   <td><?php echo $data['annee'];?></td>
                 </tr>
                 <tr>
                   <th>Maitre d'Ouvrage</th>
                   <td><?php echo $data['maitre_ouvr'];?></td>
                 </tr>
                 <tr>
                   <th>N° de Contrat</th>
                   <td><?php echo $data['n_contrat'];?></td>
                 </tr>
                 <tr>
                   <th>Objet de Contrat</th>
                   <td class="objet"><?php echo $data['objet_contrat'];?></td>
                 </tr>
                 <tr>
                   <th>Date de Signature</th>
                   <td><?php echo date('d-m-Y',strtotime($data['date_signature']));?></td>
                 </tr>
                 <tr>
                   <th>Délai Contractuel</th>
                   <td><?php echo $data['delai_contrat'];?></td>
                 </tr>
                 <tr>
                   <th>Date d'Expiration</th>
                   <td><?php echo date('d-m-Y',strtotime($data['date_exp']));?></td>
                 </tr>
                 <tr>
                   <th>Montant TTC</th>
                   <td><?php
                   $data2 = $data['montant_ttc'] ;
                   echo number_format($data2, 2, ',', ' ');?></td>
                 </tr>
                 <tr>
                   <th>Consommation Finanicière</th>
                   <td><?php
                   $conf = $data['consom_fin'];
                   echo number_format($conf, 2, ',', ' ');?></td>
                 </tr>
                 <tr>
                   <th>Reste à Consommer</th>
                   <td><?php
                   $restc = $data['reste_consom'];
                   echo number_format($restc, 2, ',', ' ');?></td>
                 </tr>
                 <tr>
                   <th>Reste à Consommer en %</th>
                   <td><?php echo $data['reste_pourcon'] ,"%";?></td>
                 </tr>
               <?php
                  }
                  ?>
          </body>
    </html>
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Si tu ne veux afficher le détail que d'un seul élément.... il faut utiliser un WHERE dans ta requête SQL...
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        De plus, il semble que tu aies oublié de fermer une quote
        $sql = "SELECT annee,maitre_ouvr,n_contrat,objet_contrat,date_signature,delai_contrat,DATE_ADD(date_signature, INTERVAL (delai_contrat) MONTH)date_exp,montant_ttc,consom_fin,(montant_ttc - consom_fin) AS reste_consom,((consom_fin * 100)/montant_ttc) AS reste_pourcon FROM contrats;
        

        A remplacer par :

        $sql = "SELECT annee,maitre_ouvr
                          ,n_contrat
                          ,objet_contrat
                          ,date_signature
                          ,delai_contrat
                          ,DATE_ADD(date_signature, INTERVAL (delai_contrat) MONTH) AS date_exp
                          ,montant_ttc
                          ,consom_fin
                          ,(montant_ttc - consom_fin) AS reste_consom
                          ,((consom_fin * 100)/montant_ttc) AS reste_pourcon 
        FROM contrats";
        
        0
  2. issof16 Messages postés 4 Statut Membre
     
    bonjour je vous envoi plus de détail en ce qui concerne mon soucis

    1- ma page contrat.php (dont je veux sélectionner un contrat pour afficher plus de detail dans la second page detail.php)


    2- mon code de la page detail.php
    <!DOCTYPE [/html/htmlintro.php3 html]>
    <html lang="fr" dir="ltr">
      <head>
        <meta charset="utf-8" content="c'est une application qui sert a afficher les diffirents contrats, avenants et offres">
        <title> Gestion des Contrats et Avenants - EPIC / CNIC</title>
        <link rel="stylesheet" href="css/style_det.css">
      </head>
      <body>
        <div id="entete">
            <table>
    	       <tr>
          		<td ><img class="logo" src="images/logo_cnic.jpg" alt="logo_cnic"></td>
          		<td class="titre"><h1>CENTRE NATIONAL DE L'INGENIERIE DE LA CONSTRUCTION <br>المركـــز الوطنـــي لهندســـة البنـــاء</h1></td>
          		<td ><img class="logo" src="images/logo_cnic.jpg" alt="logo_cnic"></td>
    	       </tr>
           </table>
         </div>
         <div class="navig">
           <div class="deco">
             <a href="index.php?deconnexion=true">Déconnexion</a>
            <?php
            session_start();
            if (isset($_GET['deconnexion']))
            {
              if ($_GET['deconnexion']==true)
              {
                session_unset();
                header("location:index.php");
              }
            }
            ?>
           </div>
           <div class="nom_util">
             <!-- testé si l'utilisateur est connecté -->
             <?php
               if ($_SESSION['username'] !== "") {
                 $user = $_SESSION['username'];
                 // Afficher un Message
                 echo '<span class="echo">'.$user.'</span>';
               }
             ?>
           </div>
         </div>
           <div class="content">
             <table class="tableau">
                 <?php
                 $con = mysqli_connect('localhost','root','','gestion_contrats') or die(mysqli_error());
                 if (isset($_POST['objet_contrat'])) {
                 $OBJET = $_POST['objet_contrat'];
                 $sql = "SELECT annee
                                ,maitre_ouvr
                                ,n_contrat
                                ,objet_contrat
                                ,date_signature
                                ,delai_contrat
                                ,DATE_ADD(date_signature, INTERVAL (delai_contrat) MONTH)date_exp
                                ,montant_ttc
                                ,consom_fin
                                ,(montant_ttc - consom_fin) AS reste_consom
                                ,((consom_fin * 100)/montant_ttc) AS reste_pourcon
                                FROM contrats WHERE objet_contrat = '.$OBJET.'";
                 $ligne = mysqli_query($sql);
                 while ($data = mysqli_fetch_array($ligne)){
                 ?>
                 <tr>
                   <th>Année</th>
                   <td><?php echo $data['annee'];?></td>
                 </tr>
                 <tr>
                   <th>Maitre d'Ouvrage</th>
                   <td><?php echo $data['maitre_ouvr'];?></td>
                 </tr>
                 <tr>
                   <th>N° de Contrat</th>
                   <td><?php echo $data['n_contrat'];?></td>
                 </tr>
                 <tr>
                   <th>Objet de Contrat</th>
                   <td class="objet"><?php echo $data['objet_contrat'];?></td>
                 </tr>
                 <tr>
                   <th>Date de Signature</th>
                   <td><?php echo date('d-m-Y',strtotime($data['date_signature']));?></td>
                 </tr>
                 <tr>
                   <th>Délai Contractuel</th>
                   <td><?php echo $data['delai_contrat'];?></td>
                 </tr>
                 <tr>
                   <th>Date d'Expiration</th>
                   <td><?php echo date('d-m-Y',strtotime($data['date_exp']));?></td>
                 </tr>
                 <tr>
                   <th>Montant TTC</th>
                   <td><?php
                   $data2 = $data['montant_ttc'] ;
                   echo number_format($data2, 2, ',', ' ');?></td>
                 </tr>
                 <tr>
                   <th>Consommation Finanicière</th>
                   <td><?php
                   $conf = $data['consom_fin'];
                   echo number_format($conf, 2, ',', ' ');?></td>
                 </tr>
                 <tr>
                   <th>Reste à Consommer</th>
                   <td><?php
                   $restc = $data['reste_consom'];
                   echo number_format($restc, 2, ',', ' ');?></td>
                 </tr>
                 <tr>
                   <th>Reste à Consommer en %</th>
                   <td><?php echo $data['reste_pourcon'] ,"%";?></td>
                 </tr>
                 <?php
                  }
                  }
                  ?>
          </body>
    </html>


    3- ma page detail.php qui s'affiche vide


    merci
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Bon...
      Avant de poursuivre je pense qu'il te serait profitable de lire et d'appliquer le contenu de ce lien
      https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

      Il faudrait également que tu gères les éventuelles erreurs e mysqli (et que tu apprennes à écrire du mysqli...)

      Lors de la connexion à la bdd
      https://www.php.net/manual/fr/mysqli.connect-error.php

      Lors de l'exécution de requêtes
      https://www.php.net/manual/fr/mysqli.error.php
      if (!mysqli_query($link,$sql)) {
          printf("Message d'erreur : %s\n", mysqli_error($link));
      }
      


      Je précise également qu'il y a toujours une erreur dans ta requête
      WHERE objet_contrat = '.$OBJET.'";
      

      A remplacer par
      WHERE objet_contrat = '".$OBJET."'";
      
      0