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

Fermé
issof16 Messages postés 3 Date d'inscription jeudi 12 septembre 2019 Statut Membre Dernière intervention 14 septembre 2019 - 12 sept. 2019 à 13:14
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 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
A voir également:

3 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
12 sept. 2019 à 13:20
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





0
issof16 Messages postés 3 Date d'inscription jeudi 12 septembre 2019 Statut Membre Dernière intervention 14 septembre 2019
Modifié le 12 sept. 2019 à 14:01
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
12 sept. 2019 à 16:04
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
12 sept. 2019 à 17:58
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
issof16 Messages postés 3 Date d'inscription jeudi 12 septembre 2019 Statut Membre Dernière intervention 14 septembre 2019
14 sept. 2019 à 15:20
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
14 sept. 2019 à 15:56
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