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 :

mise à jour base infructueuse [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Par défaut mise à jour base infructueuse
    Bonjour à toutes et tous,

    Je suis en train de travailler sur un projet en PHP qui consiste à gèrer une école de langues et le suivi des étudiants.

    Dans cette école, il y a des étudiants étrangers qui viennent apprendre le français sur 20 ou 30 semaines.

    Chaque semaine il y a un contrôle continu = ce contrôle peut être de 4types : écrit, oral, civilisations, prépa exam.

    J'ai besoin chaque semaine pour chaque étudiant d'historiser :
    - le numéro de la semaine (de 1 à 30)
    - la semaine du calendrier correspondante ( ex: S24)
    - le numéro de l'étudiant
    - la note obtenue
    - le type de contrôle passé
    - le nb d'heures d'absences sur la semaine
    - le nb d'heures d'absences non justifiées sur la semaine.

    Afin de simplifier la saisie, je sélectionne la liste des étudiants pour lesquels il faut saisir des notes, je les affiche sous forme de tableau et sur chaque ligne j'affiche des cases pour saisir les données.

    ci-dessous 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
     
    <?php
     
    include("variables.php");
    $liendb = mysql_connect($bddserver, $bddlogin, $bddpwd);
    mysql_select_db($bdd);
     
    ?>
     
    <form action="admin_maj_notes.php" method="post">
     
          <?php
           echo "<SELECT Name=motclef Size=1><OPTION Value=0>Choisir cursus</OPTION>";
                $sql= "SELECT * FROM session ORDER by libelle";
                $rep= mysql_query($sql);
                while($ligne_liste=mysql_fetch_array($rep)){
                echo "<OPTION Value=\"".$ligne_liste['code']."\">".$ligne_liste['libelle']."</OPTION>";
                }
                echo "</SELECT>";
           ?>
          <input type="submit" value=<?php echo $_REQUEST['motclef'];?> />
    </form>
     
    <?php
    $clause='';
    if (isset($_REQUEST['motclef']))
    {
      $clause .= "WHERE INSTR(cursus_ilce,'".$_REQUEST['motclef']."')";
    }
     
    $sql="SELECT * FROM etudiant ".$clause. "ORDER by nom";
    $resultat=mysql_query($sql);
    ?>
     
    N° semaine <input type="text" name="num_semaine" size="2"> &nbsp;
    N° semaine Calendrier <input type="text" name="sem_calendrier" value= "SXX" size="2"> &nbsp;
    Type contrôle : <select name="exam" size="1">
    		  			    <option value="0">Ecrit</option>
    					    <option value="1">Oral</option>
    					    <option value="2">Civilisations</option>
    					    <option value="3">DAP</option>
     				   </select>
     
    <?php
    echo "<table width=80% align=left border=1>";
    echo "<tr><tr><tr>";
    echo "<tr><td>id</td><td>nom</td><td>prenom</td><td>date naissance</td><td>Agence</td><td>Note</td><td>Heures absences</td><td>Heures absences non justifiées</td></tr>";
     
    if (isset($_REQUEST['motclef']))
    {
    while ($etudiant = mysql_fetch_array($resultat))
    {
     
      $id = $etudiant['num_etudiant'];
      $nom = $etudiant['nom'];
      $prenom = $etudiant['prenom'];
      $date = $etudiant['date_naissance'];
      $agence = $etudiant['agence'];
     
      echo "<tr>";
      echo "<td>$id</td>";
      echo "<td>$nom</td>";
      echo "<td>$prenom</td>";
      echo "<td>$date</td>";
      echo "<td>$agence</td>";
      echo "<td><input type=text name=note></td> ";
      echo "<td><input type=text name=absences></td> ";
      echo "<td><input type=text name=abs_non_justif></td> ";
    echo "<td><form action=suivi_enregistre.php method=post>";
      echo "<input type=submit value=Go /></td>" ;
      echo"</form>";
      echo "</td>";
      echo "</tr>";
     
    }
    }
     
    mysql_close($liendb);
    ?>
    à l'appui du bouton 'Go' sur chaque ligne je souhaite lancer la mise à jour de la table suivi mais ça ne fonctionne pas, j'ai l'erreur suivante :

    echec lors de la création de la fiche
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '', '',', '', '')' at line 2

    Ci-dessous le code pour la mise à jour de la table suivi,
    Merci d'avance pour votre aide

    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
     
    <?php
    include("variables.php");
    $liendb = mysql_connect($bddserver, $bddlogin, $bddpwd);
    mysql_select_db($bdd);
     
    $sql = "INSERT INTO suivi (num_semaine, sem_calendrier, num_etudiant, note, type_exam, absences, absences_non_justif)
    VALUES ('".$_REQUEST['num_semaine']."', '".$_REQUEST['sem_calendrier']."', $id, '".$_REQUEST['note']."', '".$_REQUEST['exam']."',', '".$_REQUEST['absences']."', '".$_REQUEST['abs_non_justif']."')";
     
    if (mysql_query($sql)!=false) {
       $ideleve = mysql_insert_id();
       echo "suivi éléve < ".$ideleve." créé ";
    }
       else {
           echo "echec lors de la création de la fiche <br>";
           echo mysql_error();
       }
    mysql_close($liendb);
    ?>

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Bonjour ,

    ta requête te renvoi une erreur , les variables sont peut etre vides ou comportes des caractères genre quotes (') , tu devrais appliquer mysql_real_escape_string() à es valeurs .
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Par défaut
    Merci RideKick

    Je ne connaissais pas la fonction mysql_real_escape_string(), je l'utiliserai pour plus de sécurité.

    tu avais vu juste, les données sont effectivement vides lorsqu'elles arrivent sur le script d'enregistrement. C'est mon script de saisie qui doit avoir un pb mais je ne vois pas où ?
    Merci

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Change déjà $_REQUEST par $_POST car ton formulaire prends cette méthode.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    de plus tu as un soucis dans ta requete :

    ça serait plutôt

    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Par défaut
    OK corrigé mais les valeurs arrivent toujours vide
    bisque bisque...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/08/2007, 16h11
  2. Mise à jour base des données modifiées dans le DataGridView
    Par dolyne.b dans le forum Windows Forms
    Réponses: 9
    Dernier message: 26/04/2007, 15h58
  3. Mises à jour base Oracle -> base SQL server
    Par fbo33 dans le forum Oracle
    Réponses: 21
    Dernier message: 20/11/2006, 11h05
  4. Mise à jour base access->mysql impossible... :-(
    Par pako69 dans le forum Administration
    Réponses: 4
    Dernier message: 26/09/2005, 14h51
  5. [SQL server][TDbRichEdit] Mise à jours base de donnée
    Par Revan012 dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/06/2004, 12h12

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