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

PHP & Base de données Discussion :

problème avec if pour insérer des champs


Sujet :

PHP & Base de données

  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 problème avec if pour insérer des champs
    salut j'ai un problème pour insérer un champ dans la base de données
    le champs est crdac ( je calcule la moyenne puis je la teste si elle et <=10, j'ai proposé une variable qui reçoit 0 sinon elle reçoit la valeur de crédit de la matière que je les sauvegarder tout marche impec sauf quant je veux l'insérer dans la base de données
    voilà le code

    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
    if($moy_mod<=10)
     {
    $cred=0;
    echo("$cred"); }
     else
      {
     $cred=$_POST ["cred"]  ;
        echo("$cred"); 
    }
    	$crd=$_POST ["cred"]  ;
     
    	// ici tu as des variables qui semblent inconnues comme $anne_ins
    	$sql = "INSERT INTO  note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crdac) VALUES ('$n_ins','$cd_mod','$anne_ins','$not_ctrl1','$not_TD','$moy_mod''$crd')" ;
     
     
    	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()); 
     
     
     
    	}
     
     
    }
    ?>

    voilà le message d'erreur
    0Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crdac) VALUES ('05270000005','Alg','2003','12','8','10''4 ')
    Erreur mysql n° : 1136
    message : Column count doesn't match value count at row 1

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    bonsoir,

    J'ai juste survolé ton code, mais déjà à première vu il manque une virgule, c'est peut être pas ça mais bon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crdac) VALUES ('$n_ins','$cd_mod','$anne_ins','$not_ctrl1','$not_TD','$moy_mod','$crd')" ;
    Sinon, des parenthèses pour renvoyer un echo??
    Je ne savais pas que cela se faisait...

    ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  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
    Salut

    A priori, si, c'est de la virgule que vient l'erreur
    En revanche ce que je ne comprends pas bien, c'est que tu fais des grandes manoeuvres sur la variable $cred, mais juste après tu affectes $crd et c'est $crd que tu insères dans la table

    Et moi non plus, je n'aurais pas mis de parenthèses dans un echo...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  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 merici pour tou
    salut voila je veut dans le meme code je calcule la myenne de tous les matiere et je l'envoi dans un table qui s'appele u.e les champs que je veut les envoye c n_ins et moy_ue comment je fait

  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
    Encore une fois, je t'ai demandé dans l'autre post de continuer a garder un seul et unique post pour le meme probleme.
    Maintenant, je pense pas que ton code est faux en lui meme, enfin la logique c'est bien ca, tu récupères les notes au fur et a mesure et tu calcules la moyenne. Mais avant d'aller plus loin il faut comprendre ce qui cloche :

    1/ sharrascript t'as montré un probleme de virgule, l'as tu réglé?
    2/ je t'avais parlé de variable que tu utilises et qui ne semblaient pas définies dans ton script est-ce le cas maintenant?
    3/ Celira t'a parlé de la variable $cred à laquelle tu affectes les crédits si la moyenne est supérieur a 10, or apres ton if/else, tu utilises ensuite la variable $crd au lieu de $cred, est-ce normal?

    Essaies d'abord de regarder ces points, d'y répondre et ensuite on pourra peut-etre t'aider plus.

  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 salut koopajah et pardant ?
    pour mon code maintenet il marche impc aprer votre aide précieuse je vous remeci toi te cerila et tous le mode qui mon aider je suis nouvaus dans la programation php c pour ca je poste tros question pour mon code il marche tres bien je coriger tous les erreure c un probleme pour calculer la moyene génerale de matiere c vous pouver m'aider et pardant encors koopajah

  7. #7
    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
    Pas de probleme, c'est surtout pour toi que je dis ca, avec un seul post tu as plus de gens qui regardent/t'aident qu'avec plein éparpillés.

    Pour la moyenne générale, il me semble me souvenir que tu calculais la moyenne de chaque module (équivalent a un controle et un td par module c'est ca?)

    Est ce que tu veux la calculer apres avoir mis dans la base de données?

    Peux-tu recopier ton code (qui fonctionne cette fois) pour voir comment calculer la moyenne. Tu dois pouvoir le faire en SQL et/ou en php.

  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 le code
    pour la moyenne je veux la calculer après avoir saisie le dernier module je veux l'envoyer dans une table qui s'appelle etudie les champs de la table sont n_in moy_ue

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <? 
    //connexion 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["Cod_mat"] ;
    $cont     = $_POST ["cont"];
    $anne_ins  = $_POST["anne_ins"] ;
    $coef =$_POST ["coef"] ;
     
    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*$coef)/$coef + $not_TD) /2;
     
    if($moy_mod<=10)
     {
    $cred=0;
     }
     else
      {
     $cred=$_POST ["cred"]  ;
     
    }  
     
    	// insertion
    	$sql = "INSERT INTO  note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crdac ) VALUES ('$n_ins','$cd_mod','$anne_ins','$not_ctrl1','$not_TD','$moy_mod','$cred')" ;
     
    	//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") ;
      }
    ?>

  9. #9
    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
    salut j'ai modifié mon code pour calculer la moyenne générale j'ai fait une condition le dernier module et inf le code il faut que calcule le moyenne j'ai proposé de faire un conteur pour incrémenter une valeur de moyenne de module mais il ne marche pas il sauve garde que la dernière note de module c'est le module inf c'est le code de module voila mon code


    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <?
    //connexion 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["Cod_mat"] ;
    $cont     = $_POST ["cont"];
    $anne_ins  = $_POST["anne_ins"] ;
    $coef =$_POST ["coef"] ;
    $Nom_eu =$_POST ["Nom_eu"] ;
    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*$coef)/$coef + $not_TD) /2;
    	$j =0;
    	if($cd_mod<>"Inf")
     
     {
    $j=$j+$moy_mod;
    echo "$j";
     
     }
     else
      {
     
    $moy_ue=$j+$moy_mod;
     
     
     
     
    	//
    	$r= "INSERT INTO   Etudier (N_INS ,Nom_eu,moy_ue)VALUES ('$n_ins','$Nom_eu','$moy_ue')" ;
    	//exécution de la requête SQL:
    	 $requete = mysql_query($r, $cnx) ; 
     } 
    	 if($moy_mod>=10)
     
     {
    $cred=$_POST ["cred"]  ;
     
     
     }
     else
      {
     
     $cred=0;
     
    }
     
     
    	// ////////////////////////////////
    	$sql = "INSERT INTO  note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crd_ac) VALUES ('$n_ins','$cd_mod','$anne_ins','$not_ctrl1','$not_TD','$moy_mod','$cred')" ;
     
     
    	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()); 
    	}
     
     
    }
    echo "</form>";
    echo "</table>";
    ?>
    </p>

  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
    Bonjour

    Tout d'abord, une remarque de pure forme :
    Il existe sur ton clavier des touches comme entrée, point (.) et virgule (,), qui peuvent non seulement servir à coder, mais également à s'exprimer en français.
    Donc, si l'avenir tu pouvais ajouter un peu de ponctuation et quelques retours à la ligne dans tes questions, je t'en serais grandement reconnaissante. D'avance merci.

    Maintenant, en ce qui concerne ton problème.
    Si j'ai bien compris, la table Etudier doit contenir la moyenne générale ($moy_ue) et ne contient en fait que la moyenne du dernier module.
    C'est assez normal, vu que tu redéfinis $moy_mod et $j à chaque tour de boucle et que tu ne fais intervenir $moy_ue que dans la boucle d'insertion.

    En gardant le reste de ton code, il faut initialiser $j à l'extérieur du for pour qu'à chaque tour, $j augmente.
    Code php : 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
    //connexion à la base de donnée
    ....
    //récupération des variables
    ....
    //init de $j
    $j=0;
    for($i=1;$i<=$cont;$i=$i+1){
      //calcul de la moyenne du module
    	$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];
     
    	//moyenne module:
    	$moy_mod = (($not_ctrl1*$coef)/$coef + $not_TD) /2;
     
    	if($cd_mod<>"Inf")
    	 {
    		$j=$j+$moy_mod;
    		echo "$j";
    	 }
    	else
    	 {
     		$moy_ue=$j+$moy_mod;
     
    		//
    		$r= "INSERT INTO   Etudier (N_INS, Nom_eu, moy_ue) VALUES ('$n_ins','$Nom_eu','$moy_ue')" ;
    		//exécution de la requête SQL:
    		$requete = mysql_query($r, $cnx) or die ('erreur : '.$r.' : '.mysql_error()); 
     	 } 
      //etc....
    }
    Bon courage !
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  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 salut
    salut celira, j fait ton code mes il ya des lacune .
    il additionne la moyenne de l'etudiant (1) et l'etudiant(2) voila le message qu'il monvoi.

    10Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crd_ac) VALUES ('05270000005','Ana','2003','10','10','10','6 ')
    20Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crd_ac) VALUES ('05270000006','Ana','2003','10','10','10','6 ')
    moi je veut, ça:
    10Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crd_ac) VALUES ('05270000005','Ana','2003','10','10','10','6 ')
    10Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crd_ac) VALUES ('05270000006','Ana','2003','10','10','10','6 ') pour le premier module et le 2eme module ça donne :

    20Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crd_ac) VALUES ('05270000005','alg','2003','10','10','10','6 ')
    20Requete : INSERT INTO note (N_INS ,cod_mat ,anne_ins,C1 ,TD ,moy_mat,crd_ac) VALUES ('05270000006','alg','2003','10','10','10','6 ')

  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
    Bon, on pose tout et on recommence
    - Ta boucle for porte les étudiants : le contenu du for est pour l'étudiant i.
    - Pour chaque étudiant i, tu insères les notes et moyenne du module dans la table note, avec un credit $cred qui vaut 0 si la moyenne est inférieure 10, la valeur du credit sinon.
    Jusqu'ici tout va bien.

    Le problème porte sur le bout if/else avec l'insertion dans etudier.
    Qu'est-ce que tu veux faire exactement avec ce bout de code ? Calculer la moyenne de tous les modules de l'étudiant i ? En faisant une somme de moyenne ? *celira qui ne comprends plus*
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  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
    salut celira, et merci encor pour tous voila que je veut fair .
    -la boucle for c pour les etudiant l'insertion de note (controle,td,moy_mat) maintenent je veut calculer la moye generale de tous les module pour chaque etudiant.
    je me suis permert de fair de fair le code(if) j suposer que le dernier module sesie et inf alors je fait le calcule de tous les module et je le devise par 3 car j'etulise des unite d'ensiegnement chaque uniter comport des matier pour la 1ere elle a 3 matiere je veut calculer la (moy_ue) pour chaque etudiant.
    -si tu a un hautre idée tu me la propose stp j'esper que tu a compri que je veut fair

  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
    Bon, ce que je te propose : Lorsque tu insères le dernier module (inf), tu récupères la somme des moyennes et le nombre de matières de l'ue par une requête. Avec ça tu calcules la moyenne et tu l'insères dans ta table.
    Code php : 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    //on recupere toujours les variables
    ...
     
    //boucle for
    for($i=1;$i<=$cont;$i=$i+1)
    {
    // on recupere les variables et on calcule la moyenne du module
    	$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];
     
    	//moyenne module:
    	$moy_mod = (($not_ctrl1*$coef)/$coef + $not_TD) /2;
    // on insere la moyenne du module dans la table note
    	if($moy_mod>=10)
    	 {
    		$cred=$_POST ["cred"]  ;
    	 }
    	else
    	 {
    	 	$cred=0;
    	 }
     
    	// insertion dans note
    	$sql = "INSERT INTO  note (N_INS, cod_mat, anne_ins, C1, TD, moy_mat, crd_ac) VALUES ('$n_ins', '$cd_mod', '$anne_ins', '$not_ctrl1', '$not_TD', '$moy_mod', '$cred')" ;	 
    	//exécution de la requête SQL:
    	$requete = mysql_query($sql, $cnx) or die ("requete : ".$sql." : ".mysql_error()); 
     
    //si c'est le dernier module
    	if($cd_mod=="Inf")
    	 {
     
    	// on recupere la somme des moyennes et le nombre de matieres
    		$sql_total = "SELECT SUM(moy_mat) AS total, COUNT(cod_mat) AS nb_mat FROM note WHERE N_INS=$n_ins AND nom_ue=$nom_ue";
     
    		$res_total = mysql_query($sql_total, $cnx) or die ("requete : ".$sql_total." : ".mysql_error());		
    		$data_total = mysql_fetch_assoc($res_total);
     
    		$moy_ue= $data_total['total']/$data['nb_mat'];
     
    	//on insere la moyenne generale
    		$r= "INSERT INTO   Etudier (N_INS, Nom_eu, moy_ue) VALUES ('$n_ins','$Nom_eu','$moy_ue')" ;
    		//exécution de la requête SQL:
    		$requete = mysql_query($r, $cnx) or die ('erreur : '.$r.' : '.mysql_error()); 
     	 }
    }//fin du for
    Evidemment, ça necessite un champ nom_ue ou quelque chose d'equivalent dans la table note (ou un moyen de savoir quelles matieres appartiennent à quelle ue)
    Voilà, regarde tout ça, bidouille un peu et bon courage !
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  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 salut
    salut. voila le code que j fait et le erreur.
    je c pas ou elle et l'errreu

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?
    //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["Cod_mat"] ;
    $cont     = $_POST ["cont"];
    $anne_ins  = $_POST["anne_ins"] ;
    $coef =$_POST ["coef"] ;
    $nom_eu =$_POST ["Nom_eu"] ;
    //boucle for
    for($i=1;$i<=$cont;$i=$i+1)
    {
    // on recupere les variables et on calcule la moyenne du module
    	$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];
     
    	//moyenne module:
    	$moy_mod = (($not_ctrl1*$coef)/$coef + $not_TD) /2;
    // on insere la moyenne du module dans la table note
    	if($moy_mod>=10)
    	 {
    		$cred=$_POST ["cred"]  ;
    	 }
    	else
    	 {
    	 	$cred=0;
    	 }
     
    	// insertion dans note
    	$sql = "INSERT INTO  note (N_INS, cod_mat, anne_ins, C1, TD, moy_mat, crd_ac,Nom_eu) VALUES ('$n_ins', '$cd_mod', '$anne_ins', '$not_ctrl1', '$not_TD', '$moy_mod', '$cred','$nom_eu' )" ;	 
    	//exécution de la requête SQL:
    	$requete = mysql_query($sql, $cnx) or die ("requete : ".$sql." : ".mysql_error()); 
     
    //si c'est le dernier module
    	if($cd_mod=="Inf")
    	 {
     
    	// on recupere la somme des moyennes et le nombre de matieres
    		$sql_total = "SELECT SUM(moy_mat) AS total, COUNT(cod_mat) AS nb_mat FROM note WHERE N_INS=$n_ins AND Nom_eu=$nom_eu";
     
    		$res_total = mysql_query($sql_total, $cnx) or die ("requete : ".$sql_total." : ".mysql_error());		
    		$data_total = mysql_fetch_assoc($res_total);
     
    		$moy_ue= $data_total['total']/$data['nb_mat'];
     
    	//on insere la moyenne generale
    		$r= "INSERT INTO   Etudier (N_INS, Nom_eu, moy_ue) VALUES ('$n_ins','$Nom_eu','$moy_ue')" ;
    		//exécution de la requête SQL:
    		$requete = mysql_query($r, $cnx) or die ('erreur : '.$r.' : '.mysql_error()); 
     	 }
    }//fin du for

    et les ereur de la requette


    requete : SELECT SUM(moy_mat) AS total, COUNT(cod_mat) AS nb_mat FROM note WHERE N_INS=05270000005 AND Nom_eu=Fondamentale : Champ 'Fondamentale' inconnu dans where clause

  16. #16
    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
    Essaies de mettre Fondamentale entre ' ' quand tu construis ta requete

  17. #17
    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
    Comme koopajah, il manque des '' Autant pour moi
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_total = "SELECT SUM(moy_mat) AS total, COUNT(cod_mat) AS nb_mat FROM note WHERE N_INS=$n_ins AND Nom_eu='$nom_eu' ";
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Aide pour insérer des champs d'une requete dans une table
    Par salluste dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/06/2014, 02h48
  2. Problème pour insérer des enregistrements avec un Pilote ODBC
    Par Michel Giustina dans le forum AS/400
    Réponses: 2
    Dernier message: 21/03/2009, 19h18
  3. Problème avec ffmpeg pour encoder des images Recherche :
    Par hppp01 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 15/12/2008, 09h04
  4. Réponses: 11
    Dernier message: 12/03/2008, 16h25
  5. Réponses: 6
    Dernier message: 22/01/2007, 11h43

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