IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] insérer des champs et calculer la moyene


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut [Tableaux] insérer des champs et calculer la moyene
    salut j'ai un problème pour insérer les champs n_ins et not controle1 et la not de TD le premier code source c'est pour afficher les étudiants n_ins nom prenom il marche parfaitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?
    //connection au serveur
    $cnx = mysql_connect("localhost","root","");
    //slection de la base de donn?:
    $bd = mysql_select_db("mld");
    //r?p£tion de la variable:
      $anne_ins  = $_POST["anne_ins"] ;
      $cd_mod    = $_POST["cd_mod"] ;
     
      //requete SQL:
      $sql = "SELECT *
              FROM etudiant
    	      WHERE (SM_ETUD ='1')
    		  ORDER BY NOM_ET";
      //exécution de la requête:
       $requete = mysql_query( $sql, $cnx ) ;
     
    echo "<table border='5' align='center' cellspacing='2' cellpadding='2'><tr align='center'><td><b>Numeros D'inscription</b>  </td><td><b>Nom</b></td><td><b>Prenom</b></td><td><b>Controle 1</b></td><td><b>TD</b></td></tr>";
    echo "<form name='form1' action ='vl-ing2.php' method = 'POST'>";
    $i =1 ;
    while( $result = mysql_fetch_object( $requete ) )
    {
    echo("<tr align='center' bgcolor='#BAD0FC'><td> <input type='text' name='n$i' value=".$result->N_INS."><td>".$result->NOM_ET."</td><td>".$result->PRE_ET."</td><td><input type='text' name='c1$i' size='7' maxlength='5'</td><td> <input type='text' name='c2$i' size='7' maxlength='5'</td></tr>") ;
    $i =$i+1;
     
    }
    $i = $i-1;
               echo("<tr><td> <input type='hidden' name='cont' value='$i'> </td> <td><input type='hidden' name='Cod_mat' value='$cd_mod'></td>
                <td> <input type='submit'
                 value='Valider'></td> </tr>");
     
    echo "</form>";
    echo "</table>";
    ?>

    et pour les insérer ça ne fonctionne pas voilà le code que j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <? 
    //connection au serveur:
    $cnx = mysql_connect( "localhost", "root", "" ) ;
    //sélection de la base de données:
    $db = mysql_select_db ("mld");
     
    //récupération de la variable:
    $cd_mod    = $_POST["cd_mod"] ;
    echo ("$cd_mod ") ;
    $cont     = $_POST ["cont"];
    for ($i=1;$i<=$cont;$i=$i+1)
    {
    $n_ins = $_POST["n_ins".$i];
    // note de controle 1.
    $not_ctrl1 = $_POST["not_ctrl1".$i];
    // note de TD
    $not_TD = $_POST["not_TD".$i];
     
    //moyanne dodulle:
    $moy_mod = ($not_ctrl1 + $not_TD)/2; 
     
    $sql = "INSERT INTO  note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat ) VALUES ('$n_ins','$cod_mat','$anne_ins','$not_ctrl1','$not_TD','$moy_mod')" ;
     
    //exécution de la requête SQL:
     $requete = mysql_query($sql, $cnx) ; 
    }
    if($requete)
      {
        echo("L'insertion completers") ;
      }
      else
      {
        echo("les notes de Ce Module et déja saisi") ;
      }
    ?>

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Bonjour,

    Il faudrait que tu donnes plus de détails sur ce qui ne fonctionne pas pour qu'on puisse t'aider.

    Mais une petite question deja, tu inseres dans ta base un certain nombre de valeur dont $anne_ins alors que cette variable ne semble être définie nulle part.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Pour localiser les erreurs au niveau des requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql= "INSERT ...."
    echo $sql;
    //...
    $requete = mysql_query($sql, $cnx) or die ("$sql : ".mysql_error());
    rajoutes ce genre de choses dans ton script et tiens nous au courant.

    Et aussi
    Bon courage

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut merci pour ta reponce
    pour le 1ere code ca fonctionne parfetement il afiche les n_ins non et prenom et des champs vide pour sesire les note control1 et de td le probleme c le 2eme code pour inserer les les variable dans la table note ca fonctionne pas je c pas pour koi

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Comme expliqué dans mon message précédent, si tu n'expliques pas ce qui ne fonctionne pas on ne peut pas t'aider.
    Il semble normal que ton insertion ne fonctionne pas vu que tu crées ta requete avec des variables qui ne semblent meme pas initialisées.

    essaies d'ajouter la gestion des erreurs mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <? 
    //connection au serveur:
    $cnx = mysql_connect( "localhost", "root", "" ) ;
    //sélection de la base de données:
    $db = mysql_select_db ("mld");
     
    //récupération de la variable:
    $cd_mod    = $_POST["cd_mod"] ;
    echo "CD MOD : " .$cd_mod . "<br>"; // pas besoin des () pour echo
    $cont     = $_POST ["cont"];
     
    for ($i=1;$i<=$cont;$i=$i+1)
    {
    	$n_ins = $_POST["n_ins".$i];
    	// note de controle 1.
    	$not_ctrl1 = $_POST["not_ctrl1".$i];
    	// note de TD
    	$not_TD = $_POST["not_TD".$i];
     
    	//moyanne dodulle:
    	$moy_mod = ($not_ctrl1 + $not_TD)/2; 
     
    	// ici tu as des variables qui semblent inconnues comment $anne_ins
    	$sql = "INSERT INTO  note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat ) VALUES ('$n_ins','$cod_mat','$anne_ins','$not_ctrl1','$not_TD','$moy_mod')" ;
     
    	echo "Requete : " . $sql . "<br>"; // tu verras que qqch doit clocher
     
    	//exécution de la requête SQL:
    	 $requete = mysql_query($sql, $cnx) ; 
     
    	if(!$requete) // si la requete n'a pas été exécutée correctement
    	{
    	die("Erreur mysql n° : " . mysql_errno() . "<br>message : " . mysql_error()); 
    	}
    }

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    pour anne_ins c pas un probleme je peut la recuperer j oublier de la maitre le problem c n_ins et control 1 et td et moyenne pour le envoye sur le basse de donne

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Il parait assez normal que tu ais des problèmes à récupérer des choses comme $_POST['n_ins'] ou $_POST['ctrl1'], étant donné que ces variables n'apparaissent pas dans le formulaire de la première partie.
    Essaye de remplacer dans ton formulaire (1ere partie) par cette version-là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    while( $result = mysql_fetch_object( $requete ) )
    {
    	echo "<tr align='center' bgcolor='#BAD0FC'>
    		<td> <input type='text' name='n_ins$i' value=".$result->N_INS.">
    		<td>".$result->NOM_ET."</td>
    		<td>".$result->PRE_ET."</td>
    		<td><input type='text' name='not_ctrl1$i' size='7' maxlength='5'</td>
    		<td> <input type='text' name='not_TD$i' size='7' maxlength='5'</td>
    		</tr>" ;
    	$i =$i+1;
     
    }
    Et comme dit koopajah, ajoute la gestion des erreurs au niveau des requêtes et donne-nous le message d'erreur si ça plante encore

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut voila les message d'erreur
    Notice: Undefined index: n_ins1 in c:\program files\easyphp1-8\www\21-04-2007\site\vl-ing2.php on line 72

    Notice: Undefined index: not_ctrl11 in c:\program files\easyphp1-8\www\21-04-2007\site\vl-ing2.php on line 75

    Notice: Undefined index: not_TD1 in c:\program files\easyphp1-8\www\21-04-2007\site\vl-ing2.php on line 77
    Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat ) VALUES ('','Inf','2003','','','0')
    Erreur mysql n° : 1062
    message : Duplicata du champ 'Inf-2003' pour la clef 1

  9. #9
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Voila, la première erreur t'indique que $n_ins n'est pas définie. Du coup tu t'apercois que dans ta requete tu insères quelquechose dans ta table avec le champ N_INS vide.

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je persiste à dire que le problème vient du formulaire : il n'ya rien dans les variables récupérées parce que ce ne sont pas les bonnes variables qui sont appelées...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    while( $result = mysql_fetch_object( $requete ) )
    {
    	echo "<tr align='center' bgcolor='#BAD0FC'>
    		<td> <input type='text' name='n_ins".$i."' value=".$result->N_INS.">
    		<td>".$result->NOM_ET."</td>
    		<td>".$result->PRE_ET."</td>
    		<td><input type='text' name='not_ctrl1".$i."' size='7' maxlength='5'</td>
    		<td> <input type='text' name='not_TD".$i."' size='7' maxlength='5'</td>
    		</tr>" ;
    	$i =$i+1;
     
    }
    Et rajoute l'affichage du contenu de $_POST au début de la page de récupération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "variables POST : $_POST";

  11. #11
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    j fait ton code celira et voila les message d'erreur
    il requpere le variable me il les envoi pas dans la basse de donne
    Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat ) VALUES ('05270000001','Ana','2003','12','10','11')
    Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat ) VALUES ('05270000002','Ana','2003','10','10','10')

    Notice: Undefined index: n_ins3 in c:\program files\easyphp1-8\www\21-04-2007\site\vl-ing2.php on line 72

    Notice: Undefined index: not_ctrl13 in c:\program files\easyphp1-8\www\21-04-2007\site\vl-ing2.php on line 75

    Notice: Undefined index: not_TD3 in c:\program files\easyphp1-8\www\21-04-2007\site\vl-ing2.php on line 77
    Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat ) VALUES ('','Ana','2003','','','0'

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Il y a quand même du progrès : ça plante au 3e tour maintenant. Ce qui veut dire que les 2 premiers INSERT fonctionnent. On avance ! Es-tu sûr que tu aurais du avoir 3 résultats ? Combien de champs avais-tu rempli dans le formulaire ?

    Et pourrais-tu donner la dernière version du code ? parce qu'avec toutes les modifs, je ne sais plus où on en est

  13. #13
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    salut celira j remplis que 2 champ la note de control1 et la note de td j pas 3champ

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut

    ma question portait sur le nombre d'étudiants : pour combien d'étudiants as-tu rentré les notes ?

  15. #15
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    merci cerila j'ai trouvé la solution c'est le nombre des étudiants voilà le code que j'ai mis pour résoudre le problème c'est ton code et j'ai ajouté
    $i = $i-1; voila

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while( $result = mysql_fetch_object( $requete ) )
    {
    	echo "<tr align='center' bgcolor='#BAD0FC'>
    		<td> <input type='text' name='n_ins".$i."' value=".$result->N_INS.">
    		<td>".$result->NOM_ET."</td>
    		<td>".$result->PRE_ET."</td>
    		<td><input type='text' name='not_ctrl1".$i."' size='7' maxlength='5'</td>
    		<td> <input type='text' name='not_TD".$i."' size='7' maxlength='5'</td>
    		</tr>" ;
    	$i =$i+1;
     
    }
    $i = $i-1;
    et merci encore

  16. #16
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ben voilà, on a fini par y arriver
    Bonne continuation et n'oublie pas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/07/2006, 18h55
  2. [Tableaux] Insérer des éléments à un tableau
    Par richard038 dans le forum Langage
    Réponses: 5
    Dernier message: 11/05/2006, 22h02
  3. [Tableaux] récupération des champs par $_POST
    Par jeanfrancois dans le forum Langage
    Réponses: 3
    Dernier message: 11/05/2006, 17h22
  4. TreeView : Insérer des champs au dessus du champs initial
    Par steph_1 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 28/10/2005, 11h38
  5. [Tableaux] Alignement des champs d'un formulaire
    Par jack554 dans le forum Langage
    Réponses: 7
    Dernier message: 15/09/2005, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo