Dificulté avec update

Bonjour,
J'ai un problème au niveau du fichier modifierEtudiant.php, si je veux faire un update on m'affiche: Notice: Undefined index: code in C:/wamp/www/gestionEtudiant/modifierEtudiant.php on line 3 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 1

voici le fichier modifierEtudiant.php:
<?php
    require_once ("check1.php");
    require_once ("check2.php");
    require_once("connection.php");
    $code=$_POST['code'];
    $nom=$_POST['nom'];
    $email=$_POST['email'];
    $photo=$_FILES['photo']['name'];
    $file_tmp_name=$_FILES['photo']['tmp_name'];
    move_uploaded_file($file_tmp_name,"./img/$photo");
    $req="update etudiant set nom='$nom',email='$email',photo='$photo' where code=$code";
    mysql_query($req) or die(mysql_error());
    require_once ("afficher.php");
?>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

3 réponses

  1. Modérateur
    Fais un
    echo $req;
    Avant ton mysql_query histoire de voir la requête créée.

    Petit rappel, l'extension mysql est obsolète
    1. j'ai encore ça
      Notice: Undefined index: code in C:\wamp\www\gest_et\modifier.php on line 5
      update etudiant set nom='jj',email='g@k.com',photo='Koala.jpg' where code=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 1
    2. Modérateur
      Code est un numérique ?
      Si non, il faut mettre les quotes pour signifier une chaine.
    3. Modérateur
      Mais dans ton cas, Code n'est pas définit, donc ta requête SQL se termine par un '=' ce qui n'est pas bon.
    4. Modérateur
      Donc la question majeure est ....comment envoies tu cette variable CODE à cette page ?
      Fais voir ton formulaire HTML
  2. Modérateur
    Bonjour,

    Pour éviter les soucis de variables "undefined" il est préférable de récupérer "proprement" ces variables via l'écriture TERNAIRE et un ISSET.

    Ce qui donnerait par exemple :
    $code   = isset($_POST['code']) ? $_POST['code'] : '';
    $nom   = isset($_POST['nom']) ? $_POST['nom'] : '';
    $email = isset($_POST['email']) ? $_POST['email'] : '';
    


    1. ça me renvoi encore ça
      Notice: Undefined index: code in C:\wamp\www\gest_et\modifier.php on line 5
      update etudiant set nom='jj',email='g@k.com',photo='Koala.jpg' where code=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 1
  3. Bonjour ça me renvoi encore ça:
    Notice: Undefined index: code in C:\wamp\www\gest_et\modifier.php on line 5
    update etudiant set nom='jj',email='g@k.com',photo='Koala.jpg' where code=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 1
    1. Salut,
      As tu bien modifié ta ligne 5 pour récupérer la paramètre code avec la solution proposée par jordane45 ?
    2. @Pitetsalut
      j'ai bien essayé le solution de jordan45; ça donne le même resultat
    3. Peux tu nous montrer ton code modifié stp ?