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 :

Insérer de nouvelles données php myadmin


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2022
    Messages : 46
    Par défaut Insérer de nouvelles données php myadmin
    Bonjour à tous,

    Je suis en train de développer une site web pour mes élèves mais je galère sérieusement pour la partie PHP et base de données...

    J'utilise PHPMyadmin/MySQL pour la BDD et j'ai une BDD nommée "lcc", dans laquelle j'ai une table nommée "inscr_ele", contenant plusieurs lignes, dont "nomcal6a".

    Après plusieurs exercices, l'élève obtient une note contenue dans une variable nommée "note" (évidemment).

    J'aimerais que cette note soit ajoutée dans la ligne "nomcal6a" si et seulement si celle-ci est supérieure à celle déjà présente.
    J'ai déjà crée la connexion à ma BDD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    session_start();
    require_once 'config.php';
    if (!isset($_SESSION['user'])) {
      header('Location:index.php');
      die();
    }
     
    $req = $bdd->prepare('SELECT * FROM lcc.inscr_ele WHERE token = ?');
    $req->execute(array($_SESSION['user']));
    $data = $req->fetch();
     
    ?>
    Et j'ai tenté de faire le lien avec du js :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function updateNote(a) {
      let nouvelleNote = note;
      var LigneNom = lcc.inscr_ele.find(function(ligne) {
        return ligne.nom === a;
      });
      if (nouvelleNote > LigneNom.inscr_ele) {
        LigneNom.inscr_ele = nouvelleNote;
      }
    }
    La variable "a" est remplacée par le nom de la ligne dans mon code HTML.

    Malheureusement ça ne fonctionne pas, et je ne sais comment tourner ça avec du PHP !
    Si quelqu'un a des indications à me donner ou un code à me transmettre, ça serait génial !
    Merci d'avance !!

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Je ne vois pas bien le rapport entre le code montré et le problème.

    Tu saisis la note dans un formulaire, tu soumets le formulaire, tu traites le formulaire et mets à jour la table.

    Requête à exécuter :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE inscr_ele
    SET nomcal6a = :nouvelle_note
    WHERE TRUE
        AND id_eleve = :id_eleve
        AND (:nouvelle_note_2 > nomcal6a OR nomocal6a IS NULL)

    :id_eleve est l'identifiant de l'élève
    :nouvelle_note et :nouvelle_note_2 contiennent la nouvelle note

    Tu remarqueras que la table est màj uniquement si la nouvelle note est supérieure à l'ancienne ou si pas encore de note renseignée)


    Attention, ton modèle de données me paraît en tout point suspect (nom des tables et des colonnes, écrasement de valeur)


    PS : phpMyAdmin n'est qu'un client SQL, comme MySQL Workbench (bien meilleur au passage), on n'insère pas dans phpMyAdmin, mais dans la base de données

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2022
    Messages : 46
    Par défaut
    Comme je suis très novice en PHP, j'ai beaucoup de mal a comprendre son fonctionnement.

    Le problème est simple, la colonne de ma table ne se remplie pas !
    J'ai tenté ceci dans mon HMTL :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          <form method="POST" action="updateNote.php">
          <button type="submit"class="quizz_button"><a href="esp_ele.php">
              <p>Enregistrer mon score</p>
          </button>
          </form>
    avec ma page updateNote comme ceci :
    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
    <?php
    function updateNote() {
      $host = 'localhost';
      $dbname = 'lcc';
      $username = 'root';
      $password = '';
     
      try {
        $dbh = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
        $nouvelleNote = $_POST['note'];
     
        $query = "SELECT * FROM insc_ele WHERE nom = 'nomcal6a'";
        $result = $dbh->query($query);
        $ligneNomcal6a = $result->fetch(PDO::FETCH_ASSOC);
     
        if ($nouvelleNote > $ligneNomcal6a['note']) {
          $query = "UPDATE insc_ele SET note = :nouvelleNote WHERE nom = 'nomcal6a'";
          $stmt = $dbh->prepare($query);
          $stmt->bindParam(':nouvelleNote', $nouvelleNote);
          $stmt->execute();
     
          echo 'La note a été mise à jour avec succès.';
        } else {
     
          echo 'La nouvelle note n\'est pas supérieure à celle déjà présente.';
        }
     
        $dbh = null;
      } catch (PDOException $e) {
     
        echo 'Erreur de connexion à la base de données : ' . $e->getMessage();
      }
    }
    ?>
    Va falloir que je pousse les recherches plus loin parce que je n'arrive pas à créer un bouton me permettant d'ajouter la valeur souhaitée dans ma table...

    Merci pour l'info, je vais tenter de progresser

Discussions similaires

  1. Insérer de nouvelles données php myadmin
    Par Latulipe2 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 21/03/2023, 16h55
  2. Réponses: 15
    Dernier message: 09/12/2022, 20h36
  3. Insérer une donnée dans une base de donnée php.my admin
    Par lackam88 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 11/11/2020, 13h28
  4. Réponses: 4
    Dernier message: 13/02/2020, 08h59
  5. echange de données php/flash
    Par ramses83 dans le forum Flash
    Réponses: 8
    Dernier message: 18/08/2003, 23h50

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