Problème Update SQL

Bonjour,

Je suis entrain de crée un Site perso, j'ai deja crée le script pour l'inscription.. dans ma partie admin j'ai fais un script qui permet de voir tout les inscrit dans un tableau et je peux les supprimer, maintenant j'en suis a creer un script pour Modifier la base de donnée donc le Login des inscrits, motdepasse etc.. J'utilise la balise Update mais une erreur viens apres validation de mon formulaire :'( Si quelqu'un peut m'aider svp

Voici l'erreur et mon script :

Probleme : 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 '( Login='bibi' ,password='bibi' ,Email='bibi@gmail.com' )' at line 2

inscrit_modifier.php
<?php    
 // On récupère la valeur de la référence du produit    
 $id=$_GET['id'];    
     
 // Connexion à la base de données    
 require_once("connexion.php"); // ceci inclut le fichier a.php    
     
 // Creation et envoi de la requete    
 $requete = "    
  SELECT *     
  FROM inscrit     
  WHERE NumInscrit=$id    
  ";    
      
 if ($resultat = mysqli_query($connection,$requete)) {    
  // Récupération du tableau associatif    
  while ($row = mysqli_fetch_row($resultat)) {     
   echo "<form id='monForm' action='includes/inscrit_saisir.php' method='post'>";    
    echo "<fieldset>";    
    echo "<legend>Informations Membres</legend>";    
    echo "<p>";    
     echo "<label for='Login'>Login : </label>";    
     echo "<input type='text' id='Login' name='Login' value='".$row[0]."' />";    
    echo "</p>";    
    echo "<p>";    
     echo "<label for='password'>Mot de passe : </label>";    
     echo "<input type='text' id='password' name='password' value='".$row[1]."' />";    
    echo "</p>";    
    echo "<p>";    
     echo "<label for='Email'>Email : </label>";    
     echo "<input type='text' id='Email' name='Email' value='".$row[2]."'/>";    
    echo "</p>";    
    echo "</fieldset>";        
    echo "<p>";    
     echo "<input type='submit' name='submit'  class='submit' />";    
    echo "</p>";    
   echo "</form>";    
  }    
 }    
 // Libération du jeu de résultats     
 mysqli_free_result($resultat);    
 //Fermeture de la connexion    
 mysqli_close($connection);     
?>


inscrit_saisir.php
<?php    
 // Connexion à la base de données    
 require_once("connexion.php"); // ceci inclut le fichier a.php    
 if (sizeof($_POST) > 0) {    
  $requete = "    
   UPDATE inscrit    
   SET (    
    Login='".htmlspecialchars($_POST['Login'], ENT_QUOTES)."'    
    ,password='".htmlspecialchars($_POST['password'], ENT_QUOTES)."'    
    ,Email='".htmlspecialchars($_POST['Email'], ENT_QUOTES)."'       
   )";    
  $resultat = mysqli_query($connection, $requete);      
  if (!$resultat)  die ("Probleme :  " . mysqli_error($connection));    
  else    
  mysqli_close($connexion);     
  /* Redirection vers une page différente du même dossier */    
  header('location: ../membre.php');    
}    
?>


Merci

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour

    D'après le manuel mySQL, pas de parenthèses pour ce qui suit le SET
    De plus, il ne manquerait pas un 'WHERE' à ton update ? Car là, toute ta table va y passer !
    1. ce serai du genre :

      <?php  
       // Connexion à la base de données  
       require_once("connexion.php"); // ceci inclut le fichier a.php  
       if (sizeof($_POST) > 0) {  
        $requete = "  
         UPDATE inscrit (  
          'Login'  
          , 'password'  
          , 'Email'    
         WHERE NumInscrit=$id   
         )";   
         SET "  
          Login='".htmlspecialchars($_POST['Login'], ENT_QUOTES)."'  
          ,password='".htmlspecialchars($_POST['password'], ENT_QUOTES)."'  
          ,Email='".htmlspecialchars($_POST['Email'], ENT_QUOTES)."'     
         ";  
        $resultat = mysqli_query($connection, $requete);    
        if (!$resultat)  die ("Probleme :  " . mysqli_error($connection));  
        else  
        mysqli_close($connexion);   
        /* Redirection vers une page différente du même dossier */  
        header('location: ../membre.php');  
      }  
      ?>


      desole je suis pas tellement fort en php/SQL :x car je cherche a pouvoir modifier Login, password et Email
      1. Ça devrait plutôt ressembler à
        $requete = "
        UPDATE inscrit
        SET
        Login='".htmlspecialchars($_POST['Login'], ENT_QUOTES)."'
        ,password='".htmlspecialchars($_POST['password'], ENT_QUOTES)."'
        ,Email='".htmlspecialchars($_POST['Email'], ENT_QUOTES)."'
        WHERE NumInscrit=$id ";
        1. voila la nouvelle erreur :'( :

          Probleme : 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 6

          <?php 
           // Connexion à la base de données 
           require_once("connexion.php"); // ceci inclut le fichier a.php 
           if (sizeof($_POST) > 0) { 
            $requete = "  
             UPDATE inscrit 
             SET  
              Login='".htmlspecialchars($_POST['Login'], ENT_QUOTES)."'  
              ,password='".htmlspecialchars($_POST['password'], ENT_QUOTES)."'  
              ,Email='".htmlspecialchars($_POST['Email'], ENT_QUOTES)."'  
             WHERE NumInscrit=$id "; 
              
            $resultat = mysqli_query($connection, $requete);   
            if (!$resultat)  die ("Probleme :  " . mysqli_error($connection)); 
            else 
            mysqli_close($connexion);  
            /* Redirection vers une page différente du même dossier */ 
            header('location: ../membre.php'); 
          } 
          ?>


          desole d'être aussi nul, si il faut c'est super simple...
          1. Bonsoir

            As-tu essayé de faire un echo de ta requête pour la voir ? Je parie qu'il manque la valeur de $id à la fin.
            En effet, je vois son initialisation au début de inscrit_modifier.php, mais pas dans inscrit_saisir.php
            Pour le récupérer dans la page inscrit_saisir.php, tu as le choix entre plusieurs méthodes
            . en le stockant dans une variable de session
            . en ajoutant ?id=$id dans l'action de ton form, pour le récupérer en $_GET de l'autre côté
            . en ajoutant un champ hidden dans ton form, pour le récupérer en $_POST de l'autre côté
            1. JE suis desole je n'ai pas compris ce que tu as voulu dire :x si tu pourrais me montrer directement depuis le code ou si tu connais un tuto qui l'explique je pense pouvoir y arriver ^^
              1. Il faut commencer par le commencement.
                Personnellement, j'ai appris le PHP dans le manuel du PHP et mySQL dans le manuel mySQL, c'est ce qui me semblait le plus normal. Mais il semble que beaucoup de gens préfèrent ce genre de site :
                http://www.siteduzero.com/tutoriel-1-210-php.html