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 :

Ecriture dans la BDD


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    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
    Par défaut Ecriture dans la BDD
    Bonjour tous,
    Je reviens encore vers vous avec mon même bout de code avec lequel je galère depuis 2 jours.
    En effet, je veux écrire des données dans une colonne C. Ces données sont issues du calcul avec des valeurs venant des colonnes A et B. J'illustre:

    1) Je récupère les valeurs venant des colonnes A et B.

    2) Je procèdes au calcul.

    3) J'écris les valeurs résultant du calcul respectivement dans la colonne C, sur les mêmes lignes que les données de A et B.

    Le problème est que c'est seulement la dernière valeur qui se répète sur toutes les lignes. J'ai suivi plusieurs suggestions sans succès.
    Alors j'ai besoin de votre aimable aide.
    Je mets le code et la capture de la BDD.

    Merci

    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
    95
    96
    97
    98
    99
    <?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;
    $moyenne = array();
    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);
     
      $tour++;  
     }
     for($i = 0; $i < $nblign;$i++ ){
     
    $req = "UPDATE eleve 
    SET MOYENNE = '$moyenne[$i]' 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);
     
    }
     
     
     
    }
    ?>

    L'image:

    Nom : proof_moy.jpg
Affichages : 145
Taille : 73,2 Ko

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    une fois que les notes ont été attribuées, il suffit d'une requête SQL :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = "UPDATE eleve 
    	SET MOYENNE = (( INTERROS + (DEVOIRS *2) ) /3) ";
    Ou, arrondi à la 2ème décimale :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = "UPDATE eleve 
    	SET MOYENNE = ROUND(100 * ( INTERROS + (DEVOIRS *2) ) /3) /100 ";

  3. #3
    Membre actif
    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
    Par défaut
    Merci infiniment, ça marche!

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

Discussions similaires

  1. Probleme avec ecriture dans un wxString.
    Par elraton dans le forum wxWidgets
    Réponses: 4
    Dernier message: 01/09/2008, 10h16
  2. [ADO.NET] Problème avec Insert dans base de données
    Par mpascolo dans le forum Accès aux données
    Réponses: 9
    Dernier message: 24/01/2005, 09h36
  3. [C#] Probleme avec TextBox dans un DataGrid
    Par Oberown dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/12/2004, 16h05
  4. [langage] Probleme avec caractère '$' dans script Perl
    Par zouetchou dans le forum Langage
    Réponses: 11
    Dernier message: 24/07/2004, 15h35
  5. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46

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