"php : changer le total solde pendent la modification"

Fermé
harm21 Messages postés 11 Date d'inscription jeudi 17 mars 2022 Statut Membre Dernière intervention 19 mars 2022 - Modifié le 17 mars 2022 à 12:50
Izzara82 Messages postés 26 Date d'inscription dimanche 14 mars 2021 Statut Membre Dernière intervention 11 janvier 2023 - 18 mars 2022 à 20:44
Bonjour à tous. Je débute en php et j'ai besoin de vos conseils. J'ai deux table commande et solde avec une seule entrée . dans le formulaire ajouter commande j'ai le mode de paiement (visa et espèce) et au niveau de solde j'ai total visa et total espèce. A chaque fois que j'ajoute une commande le montant s'ajoute à total espèce ou total visa en fonction du mode de paiement choisi. Au cas ou la personne qui insère les données se trompe et met visa eu lieu de espèce, je voudrais que le montant ajouter à total visa puisse venir au niveau de total espèce. Et je sais pas comment faire.


Formulaire ajouter commande
<?php
    try {
      $bdd = new PDO('mysql:host=localhost;dbname=best', 'root', 'root');
  } catch(Exception $e) {
      die('Erreur :'.$e->getMessage());
  }                                                                                      
    $req= $bdd -> query('SELECT * FROM solde WHERE id = 1');
    $data = $req->fetch();
    $total_visa = $data['total_visa'];
    $total_espece = $data['total_espece'];

    
?>
<form action="ajouter.php" method="POST" style="padding: 0;" source="custom" name="form">
                <label for="date-3e55" class="u-label">Date Commande</label>
                <input type="date" placeholder="MM/DD/YYYY" id="date-3e55" name="date_Commande" class="u-input u-input-rectangle u-white" required><br>

                <label for="date-3e55" class="u-label">Heure Commande</label>
                <input type="time" placeholder="HH:MM:SS" id="date-3e55" name="heure_Commande" class="u-input u-input-rectangle u-white" required><br>

                <label for="name-dfeb" class="u-label">Plats Commandé</label>
                <input type="text" placeholder="Entrer le plats du Client" id="name-dfeb" name="plats" class="u-input u-input-rectangle u-white" required><br>

                <label for="text-920c" class="u-label">Prix du plats</label>
                <input type="number" min=0 placeholder="Entrer le montant du plat" id="price" name="prix" class="u-input u-input-rectangle u-white" required><br>
                <p style="color: red; font-size: 12px; margin-top: -20px; display: none">Prix non correcte !</p>

                <label for="text-dc88" class="u-label">Qté</label>
                <input type="number" min=0 placeholder="Quantité Commander" id="qty" name="qte" class="u-input u-input-rectangle u-white" required><br>
                <p style="color: red; font-size: 12px; margin-top: -20px; display: none">Quantité non correcte !</p>

                <label for="text-d72a" class="u-label">Prix plats total</label>
                <input type="number" placeholder="Entrer le prix total du plats" id="amount" name="prix_total"  class="u-input u-input-rectangle u-white" required readonly><br>
              
                <label for="name-294a" class="u-label">Nom et prénoms Client</label>
                <input type="text" placeholder="Entrez le nom Client" id="name-294a" name="nom_Client" class="u-input u-input-rectangle u-white" required><br>
              
                <label for="phone-0544" class="u-label">Téléphone Client</label>
                <input type="tel" placeholder="Entrez le numero de téléphone"  name="numero_Client" class="u-input u-input-rectangle u-white" required><br>
              
                <label for="message-d70e" class="u-label">Adresse Client</label>
                <textarea placeholder="Indiquez l'adresse du Clients" rows="4" cols="50" id="message-d70e" name="adresse_Client" class="u-input u-input-rectangle u-white" required></textarea><br>

                <label for="phone-0544" class="u-label">Frais livraison</label>
                <input type="number" placeholder="Entrez frais de livraison" id="frais"  name="frais_livraison" class="u-input u-input-rectangle u-white" required><br>
                <p style="color: red; font-size: 12px; margin-top: -20px; display: none">frais livraison non correcte !</p>

                <label for="phone-0544" class="u-label">Mode de paiement</label>
                <select id="paiement" name="mode_paiement" class="u-input u-input-rectangle u-white">
                  <option value="visa">Mobile Money</option>
                  <option value="especes">En Especes</option>
                </select><br>  
                
                <label for="phone-0544" class="u-label">Total Commande</label>
                <input type="number" placeholder="Entrez le total commande" id ="total"  name="montant" class="u-input u-input-rectangle u-white" required readonly><br>

                <label for="phone-0544" class="u-label">Livreur</label>
                <select id="livreur" name="livreur"  class="u-input u-input-rectangle u-white" required>
                  <option value="Mareld">Mr Mareld</option>
                  <option value="Yannick">Mr Yannick</option>
                  <option value="Olive">Mme Olive</option>
                  <option value="Beni">Mr Béni</option>
                  <option value="Xavier">Mr Xavier</option>
                  <option value="Desire">Mr Désiré</option>
                  <option value="Hugues">Mr Hugues</option>
                  <option value="Kenneth">Mme Kenneth</option>
                  <option value="Sylvania">Mme Sylvania</option>
                  <option value="Claude">Mr Claude</option>
                  <option value="Jean-Eude">Mr Jean-Eude</option>
                  <option value="DG">Mr DG</option>
                </select><br>

                <label for="phone-0544" class="u-label">Statut</label>
                <select id="statut" name="statut" class="u-input u-input-rectangle u-white" required>
                  <option value="Commande reçue">Commande reçue</option>
                  <option value="Commande en cours de Préparation">Commande en cours de Préparation</option>
                  <option value="Commande en cours de Livraison">Commande en cours deLivraison</option>
                  <option value="Commande Terminée">Commande Terminer</option>
                </select><br>  

                <label><b>Total visa</b></label>
                <input type="number" placeholder="" disabled="disabled" name="total_visa" value=<?php echo isset($total_visa) ? $total_visa : ''; ?>><br><br>
                 <label><b>Total espece</b></label>
                <input type="number" placeholder="" disabled="disabled" name="total_espece" value=<?php echo isset($total_espece) ? $total_espece : ''; ?>><br><br>
                <input  type="submit" id='submit' value='Ajouter' name='valider' class="u-border-none u-btn u-btn-submit u-button-style u-custom-color-1 u-hover-custom-color-2 u-text-white u-btn-1" >
</form>
          
  <script>
    let qty = document.getElementById('qty')
    let price = document.getElementById('price')
    let amount = document.getElementById('amount')
    let frais = document.getElementById('frais')
    let total = document.getElementById('total')
    qty.addEventListener('keyup', function(){
      if(qty.value < 0) {
        qty.value = 0
        //qty.closest('p').style.display = 'block'
      } else {
        //qty.closest('p').style.display = 'none'
        amount.value = qty.value * price.value
      }
    })
    price.addEventListener('keyup', function(){
      if(price.value < 0) {
        price.value = 0
        //qty.closest('p').style.display = 'block'
      } else {
        //qty.closest('p').style.display = 'none'
        amount.value = qty.value * price.value
      }
    })
    frais.addEventListener('keyup', function(){
      if(frais.value < 0) {
        frais.value = 0
        //qty.closest('p').style.display = 'block'
      } else {
        //qty.closest('p').style.display = 'none'
        total.value = parseInt(amount.value) + parseInt(frais.value)
      }
    })
    console.log(amount)
  </script>

traitement du formailaire ajouter.php
<?php
    //ini_set(‘display_errors’,’on’);
    try {
        $bdd = new PDO('mysql:host=localhost;dbname=best', 'root', 'root');
    } catch(Exception $e) {
        die('Erreur :'.$e->getMessage());
    }

    if(isset($_POST)){
        $plats=$_POST['plats'];
        $prix=$_POST['prix'];
        $qte=$_POST['qte'];
        $prix_total=$_POST['prix_total'];
        $nom_Client=$_POST['nom_Client'];
        $numero_Client=$_POST['numero_Client'];
        $adresse_Client=$_POST['adresse_Client'];
        $date_Commande=$_POST['date_Commande'];
        $heure_Commande=$_POST['heure_Commande'];
        $frais_livraison=$_POST['frais_livraison'];
        $mode_paiement=$_POST['mode_paiement'];
        $montant=$_POST['montant'];
        $statut=$_POST['statut'];
        $livreur=$_POST['livreur'];
    }
    

    $req= $bdd -> prepare('INSERT INTO commandes (plats, prix, qte, prix_total, nom_Client, numero_Client, adresse_Client, date_Commande, heure_Commande, frais_livraison, mode_paiement, montant, statut, livreur) values (:plats, :prix, :qte, :prix_total, :nom_Client, :numero_Client, :adresse_Client, :date_Commande, :heure_Commande, :frais_livraison, :mode_paiement, :montant, :statut, :livreur)');
    //var_dump($req); die;
    $prix_total = $qte * $prix;


    $req->execute(array(
        'prix_total' => $prix_total,
        'nom_Client' => $nom_Client,
  'plats' => $plats,
        'prix' => $prix, 
        'qte' => $qte,
  'numero_Client' => $numero_Client,
  'adresse_Client' => $adresse_Client,
        'date_Commande' => $date_Commande,
        'heure_Commande' => $heure_Commande,
        'frais_livraison' => $frais_livraison,
        'mode_paiement' => $mode_paiement,
        'montant' => $montant,
        'statut' => $statut,
        'livreur' => $livreur,
 
  
    ));

    $req= $bdd -> query('SELECT * FROM solde WHERE id = 1');
    $data = $req->fetch();
    
    $total_visa = $data['total_visa'];
    $total_espece = $data['total_espece'];
    

    if ($mode_paiement == "visa") {

        $total_visa = $total_visa + $montant;
    }
     if ($mode_paiement == "espece") {

        $total_espece = $total_espece + $montant;
    }
   
    $req= $bdd -> prepare('UPDATE solde SET total_visa = :total_visa, total_espece = :total_espece
     WHERE id= :id') ;


    $req->execute(array(
        
        'total_espece' => $total_espece,
 'total_visa => $total_visa,
        
        'id' => 1
    ));     

     header('Location: Liste-Commande.php');
  
    
?>


Formulaire modifier la commande Edit-commande.php
<?php
try {
        $bdd = new PDO('mysql:host=localhost;dbname=best', 'root', 'root');
    } catch(Exception $e) {
        die('Erreur :'.$e->getMessage());
    }
$req= $bdd -> query('SELECT * FROM solde WHERE id = 1');
    $data = $req->fetch();
    
    $total_visa = $data['total_visa'];
    $total_espece = $data['total_espece'];
    

  if ($mode_paiement == "visa") {

      $total_visa = $total_visa + $montant;
      $total_visa = $total_visa - $montant;

  }
  if ($mode_paiement == "especes") {

      $total_espece = $total_espece + $montant;
      $total_espece = $total_espece - $montant;

      }
?>
<?php

    //ini_set(‘display_errors’,’on’);
    try {
      $bdd = new PDO('mysql:host=localhost;dbname=best', 'root', 'root');
  } catch(Exception $e) {
      die('Erreur :'.$e->getMessage());
  }

if( isset($_GET["id"]) AND is_numeric($_GET["id"]))
    {
        $id= htmlentities($_GET['id']);
        $ma_requete_sql="SELECT * FROM commandes WHERE id=".$id.";";
        $reponse= $bdd ->query($ma_requete_sql);
        $data=$reponse -> fetch();
    }

    if( isset($_POST["id"]) != '')
    {
        $data['plats']=htmlentities($_POST['plats']);
        $data['prix']=htmlentities($_POST['prix']);
        $data['qte']=htmlentities($_POST['qte']);
        $data['prix_total']=htmlentities($_POST['prix_total']);
        $data['nom_Client']=htmlentities($_POST['nom_Client']);
        $data['numero_Client']=htmlentities($_POST['numero_Client']);
        $data['adresse_Client']=htmlentities($_POST['adresse_Client']);
        $data['date_Commande']=htmlentities($_POST['date_Commande']);
        $data['heure_Commande']=htmlentities($_POST['heure_Commande']);
        $data['frais_livraison']=htmlentities($_POST['frais_livraison']);
        $data['mode_paiement']=htmlentities($_POST['mode_paiement']);
        $data['livreur']=htmlentities($_POST['livreur']);
        $data['montant']=htmlentities($_POST['montant']);
        $data['statut']=htmlentities($_POST['statut']);

        $ma_requete_sql="UPDATE commandes SET date_Commande='".$data['date_Commande']."',
        heure_Commande='".$data['heure_Commande']."',
        prix='".$data['prix']."',
        qte='".$data['qte']."',
        prix_total='".$data['prix_total']."',
        nom_Client='".$data['nom_Client']."',
        numero_Client='".$data['prix_total']."',
        frais_livraison='".$data['frais_livraison']."',
        mode_paiement='".$data['mode_paiement']."',
        livreur='".$data['livreur']."',
        montant='".$data['montant']."',
        statut='".$data['statut']."',
        adresse_Client='".$data['adresse_Client']."'
        WHERE id = ".$_POST['id'].";";

        //var_dump($ma_requete_sql); die();
        $bdd->exec($ma_requete_sql);
        
        header("Location: Liste-Commande.php");
    }
?>
<form action="Edit-Commande.php" method="POST" style="padding: 0;" source="custom" name="form">
                  <input type="hidden" name="id" value="<?php if (isset($_GET["id"])) echo $_GET["id"]; else echo '';?>">
                  <label for="date-3e55" class="u-label">Date Commande</label>
                  <input type="date" placeholder="MM/DD/YYYY" id="date-3e55" name="date_Commande" value= "<?php if (isset($data['date_Commande'])) echo $data['date_Commande'];?>" class="u-input u-input-rectangle u-white" ><br>

                  <label for="date-3e55" class="u-label">Heure Commande</label>
                  <input type="time" placeholder="HH:MM:SS" id="date-3e55" name="heure_Commande" value= "<?php if (isset($data['heure_Commande'])) echo $data['heure_Commande'];?>" class="u-input u-input-rectangle u-white" ><br>

                  <label for="name-dfeb" class="u-label">Plats Commandé</label>
                  <input type="text" placeholder="Entrer le plats du Client" id="name-dfeb" name="plats" value= "<?php if (isset($data['plats'])) echo $data['plats'];?>" class="u-input u-input-rectangle u-white" ><br>
                
                  <label for="text-920c" class="u-label">Prix du plats</label>
                  <input type="number" placeholder="Entrer le montant du plat" id="price" name="prix" value= "<?php if (isset($data['prix'])) echo $data['prix'];?>" class="u-input u-input-rectangle u-white" ><br>
                  <p style="color: red; font-size: 12px; margin-top: -20px; display: none">Prix non correcte !</p>

                  <label for="text-dc88" class="u-label">Qté</label>
                <input type="number" placeholder="Quantité Commander" id="qty" name="qte" value= "<?php if (isset($data['qte'])) echo $data['qte'];?>" class="u-input u-input-rectangle u-white" ><br>
                <p style="color: red; font-size: 12px; margin-top: -20px; display: none">Quantité non correcte !</p>

                <label for="text-d72a" class="u-label">Prix total de commande</label>
                <input type="number" placeholder="Entrer le prix total de Commande" id="amount" name="prix_total" value= "<?php if (isset($data['prix_total'])) echo $data['prix_total'];?>" class="u-input u-input-rectangle u-white" readonly ><br>
              
                <label for="name-294a" class="u-label">Nom et prénoms Client</label>
                <input type="text" placeholder="Entrez le nom Client" id="name-294a" name="nom_Client" value= "<?php if (isset($data['nom_Client'])) echo $data['nom_Client'];?>" class="u-input u-input-rectangle u-white" ><br>
              
                <label for="phone-0544" class="u-label">Téléphone Client</label>
                <input type="tel" placeholder="Entrez le numero de téléphone"  name="numero_Client" value= "<?php if (isset($data['numero_Client'])) echo $data['numero_Client'];?>" class="u-input u-input-rectangle u-white" ><br>
                
                <label for="message-d70e" class="u-label">Adresse Client</label>
                <input placeholder="Indiquez l'adresse du Clients" rows="4" cols="50" id="message-d70e" name="adresse_Client" value= "<?php if (isset($data['adresse_Client'])) echo $data['adresse_Client'];?>" class="u-input u-input-rectangle u-white" > <br>
                
                <label for="message-d70e" class="u-label">Frais livraison</label>
                <input placeholder="Indiquez le frais de livraison" id="frais" rows="4" cols="50"  name="frais_livraison" value= "<?php if (isset($data['frais_livraison'])) echo $data['frais_livraison'];?>" class="u-input u-input-rectangle u-white" > <br>
                <p style="color: red; font-size: 12px; margin-top: -20px; display: none">frais livraison non correcte !</p>

                <label for="phone-0544" class="u-label">Livreur</label>
                <select id="livreur" name="livreur"  class="u-input u-input-rectangle u-white" required>
                  <option value="Candite">Mr Candite</option>
                  <option value="Mareld">Mr Mareld</option>
                  <option value="Yannick">Mr Yannick</option>
                  <option value="Olive">Mme Olive</option>
                  <option value="Beni">Mr Béni</option>
                  <option value="Xavier">Mr Xavier</option>
                  <option value="Desire">Mr Désiré</option>
                  <option value="Hugues">Mr Hugues</option>
                  <option value="Kenneth">Mme Kenneth</option>
                  <option value="Sylvania">Mme Sylvania</option>
                  <option value="Claude">Mr Claude</option>
                  <option value="Jean-Eude">Mr Jean-Eude</option>
                  <option value="DG">Mr DG</option>
                </select><br>

                <label for="phone-0544" class="u-label">Mode de paiement</label>
                <select id="paiement" name="mode_paiement" class="u-input u-input-rectangle u-white">
                  <option value="visa">visa</option>
                  <option value="especes">En Especes</option>
                  
                  
                </select><br>  
                <label for="message-d70e" class="u-label">Montant Total Commande</label>
                <input placeholder="Indiquez le montant total de commande" rows="4" cols="50" id="total" name="montant" value= "<?php if (isset($data['montant'])) echo $data['montant'];?>" class="u-input u-input-rectangle u-white" > <br>

                <label for="message-d70e" class="u-label">Statut</label>
                <input placeholder="Indiquez Statut Commande" rows="4" cols="50" id="message-d70e" name="statut" value= "<?php if (isset($data['statut'])) echo $data['statut'];?>" class="u-input u-input-rectangle u-white" > <br>
                <label><b>Total momo</b></label>
                <input type="number" placeholder="" disabled="disabled" name="total_momo" value=<?php echo isset($total_momo) ? $total_momo : ''; ?>><br><br>
                <label><b>Total especes</b></label>
                <input type="number" placeholder="" disabled="disabled" name="total_espece" value=<?php echo isset($total_espece) ? $total_espece : ''; ?>><br><br>
                <label><b>Total Crédit</b></label>
                <input type="number" placeholder="" disabled="disabled" name="total_credit" value=<?php echo isset($total_credit) ? $total_credit : ''; ?>><br><br>
                <label><b>Total Commande</b></label>
                <input type="number" placeholder="" disabled="disabled" name="total_commande" value=<?php echo isset($total_commande) ? $total_commande : ''; ?>><br><br>
                <label><b>Total depense</b></label>
                <input type="number" placeholder="" disabled="disabled" name="total_depense" value=<?php echo isset($total_depense) ? $total_depense : ''; ?>><br><br>
                <label><b>Total recolte</b></label>
                <input type="number" placeholder="" disabled="disabled" name="total_recette" value=<?php echo isset($total_recette) ? $total_recette : ''; ?>><br><br>
                
                <input  type="submit" id='submit' value='Modifier' name='modifier' class="u-border-none u-btn u-btn-submit u-button-style u-custom-color-1 u-hover-custom-color-2 u-text-white u-btn-1" >
  </form>


Message modifié par la modération
Pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE
A voir également:

3 réponses

Whismeril Messages postés 19049 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 5 juin 2024 913
17 mars 2022 à 11:42
Bonjour

Je ne code pas en php, mais en l’état, il y a assez peu de chances que quelqu’un se penche sur ton sujet car tu n’as pas utilisé les balises de codes et que du coup il est illisible.

Merci de le reposter en suivant ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
Izzara82 Messages postés 26 Date d'inscription dimanche 14 mars 2021 Statut Membre Dernière intervention 11 janvier 2023 1
17 mars 2022 à 11:54
Une fois le message correctement posté, voir aussi le gestion des erreur PDO. Ensuite, je pense que quelqu'un pourra peut-être t'aider.

https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
0
Izzara82 Messages postés 26 Date d'inscription dimanche 14 mars 2021 Statut Membre Dernière intervention 11 janvier 2023 1
18 mars 2022 à 20:44
Bonsoir,

Peut-être implémenter un élément permettant clairement de distinguer ces 2 moyens de paiements et notamment les paiements par carte et mettre une condition dessus pour alerter le client ou l'interpeller.

En l'état je ne vois pas comment faire autrement puisque l'erreur sera déjà mise en base de données et elle sera invérifiable jusqu'au moment du paiement définitif où là tu t'apercevras que ton client s'est trompé.
0