inserer un calcul dans la table

Rechercher
Boutique en ligne, solution e-commerce, script PHP et PERL : RAYNETTE

inserer un calcul dans la table

Par zacharie  -  6 reponses  -  Le 10/08/2016 14:46  -  Editer  - 

Bonjour, j'aimerai mettre sur pied un programme qui permet de calculer les valeur qu'on entre dans un tableau , exemple calculer la moyenne, l'effectif total et autre calcul afférent sur un tableau statistique, mon probleme :

  1. j'ai fais un tableau ou l'utilisateur devra entré les modalité et les effectifs mais. le but est de calculer automatiquement l'effectif total quand il clique sur effectif total (inscrire toutes les donné dans une table)
  2. après avoir cliquer sur effectif total il est dirigé vers une autre page ou les informations précédente sont affiché y compris l'effectif total
  3. dans cette nouvelle fenetre par un select il peut sélectionner les différent calcul a faire sur le tableau j'ai fait un tableau à six entrée, et auusi une fonction qui calcule la somme de six chiffre

mon code

    <?php  
    if(!empty($_POST)){  

       $erreurs = array();  
       if(empty($erreurs)){  
           include 'first_fonc.php';  
           $eff_1 = $_POST['eff_1'];  
           $eff_2 = $_POST['eff_2'];  
           $eff_3 = $_POST['eff_3'];  
           $eff_4 = $_POST['eff_4'];  
           $eff_5 = $_POST['eff_5'];  
           $eff_total == $six_chifres;  
           som_six_chifre($eff_1,$eff_2,$eff_3,$eff_4,$eff_5 );  
           $six_chifres = $eff_1 + $eff_2 + $eff_3 + $eff_4 + $eff_5 ;  

           echo 'la valer du premier effectif est :'. $eff_1.'';  
           try  
           {  
             $bdd_stat = new PDO('mysql:host =localhost; dbname=sup_affiche;charset=utf8', 'root', '');    

           } catch (Exception $ex) {  
               exit('ERROR :'. $ex ->getMessage());  

           }  
           $con_stat = $bdd_stat->prepare('INSERT INTO stat_calcul (mod_1, mod_2, mod_3, mod_4, mod_5, eff_1,  
                   eff_2, eff_3, eff_4, eff_5, six_chifres) VALUE(:mod_1, :mod_2, :mod_3, :mod_4, :mod_5, :eff_1,  
                   :eff_2, :eff_3, :eff_4, :eff_5, :six_chifres)');  
           $con_stat ->execute(array(  
                        'mod_1' => $_POST['mod_1'],  
                        'mod_2'=> $_POST['mod_2'],  
                        'mod_3' => $_POST['mod_3'],  
                        'mod_4' => $_POST['mod_4'],  
                        'mod_5' => $_POST['mod_5'],  
                        'eff_1' => $_POST['eff_1'],  
                        'eff_2' => $_POST['eff_2'],  
                        'eff_3' => $_POST['eff_3'],  
                        'eff_4' => $_POST['eff_4'],  
                        'eff_5' => $_POST['eff_5'],  
                        'six_chifres' => $_POST['six_chifres']  






           ));  

           //header('location: http://localhost/tuto_fonction/tableau_stat/entre_infos.php');  

            echo 'la valer du premier effectif est :'. $eff_1.' CE PENDANT EN ajoutant   
                    les autres chifres la somme<br/> de vaut<br/>'.$six_chifres.' mais pour ce cas alors';  
       }  else {  

           echo 'recommencez';  
       }  







    }  

    ?>  
     <! DOCTYPE html PUBLIC "-//W3C//DTD WHMTL 1.0 strict//EN" "http ://www.W3.org/TR/xhtml//DTD/xhtml1-framset.dtd">   
    <html xmlns= "http ://www.w3.org/1999/xhtml" xml:lang="fr" lang ="fr">   
    <head>   
        <title>INSCIPTION</title>   
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!--  caractère spéciaux -->  
        <meta name ="keywords" lang ="fr" content = "from, discussion, logiciel, libre, PHP, mysql, xhtml, <meta charset="utf-8" />   
        <link rel="stylesheet" href ="http://localhost/tuto_fonction/css/css_1_fonc.css" />   
            <link rel="icon" type="image/jpg" href="http://localhost/sup_affich/img/favicon.icon.jpg" />  
    </head>   
     <body>  
        <!--  <div id="header">  

         </div> -->  

         <h1>Ce tableau vous permettra de faire des calculs statistique</h1>  

         <div id="cadre_inscription">  
        <!--<div class="pour_tab">    -->  
        <form action ="http://localhost/tuto_fonction/tableau_stat/entre_infos.php" method ="post" enctype="multipart/form-data">   

            <table border ="0" width="auto" height ="auto">   
            <tr>   
            <td>   
                <label >Modalités</label>   
            </td>   
            <td >   
            <input type="text" id ="zone" name="mod_1">   
            </td>  
                     <td >   
            <input type="text" id ="zone" name="mod_2">   
            </td>  
                    <td >   
            <input type="text" id ="zone" name="mod_3">   
            </td>  
                     <td >   
            <input type="text" id ="zone" name="mod_4">   
            </td>   
                    <td >   
            <input type="text" id ="zone" name="mod_5">   
            </td>   
                     <td > Total  
            <!--<input type="text" id ="zone" name="pseudo_eleve"> -->  
            </td>   
                    </tr>   
                     <tr>   
            <td>   
                <label >Effectifs</label>   
            </td>   
            <td >   
            <input type="text" id ="zone" name="eff_1">   
            </td>  
                     <td >   
            <input type="text" id ="zone" name="eff_2">   
            </td>  
                    <td >   
            <input type="text" id ="zone" name="eff_3">   
            </td>  
                     <td >   
            <input type="text" id ="zone" name="eff_4">   
            </td>   
                    <td >   
            <input type="text" id ="zone" name="eff_5">   
            </td>   
                     <td >   
            <input type="text" id ="zone" name="eff_total">   
            </td>   
                    </tr>   

                    <tr>   
                        <td><input type="hidden" id ="zone1" name="acces" ></td>  
                        <td><input type="hidden" id ="zone1" name="acces" ></td>  
                        <td><input type="hidden" id ="zone1" name="acces" ></td>  
                        <td><input type="hidden" id ="zone1" name="acces" ></td>  
                        <td><input type="hidden" id ="zone1" name="acces" ></td>  
                        <td><input type="hidden" id ="zone1" name="acces" ></td>  
                        <td><input type="submit" value ="Effectif total" id ="zone1" name="acces" ></td>  
             </tr>   
            </table>  

        </form>   


        <!--</div> &nbsp;&nbsp; -->  
         </div>  

          <div id="footer">  

            juste voir si il apparaît!  

         </div>   

       </body>  
    </html>

merci d'avance

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 10/08/2016 20:08  -  Haut de page  - 

Salut,
la description semble relativement claire, mais il manque la question.

J'ai ré-aligné le code et ça donne ceci, j'y ai rajouté des commentaires sur les lignes 13, 14 et 15 :

<?php
if(!empty($_POST))
{
    $erreurs = array();
    if(empty($erreurs))
    {
        include 'first_fonc.php';
        $eff_1 = $_POST['eff_1'];
        $eff_2 = $_POST['eff_2'];
        $eff_3 = $_POST['eff_3'];
        $eff_4 = $_POST['eff_4'];
        $eff_5 = $_POST['eff_5'];
        $eff_total == $six_chifres; // <== ??? cette ligne comporte de toute évidence une erreur, mais qu'est-ce qui était vraiment prévu au juste ?
        som_six_chifre($eff_1,$eff_2,$eff_3,$eff_4,$eff_5 ); // <== Fonction non déclarée au préalable, et pas d'inclusion de fichier non plus ?'
        $six_chifres = $eff_1 + $eff_2 + $eff_3 + $eff_4 + $eff_5 ; // variable $six_chifres utilisée deux lignes plus haut mais définie seulement ici ?
        echo 'la valer du premier effectif est :'. $eff_1.'';
        try
        {
            $bdd_stat = new PDO('mysql:host =localhost; dbname=sup_affiche;charset=utf8', 'root', '');
        } catch (Exception $ex) {
            exit('ERROR :'. $ex ->getMessage());
        }
        $insert = 'INSERT INTO stat_calcul (mod_1, mod_2, mod_3, mod_4, mod_5, eff_1, eff_2, eff_3, eff_4, eff_5, six_chifres) '.
                  'VALUE(:mod_1, :mod_2, :mod_3, :mod_4, :mod_5, :eff_1, :eff_2, :eff_3, :eff_4, :eff_5, :six_chifres)';
        $con_stat = $bdd_stat->prepare($insert);
        $con_stat ->execute(array(
            'mod_1' => $_POST['mod_1'],
            'mod_2' => $_POST['mod_2'],
            'mod_3' => $_POST['mod_3'],
            'mod_4' => $_POST['mod_4'],
            'mod_5' => $_POST['mod_5'],
            'eff_1' => $_POST['eff_1'],
            'eff_2' => $_POST['eff_2'],
            'eff_3' => $_POST['eff_3'],
            'eff_4' => $_POST['eff_4'],
            'eff_5' => $_POST['eff_5'],
            'six_chifres' => $_POST['six_chifres']
        ));
        //header('location: http://localhost/tuto_fonction/tableau_stat/entre_infos.php');
        echo 'la valer du premier effectif est :'. $eff_1.' CE PENDANT EN ajoutant
                les autres chifres la somme<br/> de vaut<br/>'.$six_chifres.' mais pour ce cas alors';
    }  else {
        echo 'recommencez';
    }
}
?>
<! DOCTYPE html PUBLIC "-//W3C//DTD WHMTL 1.0 strict//EN" "http ://www.W3.org/TR/xhtml//DTD/xhtml1-framset.dtd">
<html xmlns= "http ://www.w3.org/1999/xhtml" xml:lang="fr" lang ="fr">
  <head>
    <title>INSCIPTION</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <!--  caractère spéciaux -->
    <meta name ="keywords" lang ="fr" content = "from, discussion, logiciel, libre, PHP, mysql, xhtml, <meta charset="utf-8" />
    <link rel="stylesheet" href ="http://localhost/tuto_fonction/css/css_1_fonc.css" />
    <link rel="icon" type="image/jpg" href="http://localhost/sup_affich/img/favicon.icon.jpg" />
  </head>
  <body>
    <!--  <div id="header">
    </div> --><h1>Ce tableau vous permettra de faire des calculs statistique</h1>
    <div id="cadre_inscription">
      <!--<div class="pour_tab">    -->
      <form action ="http://localhost/tuto_fonction/tableau_stat/entre_infos.php" method ="post" enctype="multipart/form-data">
        <table border ="0" width="auto" height ="auto">
          <tr>
            <td>
              <label>Modalités</label>
            </td>
            <td>
              <input type="text" id ="zone" name="mod_1">
            </td>
            <td>
              <input type="text" id ="zone" name="mod_2">
            </td>
            <td>
              <input type="text" id ="zone" name="mod_3">
            </td>
            <td>
              <input type="text" id ="zone" name="mod_4">
            </td>
            <td>
              <input type="text" id ="zone" name="mod_5">
            </td>
            <td>
              Total <!--<input type="text" id ="zone" name="pseudo_eleve"> -->
            </td>
          </tr>
          <tr>
            <td>
              <label>Effectifs</label>
            </td>
            <td>
              <input type="text" id ="zone" name="eff_1">
            </td>
            <td>
              <input type="text" id ="zone" name="eff_2">
            </td>
            <td>
              <input type="text" id ="zone" name="eff_3">
            </td>
            <td>
              <input type="text" id ="zone" name="eff_4">
            </td>
            <td>
              <input type="text" id ="zone" name="eff_5">
            </td>
            <td>
              <input type="text" id ="zone" name="eff_total">
            </td>
          </tr>
          <tr>
            <td>
              <input type="hidden" id ="zone1" name="acces">
            </td>
            <td>
              <input type="hidden" id ="zone1" name="acces">
            </td>
            <td>
              <input type="hidden" id ="zone1" name="acces">
            </td>
            <td>
              <input type="hidden" id ="zone1" name="acces">
            </td>
            <td>
              <input type="hidden" id ="zone1" name="acces">
            </td>
            <td>
              <input type="hidden" id ="zone1" name="acces">
            </td>
            <td>
              <input type="submit" value ="Effectif total" id ="zone1" name="acces">
            </td>
          </tr>
        </table>
      </form><!--</div> &nbsp;&nbsp; -->
    </div>
    <div id="footer">
      juste voir si il apparaît!
    </div>
  </body>
</html>

Maintenant, il faudrait préciser, le cas échéant, ce qui ne fonctionne pas, mais je suggère de corriger au préalable ce que j'ai indiqué dans ce code.

 
Par zacharie  -  Le 11/08/2016 15:05  -  Haut de page  - 

merci pour ton attention
tes remarque je les ai bien enregistrer

    <?php  
        if(!empty($_POST)){  

           $erreurs = array();  

           if(empty($erreurs)){  
               include 'first_fonc.php';// inclusion du fichier contenant la fonction  

               $eff_1 = $_POST['eff_1'];  
               $eff_2 = $_POST['eff_2'];  
               $eff_3 = $_POST['eff_3'];  
               $eff_4 = $_POST['eff_4'];  
               $eff_5 = $_POST['eff_5'];  
               $eff_total =$_POST['eff_total'];  
               som_six_chifre($eff_1,$eff_2,$eff_3,$eff_4,$eff_5 ); // fonction qui calcule la somme de six choofres  
               //variable dans laquelle est stockée le resultat de la somme  
               $six_chifres = $eff_1 + $eff_2 + $eff_3 + $eff_4 + $eff_5 ;  
               //ici je teste juste si les variable poster fonctionne  
               echo 'la valer du premier effectif est :'. $eff_1.'';  
               try  
               {  
                  $bdd_stat = new PDO('mysql:host =localhost; dbname=sup_affiche;charset=utf8', 'root', '');    

               } catch (Exception $ex) {  
                   exit('ERROR :'. $ex ->getMessage());  

               }  
               $con_stat = $bdd_stat->prepare('INSERT INTO stat_calcul (mod_1, mod_2, mod_3, mod_4, mod_5, eff_1,  
                       eff_2, eff_3, eff_4, eff_5, eff_total) VALUE(:mod_1, :mod_2, :mod_3, :mod_4, :mod_5, :eff_1,  
                       :eff_2, :eff_3, :eff_4, :eff_5, :eff_total)');  
               $con_stat ->execute(array(  
                            'mod_1' => $_POST['mod_1'],  
                            'mod_2'=> $_POST['mod_2'],  
                            'mod_3' => $_POST['mod_3'],  
                            'mod_4' => $_POST['mod_4'],  
                            'mod_5' => $_POST['mod_5'],  
                            'eff_1' => $_POST['eff_1'],  
                            'eff_2' => $_POST['eff_2'],  
                            'eff_3' => $_POST['eff_3'],  
                            'eff_4' => $_POST['eff_4'],  
                            'eff_5' => $_POST['eff_5'],  
                            'eff_total' => $_POST['eff_total']//<= variable dans laquelle devra être stocké l'effectif total    
                        ));  


    // si les valeur sont insérées dans la bdd le texte ci-dessous s'affiche, de même que le résultat de la somme dans ($six_chifres)  

                echo 'la valer du premier effectif est :'. $eff_1.' CE PENDANT EN ajoutant   
                        les autres chifres la somme<br/> de vaut<br/>'.$six_chifres.' mais pour ce cas alors'. $eff_total.'';  
            }   
            else {  

               echo 'recommencez';  
            }  
        }  

    ?>  
     <! DOCTYPE html PUBLIC "-//W3C//DTD WHMTL 1.0 strict//EN" "http ://www.W3.org/TR/xhtml//DTD/xhtml1-framset.dtd">   
    <html xmlns= "http ://www.w3.org/1999/xhtml" xml:lang="fr" lang ="fr">   
        <head>   
            <title>INSCIPTION</title>   
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!--  caractère spéciaux -->  
                <meta name ="keywords" lang ="fr" content = "from, discussion, logiciel, libre, PHP, mysql, xhtml, <meta charset="utf-8" />   
                <link rel="stylesheet" href ="http://localhost/tuto_fonction/css/css_1_fonc.css" />   
                <link rel="icon" type="image/jpg" href="http://localhost/sup_affich/img/favicon.icon.jpg" />  
        </head>   
        <body>  
            <!--  <div id="header">  

             </div> -->  

            <h1>Ce tableau vous permettra de faire des calculs statistique</h1>  

            <div id="cadre_inscription">  
                <!--<div class="pour_tab">    -->  
                <form action ="http://localhost/tuto_fonction/tableau_stat/entre_infos.php" method ="post" enctype="multipart/form-data">   
                    <table border ="0" width="auto" height ="auto">   
                        <tr>   
                            <td>   
                                    <label >Modalités</label>   
                            </td>   
                            <td >   
                            <input type="text" id ="zone" name="mod_1">   
                            </td>  
                             <td >   
                            <input type="text" id ="zone" name="mod_2">   
                            </td>  
                            <td >   
                            <input type="text" id ="zone" name="mod_3">   
                            </td>  
                             <td >   
                            <input type="text" id ="zone" name="mod_4">   
                            </td>   
                            <td >   
                            <input type="text" id ="zone" name="mod_5">   
                            </td>   
                             <td > Total  
                            <!--<input type="text" id ="zone" name="pseudo_eleve"> -->  
                            </td>   
                        </tr>   
                        <tr>   
                            <td>   
                                    <label >Effectifs</label>   
                            </td>   
                            <td >   
                                      <input type="text" id ="zone" name="eff_1">   
                            </td>  
                             <td >   
                                      <input type="text" id ="zone" name="eff_2">   
                            </td>  
                            <td >   
                                      <input type="text" id ="zone" name="eff_3">   
                            </td>  
                             <td >   
                                      <input type="text" id ="zone" name="eff_4">   
                            </td>   
                            <td >   
                                      <input type="text" id ="zone" name="eff_5">   
                            </td>   
                             <td >   
                                      <input type="text" id ="zone" name="eff_total">   
                            </td>   
                        </tr>   
                        <tr>   
                            <td><input type="hidden" id ="zone1" name="acces" ></td>  
                            <td><input type="hidden" id ="zone1" name="acces" ></td>  
                            <td><input type="hidden" id ="zone1" name="acces" ></td>  
                            <td><input type="hidden" id ="zone1" name="acces" ></td>  
                            <td><input type="hidden" id ="zone1" name="acces" ></td>  
                            <td><input type="hidden" id ="zone1" name="acces" ></td>  
                            <td><input type="submit" value ="Effectif total" id ="zone1" name="acces" ></td>  
                         </tr>   
                    </table>  

                </form>   

                <!--c'est quand l'utilisateur choisi un calcul qu ela page correspondant est chargée  
                       <!--</div> &nbsp;&nbsp; -->  
            </div>  

            <div id="footer">  

                juste voir si il apparaît!  

             </div>   

       </body>  
    </html>

Voici la fonction quise trouve dans le fichier first_fonc.php

    function som_six_chifre($eff_1,$eff_2,$eff_3,$eff_4,$eff_5 ){  

        $six_chifres = $eff_1 + $eff_2 + $eff_3 + $eff_4 + $eff_5 ;  


    }  

je les tester elle marche maisle problème se siyue au niveau de mon tableau

modalité : mod_1| mod_2| mod_3|mod_4|mod_5| total
effectif : eff_1| eff_2| eff_3|eff_4|eff_5|som eff |

donc sur le tableau il y a un bouton nommer effectif total qui devrai calculer les effectifs entré par l'utilisateur et si les formation sont bien entrée on insert toute les infos dans la bdd, modalité, effectif de modalité et effectif total.

  1. dans mon code la variable ($eff_total) correspond à somme des effectif et je ne sais pas comment faire en sorte que la variable ou est stocké le résultat ($six_chiffre) du calcul de la somme se stock dans ($eff_total)
  2. si les informations ont été bien stoqué on revoit une nouvelle page qui affiche a l'utilisateur les données entrée même celle de l'efectif total
  3. grop pb comment faire correspondre ou mettre le résultat du calcul dans $eff_total ?
 
Par Cyrano  -  Le 11/08/2016 22:21  -  Haut de page  - 

Salut,
la fonction ne retourne rien, il est normal qu'elle ne donne pas le résultat attendu. Il faut corriger comme ceci :

function som_six_chifre($eff_1, $eff_2, $eff_3, $eff_4, $eff_5)
{
    $six_chifres = $eff_1 + $eff_2 + $eff_3 + $eff_4 + $eff_5;
    return($six_chifres);
}

Ensuite, on définit la variable $eff_total comme ceci :

$eff_total = som_six_chifre($eff_1, $eff_2, $eff_3, $eff_4, $eff_5);

Essaye comme ça et reviens s'il y a un soucis.

 
Par zacharie  -  Le 12/08/2016 08:47  -  Haut de page  - 

salut cyrano
j'ai pu définir la variable comme indiqué dans ta correction et $eff_total donne bien le résultat escompter (sa fonctionne) mais dans la base de donnée le champ (colonne) correspondant donne un résultat nul (pas de somme),
1- je crois que c'est ma requête qui n'ai pas peut -être bien défini avec la fonction.
2-ou parce que $eff_total est défini en Post?
3- comment dois-je m'y prendre pour insérer toutes les donnée y compris celle de $eff_total bien qu'elle ne soit pas entrée par l'utilisateur?

voila le code php contenant les requête

    <?php  
        if(!empty($_POST)){  

           if(empty($erreurs)){  
               include 'first_fonc.php';  
               $eff_1 = $_POST['eff_1'];  
               $eff_2 = $_POST['eff_2'];  
               $eff_3 = $_POST['eff_3'];  
               $eff_4 = $_POST['eff_4'];  
               $eff_5 = $_POST['eff_5'];  
              // $eff_total =$_POST['eff_total'];  

               $eff_total = som_six_chifre($eff_1, $eff_2, $eff_3, $eff_4, $eff_5);  



               try  
               {  
                  $bdd_stat = new PDO('mysql:host =localhost; dbname=sup_affiche;charset=utf8', 'root', '');    

               } catch (Exception $ex) {  
                   exit('ERROR :'. $ex ->getMessage());  

               }  
               $con_stat = $bdd_stat->prepare('INSERT INTO stat_calcul (mod_1, mod_2, mod_3, mod_4, mod_5, eff_1,  
                       eff_2, eff_3, eff_4, eff_5, eff_total) VALUE(:mod_1, :mod_2, :mod_3, :mod_4, :mod_5, :eff_1,  
                       :eff_2, :eff_3, :eff_4, :eff_5, :eff_total)');  
               $con_stat ->execute(array(  
                            'mod_1' => $_POST['mod_1'],  
                            'mod_2'=> $_POST['mod_2'],  
                            'mod_3' => $_POST['mod_3'],  
                            'mod_4' => $_POST['mod_4'],  
                            'mod_5' => $_POST['mod_5'],  
                            'eff_1' => $_POST['eff_1'],  
                            'eff_2' => $_POST['eff_2'],  
                            'eff_3' => $_POST['eff_3'],  
                            'eff_4' => $_POST['eff_4'],  
                            'eff_5' => $_POST['eff_5'],  
                            'eff_total' => $_POST['eff_total'] <= probleme   
                        ));  

               //header('location: http://localhost/tuto_fonction/tableau_stat/entre_infos.php');  

                echo 'les valeurs entrés dans les champs  effectif sont : '. $eff_1.'<br/>'. $eff_2.'<br/>'   
                    . $eff_3.'<br/>'. $eff_4.' et '. $eff_1.'<br/>  
                   pour une valeur totale après la somme  '. $eff_total.'';  
            }   
            else {  

               echo 'recommencez';  
            }  
        }  

    ?>  

Merci d'avance.

 
Par Cyrano  -  Le 12/08/2016 09:07  -  Haut de page  - 

Salut,
ça me semble l'évidence même : la valeur envoyée n'est pas la bonne : envoyer $_POST['eff_total'] au lieu de $eff_total aboutit à un résultat logique.

Ceci étant, je crois qu'il est temps de mettre en place un principe de programmation lorsqu'on travaille avec des données en provenance d'un formulaire, que ce soit via $_POST ou $_GET :

On n'enregistre jamais directement des valeurs $_POST ou $_GET dans une base de données : on commence par valider les données et au besoin on affecte des valeurs par défaut pour être sûr de ne par risquer d'être victime d'une injection SQL

Donc il convient de définir des variable, comme c'est partiellement fait, mais il faut le faire pour toutes les données :

$eff_1 = $_POST['eff_1'];
$eff_2 = $_POST['eff_2'];
$eff_3 = $_POST['eff_3'];
$eff_4 = $_POST['eff_4'];
$eff_5 = $_POST['eff_5'];
$mod_1 = $_POST['mod_1'];
$mod_2 = $_POST['mod_2'];
$mod_3 = $_POST['mod_3'];
$mod_4 = $_POST['mod_4'];
$mod_5 = $_POST['mod_5'];

À partir de là, on ne travaille plus du tout avec $_POST mais avec ces variables.

Mais on va faire un petit peu mieux : on va valider les données. Pour les effectifs, ça va donner ceci :

$eff_1 = (!empty($_POST['eff_1']) && is_numeric($_POST['eff_1'])) ? $_POST['eff_1'] : 0;
$eff_2 = (!empty($_POST['eff_2']) && is_numeric($_POST['eff_2'])) ? $_POST['eff_2'] : 0;
$eff_3 = (!empty($_POST['eff_3']) && is_numeric($_POST['eff_3'])) ? $_POST['eff_3'] : 0;
$eff_4 = (!empty($_POST['eff_4']) && is_numeric($_POST['eff_4'])) ? $_POST['eff_4'] : 0;
$eff_5 = (!empty($_POST['eff_5']) && is_numeric($_POST['eff_5'])) ? $_POST['eff_5'] : 0;

Là, on sait que si une des cases du formulaire n'a pas été complétée ou bien si on y a mis autre chose qu'un nombre, la valeur qui sera affectée à la variable sera zéro.

Ensuite, quand on va préparer la requête d'insertion, on mettra les variables et non les valeurs $_POST :

$con_stat ->execute(array(
    'mod_1'     => $mod_1,
    'mod_2'     => $mod_2,
    'mod_3'     => $mod_3,
    'mod_4'     => $mod_4,
    'mod_5'     => $mod_5,
    'eff_1'     => $eff_1,
    'eff_2'     => $eff_2,
    'eff_3'     => $eff_3,
    'eff_4'     => $eff_4,
    'eff_5'     => $eff_5,
    'eff_total' => $eff_total
));

Là, on a quelque chose de plus propre.

 
Par zacharie  -  Le 17/08/2016 16:58  -  Haut de page  - 

salut Cyrano
pour la suite de c projet de calcul statistique je suis bloqué
après avoir fait un tableau des modalité et effectif calculer l'effectif total, je voudrais ajouter une ligne pour calculer la fréquence de chaque effectif.
j'ai créer une page tampon qui permet à l'utilisateur de selectioner le calcul (moyenne effectif cumule...)qu'il voudrai faire (ex s'il clique sur fréquece un tableau s'affiche avec des case vides pour le calcul des fréquence et les autre cases modalités et effectifs sont en mode disabled
ma fonction

function clacul_frequence($eff_mod, $eff_total){

$frequ_mod = ($eff_mod / $eff_total)*100;
return($frequ_mod);

}

fichier fréquence.php
<?php
include 'first_fonc.php';
$eff_mod = '45';
$eff_total = "149";
$frequenc_mod = clacul_frequence($eff_mod, $eff_total);

/echo 'je voudrais voir si je peux calculer un fréquance<br/>
la fréquence de modalité est : '.$eff_1.' et l\'effectif total est : '. $eff_total .'<br/>
la fréquence serai égale à : ('. $eff_mod .' / '. $eff_total . ')
100<br/> soit ' . $frequenc_mod .' ';
*/

?>
<! DOCTYPE html PUBLIC "-//W3C//DTD WHMTL 1.0 strict//EN" "http ://www.W3.org/TR/xhtml//DTD/xhtml1-framset.dtd">
<html xmlns= "http ://www.w3.org/1999/xhtml" xml:lang="fr" lang ="fr">
<head>
<title>FREQUENCES</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!-- caractère spéciaux -->
<meta name ="keywords" lang ="fr" content = "from, discussion, logiciel, libre, PHP, mysql, xhtml, <meta charset="utf-8" />
<link rel="stylesheet" href ="http://localhost/tuto_fonction/css/css_1_fonc.css" />
<link rel="icon" type="image/jpg" href="http://localhost/sup_affich/img/favicon.icon.jpg" />
</head>
<body>
<!-- <div id="header">

 </div> -->

 <h1>Ce tableau vous permettra de faire des calculs statistique</h1>
<?php
 //connexion a la bdd
try{

    $bdd_stat = new PDO('mysql:host=localhost;dbname=sup_affiche;charset=utf8', 'root', '');

} catch (Exception $ex) {
    die('ERRORS : '. $ex->getMessage());
}
// je selection la table et j'affiche le contenu

$stat= $bdd_stat->query('SELECT * FROM stat_calcul ');

while ($info_stat = $stat ->fetch())
  {?>




 <div id="cadre_inscription">
<!--<div class="pour_tab">    -->
        <form action ="http://localhost/tuto_fonction/tableau_stat/frequences.php" method ="post" enctype="multipart/form-data"> 

            <table border ="0" width="auto" height ="auto"> 
                    <tr> 
                    <td> 
                            <label >Modalités</label> 
                    </td> 
                    <td > 
                        <input type="text" id ="zone" name="mod_1" value="<?php echo $info_stat['mod_1'];?>"disabled="desabled"> 
                    </td>
                     <td > 
                    <input type="text" id ="zone" name="mod_2" value="<?php echo $info_stat['mod_1'];?>"disabled="desabled"> 
                    </td>
                    <td > 
                    <input type="text" id ="zone" name="mod_3"value="<?php echo $info_stat['mod_1'];?>"disabled="desabled"> 
                    </td>
                     <td > 
                    <input type="text" id ="zone" name="mod_4" value="<?php echo $info_stat['mod_1'];?>"disabled="desabled"> 
                    </td> 
                    <td > 
                    <input type="text" id ="zone" name="mod_5" value="<?php echo $info_stat['mod_1'];?>"disabled="desabled"> 
                    </td> 
                     <td > Total
                    <!--<input type="text" id ="zone" name="pseudo_eleve"> -->
                    </td> 
                    </tr> 
                     <tr> 
                    <td> 
                            <label >Effectifs</label> 
                    </td> 
                    <td > 
                        <input type="text" id ="zone" name="eff_1" value="<?php echo $info_stat['eff_1'];?>" disabled="desabled"> 
                    </td>
                     <td > 
                    <input type="text" id ="zone" name="eff_2" value="<?php echo $info_stat['eff_2'];?>"disabled="desabled"> 
                    </td>
                    <td > 
                    <input type="text" id ="zone" name="eff_3" value="<?php echo $info_stat['eff_3'];?>"disabled="desabled"> 
                    </td>
                     <td > 
                    <input type="text" id ="zone" name="eff_4" value="<?php echo $info_stat['eff_4'];?>"disabled="desabled"> 
                    </td> 
                    <td > 
                    <input type="text" id ="zone" name="eff_5" value="<?php echo $info_stat['eff_5'];?>"disabled="desabled"> 
                    </td> 
                     <td > 
                    <input type="text" id ="zone" name="eff_total" value="<?php echo $info_stat['eff_total'];?>"disabled="desabled"> 
                    </td> 
                    </tr> 
                    <tr>
                        <td><label >Fréquence</label> </td>
                        <td><input type="text" id ="zone" name="freq_1" value=""></td>
                        <td><input type="text" id ="zone" name="freq__2" value=""></td>
                        <td><input type="text" id ="zone" name="freq__3" value=""> </td>
                        <td><input type="text" id ="zone" name="freq__4" value=""></td> 
                        <td><input type="text" id ="zone" name="freq__5" value=""></td> 
                        <td><input type="submit" value ="Corrigé" id ="zone1" name="acces" ></td>
                    </tr>
                    <tr> 
                        <td><input type="hidden" id ="zone1" name="acces" ></td>
                        <td><input type="hidden" id ="zone1" name="acces" ></td>
                        <td><input type="hidden" id ="zone1" name="acces" ></td>
                        <td><input type="hidden" id ="zone1" name="acces" ></td>
                        <td><input type="hidden" id ="zone1" name="acces" ></td>
                        <td><input type="hidden" id ="zone1" name="acces" ></td>
                        <td><input type="hidden" value ="Effectif total" id ="zone1" name="acces" ></td>
                     </tr> 
             </table>

            </form> 


            <!--</div> &nbsp;&nbsp; -->
         </div>
 <?php

 }

ici je voulais tester la fonction elle marche mais seulement avec des valeur prédéfini
echo '<h1>je voudrais voir si je peux calculer un fréquance<br/>
la fréquence de modalité est : '.$eff_mod.' et l\'effectif total est : '. $eff_total .'<br/>
la fréquence serai égale à : ('. $eff_mod .' / '. $eff_total . ')*100<br/> soit ' . $frequenc_mod .'</h1> ';

 ?>
  <div id="footer">

    juste voir si il apparaît!

 </div> 

</body>
</html>
donc en gros comment faire pour que cela devienne un post et aussi je voudrai avoir deux chiffres après le calcul

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !