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 :

Utilisation de INSERT


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Utilisation de INSERT
    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

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Qu'essaies-tu de faire ?
    WHERE sert à filtrer les données existantes dans une table ; donc dans un INSERT on ne mets pas un WHERE.
    Ce n'est pas pas plutôt un UPDATE que tu veux ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Ok, j'ai compris. Merci beaucoup!

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

Discussions similaires

  1. [AC-2003] souci utilisation de INSERT INTO- SELECT- FROM- WHERE
    Par eugene_françois dans le forum Modélisation
    Réponses: 1
    Dernier message: 16/04/2010, 16h14
  2. utilisation de insert or update : (une requête dynamique de mise à jour)
    Par demahom_INFO dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 22/10/2008, 17h45
  3. [deque] utilisation d'insert avec un type personnel
    Par Mysteric dans le forum SL & STL
    Réponses: 4
    Dernier message: 14/11/2007, 10h42
  4. [VB.NET]Utiliser un INSERT INTO avec une VIew Access
    Par Ashleyriot dans le forum Accès aux données
    Réponses: 3
    Dernier message: 23/11/2006, 18h31
  5. impossible d'utiliser ma fonction dans un insert
    Par caramel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/04/2003, 15h04

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