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

Messages postés
3
Date d'inscription
jeudi 12 septembre 2019
Statut
Membre
Dernière intervention
14 septembre 2019
- - Dernière réponse : jordane45
Messages postés
26349
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 septembre 2019
- 14 sept. 2019 à 15:56
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
Afficher la suite 

3 réponses

Messages postés
26349
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 septembre 2019
1796
0
Merci
Bonjour
Et... Sans voir ton code impossible de t'aider de te répondre...

NB:https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code





Commenter la réponse de jordane45
Messages postés
3
Date d'inscription
jeudi 12 septembre 2019
Statut
Membre
Dernière intervention
14 septembre 2019
0
Merci
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>
jordane45
Messages postés
26349
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 septembre 2019
1796 -
Si tu ne veux afficher le détail que d'un seul élément.... il faut utiliser un WHERE dans ta requête SQL...
jordane45
Messages postés
26349
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 septembre 2019
1796 > jordane45
Messages postés
26349
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 septembre 2019
-
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";
Commenter la réponse de issof16
Messages postés
3
Date d'inscription
jeudi 12 septembre 2019
Statut
Membre
Dernière intervention
14 septembre 2019
0
Merci
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
jordane45
Messages postés
26349
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 septembre 2019
1796 -
Bon...
Avant de poursuivre je pense qu'il te serait profitable de lire et d'appliquer le contenu de ce lien
http://www.commentcamarche.net/faq/48399-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."'";
Commenter la réponse de issof16