Bonsoir tous,

J'ai un problème avec un bout de code depuis 2 semaines auquel je ne trouve pas d'issue (ligne 80). En effet, j’insère des données dans une BDD utilisant une référence avec WHERE mais je reçois toujours une erreur malgré toutes les corrections que j'y ai apportées suivant les suggestions. Alors je demande votre aide pour avancer. Merci. Je mais 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
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
 
/**
 * @author Love4All
 * @copyright 2016
 */
 
// Cette page est celle de configuration des emplois du temps des profs. Elle permet de configurer l'emploi du temps de chaque prof individuellement
include 'dbconnectAtribc.php';  // Fichier de connexion à la table des classes
include 'dbconnectAdmin.php';
header('Content-Type: text/html; charset=UTF-8');
 
// Récupération du nombre de notes pour le calcul des moyennes
// Récupération info notes
 
 
$note1 = isset($_POST['note1']) ? $_POST['note1']: NULL; // Pour que PHP ne prenne pas les entrées vides comme vide
$note2 = isset($_POST['note2']) ? $_POST['note2']: NULL;
$note3 = isset($_POST['note3']) ? $_POST['note3']: NULL;
$note4 = isset($_POST['note4']) ? $_POST['note4']: NULL;
 
 
 
 
// Récupération info devoirs
 
// Nombre de devoirs choisis
$ndev1 = isset($_POST['ndev1']) ? $_POST['ndev1']: NULL;
$ndev2 = isset($_POST['ndev2']) ? $_POST['ndev2']: NULL;
 
 
 
// Multiplier le nombre choisi par 2 ou non
$xdev2 = isset($_POST['xdev2']) ? $_POST['xdev2']: NULL;
 
 
// Récupération de la clase
$classe = isset($_POST['classe']) ? $_POST['classe']: NULL;
 
 
 
// Compter le nombre de lignes dans la table(pour la classe sélectionnée)
 
// Détection du nombre de notes sélectionné
$tabNote = array($note1, $note2, $note3, $note4);
$somNote = array_sum($tabNote);
 
echo '<br>';
 
// Détection du nombre de devoirs sélectonné
$tabXdev = array($ndev1, $ndev2);
$somXdev = array_sum($tabXdev);
 
 
 
// Compter l'effectif de la classe
 
$eff = "SELECT CLASSE FROM eleve WHERE CLASSE ='". $classe."'";
$resultat = $mysqli->query($eff);
$nblign = mysqli_num_rows($resultat);  // effectif de la classe sélectionnée
 
// La requête
 
$query = "SELECT INTERROS, INTERROS2, INTERROS3, INTERROS4, DEVOIRS, DEVOIRS2 FROM eleve WHERE CLASSE = '".$classe."'" ;
//les conditions de calcul selon les sélections
 
$result = $mysqli->query($query);
 
// Si une note et un devoirs x 2
$tour = 0;
if($somNote == 1 AND $somXdev == 1 AND $xdev2 == 'xD2' ){
while ($row = $result->fetch_assoc() AND $tour < $nblign ) {
 
    $moy = ($row['INTERROS'] + ($row['DEVOIRS'] * 2) )/3;
    $moyenne = number_format($moy,2);
 
 
 
 
$req = "INSERT INTO eleve(MOYENNE) VALUES('$moyenne') WHERE CLASSE ='".mysqli_real_escape_string($mysqli, $classe)."'";
 
if(mysqli_query($mysqli, $req)){
 
    echo 'Enregistré avec succès';
 
} else{
 
    echo "ERROR: Could not able to execute $req. " . mysqli_error($mysqli);
 
}
$tour++;
 
}
}?>

Et voici l'erreur que je reçois:

ERROR: Could not able to execute INSERT INTO eleve(MOYENNE) VALUES('11.33') WHERE CLASSE ='Tle A2'. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE CLASSE ='Tle A2'' at line 1ERROR: Could not able to execute INSERT INTO eleve(MOYENNE) VALUES('12.67') WHERE CLASSE ='Tle A2'. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE CLASSE ='Tle A2'' at line 1ERROR: Could not able to execute INSERT INTO eleve(MOYENNE) VALUES('14.33') WHERE CLASSE ='Tle A2'. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE CLASSE ='Tle A2'' at line 1ERROR: Could not able to execute INSERT INTO eleve(MOYENNE) VALUES('16.33') WHERE CLASSE ='Tle A2'. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE CLASSE ='Tle A2'' at line 1